{"openapi":"3.1.0","info":{"title":"Marinebase API","description":"Marine data REST API for sailboat specifications.\n\n## Authentication\n\nPrivate endpoints require a Bearer token in the `Authorization` header:\n\n```\nAuthorization: Bearer mb_<your_token>\n```\n\nTwo key types are supported:\n\n- **server** – for backend callers. Must NOT be used from a browser.\n- **browser** – for frontend callers. Restricted to declared allowed origins (similar to Google Maps API keys). Even if a visitor copies the token it will not work from an unlisted website.\n\n## Quotas\n\nRequests are metered per tenant per calendar month (UTC). Exceeding the quota returns HTTP 429. Contact support to raise your limit.\n\n## Base URL\n\n`https://api.marinebase.dev`","contact":{"name":"Marinebase","url":"https://marinebase.dev/"},"license":{"name":"Proprietary"},"version":"0.1.0"},"paths":{"/v1/specs/fields":{"get":{"tags":["Sailboats"],"summary":"List specification fields","description":"Public endpoint. Returns the customer-facing field catalog used by the API including section, description, and preferred units.","operationId":"list_spec_fields_v1_specs_fields_get","parameters":[{"name":"units","in":"query","required":false,"schema":{"enum":["metric","imperial"],"type":"string","description":"Unit system for preferred display values.","default":"metric","title":"Units"},"description":"Unit system for preferred display values."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Spec Fields V1 Specs Fields Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sailboats/search":{"get":{"tags":["Sailboats"],"summary":"Search sailboats","description":"Private endpoint. Search by title, slug, builder, or first-built year. Returns summary rows; optional query params can include per-boat available fields and additional canonical fields.","operationId":"search_sailboats_v1_sailboats_search_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search query text.","title":"Q"},"description":"Search query text."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"units","in":"query","required":false,"schema":{"enum":["metric","imperial"],"type":"string","description":"Unit system for measure values.","default":"metric","title":"Units"},"description":"Unit system for measure values."},{"name":"include_available_fields","in":"query","required":false,"schema":{"type":"boolean","description":"Include available canonical field keys per boat as `fields`.","default":false,"title":"Include Available Fields"},"description":"Include available canonical field keys per boat as `fields`."},{"name":"additional_fields","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Additional canonical field keys to include directly in each result row.","title":"Additional Fields"},"description":"Additional canonical field keys to include directly in each result row."},{"name":"updated_since","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter results to boats modified after this Unix epoch timestamp (seconds).","title":"Updated Since"},"description":"Filter results to boats modified after this Unix epoch timestamp (seconds)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Sailboats V1 Sailboats Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sailboats/{slug}":{"get":{"tags":["Sailboats"],"summary":"Get sailboat detail","description":"Private endpoint. Returns one sailboat with canonicalized spec keys, source links, and image references.","operationId":"get_sailboat_v1_sailboats__slug__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"URL slug of the sailboat, e.g. `sun-fast-3300`.","examples":["sun-fast-3300"],"title":"Slug"},"description":"URL slug of the sailboat, e.g. `sun-fast-3300`."},{"name":"units","in":"query","required":false,"schema":{"enum":["metric","imperial"],"type":"string","description":"Unit system for measure values.","default":"metric","title":"Units"},"description":"Unit system for measure values."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Sailboat V1 Sailboats  Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}},"tags":[{"name":"Sailboats","description":"Sailboat catalog endpoints."}]}