API Documentation

Marine Catalog · Developer API

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.

↓ OpenAPI 3.1 spechttps://dev2.smabatsregistret.se/wp-json/marine-catalog/v1
9endpoints
4plans
3data tiers
RESTJSON over HTTPS

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.

free

Identity & classification — name, make, category, length overall, production years.

standard

The full specification sheet — beam, draft, capacities, power, rig/keel & long-tail specs.

premium

Everything, including data provenance (source, source URL) for auditing & attribution.

Free
Free
  • free tier fields
  • 30 req/min
  • 1,000 req/mo
  • — No bulk export
Standard
490 SEK/mo
  • standard tier fields
  • 120 req/min
  • 50,000 req/mo
  • — No bulk export
Premium
1,990 SEK/mo
  • premium tier fields
  • 600 req/min
  • 500,000 req/mo
  • ✓ Bulk export
Enterprise
Free
  • 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." }
StatusMeaning
401Missing, invalid, expired or revoked key.
403Account suspended or cancelled.
404No such resource.
429Rate limit or monthly quota exceeded.

5 Account

Your key, plan and usage.

GET /me
Verify your key & see limits (whoami)

Returns 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.

Request
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
     "https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/me"
Response · 200
{
  "makes": [
    {
      "uid": "01J7…",
      "name": "Beneteau",
      "country": "FR",
      "is_popular": true
    }
  ]
}

6 Boats

Boat makes, series and models.

GET /boat/makes
List boat manufacturers

Manufacturers (makes), most popular first. Optional free-text filter.

Query parameters
NameTypeReq.Description
qstringnoFree-text search across make, series and model name.
Request
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
     "https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/boat/makes"
Response · 200
{
  "makes": [
    {
      "uid": "01J7…",
      "name": "Beneteau",
      "country": "FR",
      "is_popular": true
    }
  ]
}
GET /boat/series
List series for a make
Query parameters
NameTypeReq.Description
make_idintegernoFilter to a manufacturer id.
make_uidstringnoFilter to a manufacturer by its uid (as returned by /makes). Preferred over make_id.
Request
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
     "https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/boat/series?make_id=1"
Response · 200
{
  "series": [
    {
      "uid": "01J7…",
      "name": "Oceanis",
      "boat_category": "sailboat",
      "year_from": 1986
    }
  ]
}
GET /boat/models
List / search / filter boat models

Paginated boat models with rich filtering. Fields returned depend on your tier. Response is a page envelope: `models`, `total`, `limit`, `offset`, `has_more`, `tier`.

Query parameters
NameTypeReq.Description
make_idintegernoFilter to a manufacturer id.
make_uidstringnoFilter to a manufacturer by its uid (as returned by /makes). Preferred over make_id.
series_idintegernoFilter to a series id.
series_uidstringnoFilter to a series by its uid (as returned by /series).
qstringnoFree-text search across make, series and model name.
boat_categorystringnosailboat | motorboat | rib | inflatable | pwc | dinghy | canoe_kayak | houseboat | tender | other
propulsion_classstringnosail | power | oar_paddle | hybrid
design_categorystringnoCE design category A–D.
in_productionbooleannotrue = current models only; false = discontinued only.
loa_minnumbernoMinimum length overall (m).
loa_maxnumbernoMaximum length overall (m).
year_fromintegernoBuilt from this year.
year_tointegernoBuilt up to this year.
limitintegernoPage size (1–200, default 50).
offsetintegernoRows to skip for pagination (default 0).
Request
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
     "https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/boat/models?q=oceanis"
Response · 200
{
  "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"
}
GET /boat/model
Get one boat model
Query parameters
NameTypeReq.Description
uidstringnoModel uid (as returned by /models). Preferred.
idintegernoModel id (legacy — prefer uid).
Request
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
     "https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/boat/model?id=123"
Response · 200
{
  "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.

GET /engine/makes
List engine manufacturers
Query parameters
NameTypeReq.Description
qstringnoFree-text search across make, series and model name.
Request
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
     "https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/engine/makes"
Response · 200
{
  "makes": [
    {
      "uid": "01J7…",
      "name": "Beneteau",
      "country": "FR",
      "is_popular": true
    }
  ]
}
GET /engine/series
List series for a make
Query parameters
NameTypeReq.Description
make_idintegernoFilter to a manufacturer id.
make_uidstringnoFilter to a manufacturer by its uid (as returned by /makes). Preferred over make_id.
Request
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
     "https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/engine/series?make_id=1"
Response · 200
{
  "series": [
    {
      "uid": "01J7…",
      "name": "Oceanis",
      "boat_category": "sailboat",
      "year_from": 1986
    }
  ]
}
GET /engine/models
List / search / filter engine models

Paginated engine models with filtering. Response is a page envelope (see boat models).

Query parameters
NameTypeReq.Description
make_idintegernoFilter to a manufacturer id.
make_uidstringnoFilter to a manufacturer by its uid (as returned by /makes). Preferred over make_id.
qstringnoFree-text search across make, series and model name.
engine_categorystringnopropulsion | auxiliary | generator | bow_thruster | trolling
drive_typestringnooutboard | inboard | sterndrive | jet | saildrive | electric_pod
fuel_typestringnopetrol | diesel | electric | hybrid | lpg | none | other
is_electricbooleannoElectric propulsion only.
power_minintegernoMinimum power (hp).
power_maxintegernoMaximum power (hp).
year_fromintegernoBuilt from this year.
limitintegernoPage size (1–200, default 50).
offsetintegernoRows to skip for pagination (default 0).
Request
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
     "https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/engine/models?q=oceanis"
Response · 200
{
  "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"
}
GET /engine/model
Get one engine model
Query parameters
NameTypeReq.Description
uidstringnoModel uid (as returned by /models). Preferred.
idintegernoModel id (legacy — prefer uid).
Request
curl -H "Authorization: Bearer mk_live_xxxxxxxx" \
     "https://dev2.smabatsregistret.se/wp-json/marine-catalog/v1/engine/model?id=123"
Response · 200
{
  "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"
}