Marine Catalog API v1.19.1
A fast, structured read API for boat & marine-engine makes, series and models — current and discontinued. Every model carries rich specifications, gated by your plan tier.
1 Authentication
Send your API key as a bearer token on every request. Keys are issued per account in the Marine Catalog console — the secret is shown once at creation.
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/boat/models?q=oceanis"You can also pass the key as an X-API-Key header. Requests without a valid key return 401.
2 Plans & tiers
The depth of fields returned scales with your plan’s data tier.
Identity & classification — name, make, category, length overall, production years.
The full specification sheet — beam, draft, capacities, power, rig/keel & long-tail specs.
Everything, including data provenance (source, source URL) for auditing & attribution.
- free tier fields
- 30 req/min
- 1,000 req/mo
- — No bulk export
- standard tier fields
- 120 req/min
- 50,000 req/mo
- — No bulk export
- premium tier fields
- 600 req/min
- 500,000 req/mo
- ✓ Bulk export
- premium tier fields
- 3000 req/min
- Unlimited
- ✓ Bulk export
3 Rate limits & quotas
Each plan has a per-minute rate limit and a monthly request quota. Exceeding either returns 429; rate-limited responses include a Retry-After header (seconds until the window resets).
4 Errors
Errors are JSON with a stable code and a human message.
{ "code": "quota_exceeded", "message": "Monthly quota (50000) exhausted." }| Status | Meaning |
|---|---|
401 | Missing, invalid, expired or revoked key. |
403 | Account suspended or cancelled. |
404 | No such resource. |
429 | Rate limit or monthly quota exceeded. |
5 Account
Your key, plan and usage.
/meReturns the authenticated account, plan, tier, and your live rate-limit + monthly-quota usage. Use it to confirm a key works and to monitor your remaining allowance. Every successful response also carries `X-RateLimit-*` and `X-Quota-*` headers.
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/me"{
"makes": [
{
"uid": "01J7…",
"name": "Beneteau",
"country": "FR",
"is_popular": true
}
]
}6 Boats
Boat makes, series and models.
/boat/makesManufacturers (makes), most popular first. Optional free-text filter.
| Name | Type | Req. | Description |
|---|---|---|---|
q | string | no | Free-text search across make, series and model name. |
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/boat/makes"{
"makes": [
{
"uid": "01J7…",
"name": "Beneteau",
"country": "FR",
"is_popular": true
}
]
}/boat/series| Name | Type | Req. | Description |
|---|---|---|---|
make_id | integer | no | Filter to a manufacturer id. |
make_uid | string | no | Filter to a manufacturer by its uid (as returned by /makes). Preferred over make_id. |
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/boat/series?make_id=1"{
"series": [
{
"uid": "01J7…",
"name": "Oceanis",
"boat_category": "sailboat",
"year_from": 1986
}
]
}/boat/modelsPaginated boat models with rich filtering. Fields returned depend on your tier. Response is a page envelope: `models`, `total`, `limit`, `offset`, `has_more`, `tier`.
| Name | Type | Req. | Description |
|---|---|---|---|
make_id | integer | no | Filter to a manufacturer id. |
make_uid | string | no | Filter to a manufacturer by its uid (as returned by /makes). Preferred over make_id. |
series_id | integer | no | Filter to a series id. |
series_uid | string | no | Filter to a series by its uid (as returned by /series). |
q | string | no | Free-text search across make, series and model name. |
boat_category | string | no | sailboat | motorboat | rib | inflatable | pwc | dinghy | canoe_kayak | houseboat | tender | other |
propulsion_class | string | no | sail | power | oar_paddle | hybrid |
design_category | string | no | CE design category A–D. |
in_production | boolean | no | true = current models only; false = discontinued only. |
loa_min | number | no | Minimum length overall (m). |
loa_max | number | no | Maximum length overall (m). |
year_from | integer | no | Built from this year. |
year_to | integer | no | Built up to this year. |
limit | integer | no | Page size (1–200, default 50). |
offset | integer | no | Rows to skip for pagination (default 0). |
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/boat/models?q=oceanis"{
"models": [
{
"uid": "01J7…",
"manufacturer": "Beneteau",
"series": "Oceanis",
"name": "Oceanis 40.1",
"boat_category": "sailboat",
"design_category": "A",
"loa_m": 12.43,
"year_from": 2020,
"is_in_production": true
}
],
"tier": "free"
}/boat/model| Name | Type | Req. | Description |
|---|---|---|---|
uid | string | no | Model uid (as returned by /models). Preferred. |
id | integer | no | Model id (legacy — prefer uid). |
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/boat/model?id=123"{
"uid": "01J7…",
"manufacturer": "Beneteau",
"name": "Oceanis 40.1",
"boat_category": "sailboat",
"loa_m": 12.43,
"beam_m": 4.18,
"draft_max_m": 2.19,
"max_persons": 8,
"berths": 6,
"cabins": 3,
"keel_type": "fin",
"rig_type": "sloop"
}7 Engines
Marine-engine makes and models.
/engine/makes| Name | Type | Req. | Description |
|---|---|---|---|
q | string | no | Free-text search across make, series and model name. |
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/engine/makes"{
"makes": [
{
"uid": "01J7…",
"name": "Beneteau",
"country": "FR",
"is_popular": true
}
]
}/engine/series| Name | Type | Req. | Description |
|---|---|---|---|
make_id | integer | no | Filter to a manufacturer id. |
make_uid | string | no | Filter to a manufacturer by its uid (as returned by /makes). Preferred over make_id. |
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/engine/series?make_id=1"{
"series": [
{
"uid": "01J7…",
"name": "Oceanis",
"boat_category": "sailboat",
"year_from": 1986
}
]
}/engine/modelsPaginated engine models with filtering. Response is a page envelope (see boat models).
| Name | Type | Req. | Description |
|---|---|---|---|
make_id | integer | no | Filter to a manufacturer id. |
make_uid | string | no | Filter to a manufacturer by its uid (as returned by /makes). Preferred over make_id. |
q | string | no | Free-text search across make, series and model name. |
engine_category | string | no | propulsion | auxiliary | generator | bow_thruster | trolling |
drive_type | string | no | outboard | inboard | sterndrive | jet | saildrive | electric_pod |
fuel_type | string | no | petrol | diesel | electric | hybrid | lpg | none | other |
is_electric | boolean | no | Electric propulsion only. |
power_min | integer | no | Minimum power (hp). |
power_max | integer | no | Maximum power (hp). |
year_from | integer | no | Built from this year. |
limit | integer | no | Page size (1–200, default 50). |
offset | integer | no | Rows to skip for pagination (default 0). |
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/engine/models?q=oceanis"{
"models": [
{
"uid": "01J7…",
"manufacturer": "Volvo Penta",
"series": "D-serien",
"name": "D2-40",
"engine_category": "propulsion",
"fuel_type": "diesel",
"drive_type": "inboard",
"power_hp": 40
}
],
"tier": "standard"
}/engine/model| Name | Type | Req. | Description |
|---|---|---|---|
uid | string | no | Model uid (as returned by /models). Preferred. |
id | integer | no | Model id (legacy — prefer uid). |
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
"https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/engine/model?id=123"{
"models": [
{
"uid": "01J7…",
"manufacturer": "Volvo Penta",
"series": "D-serien",
"name": "D2-40",
"engine_category": "propulsion",
"fuel_type": "diesel",
"drive_type": "inboard",
"power_hp": 40
}
],
"tier": "standard"
}