Open data API

Every feed behind the CetaHAV use cases is also available as a free, key-free HTTP API. Responses are JSON or GeoJSON, CORS is open to all origins, and no registration is required.

Base URL

/api/public/v1

Endpoints

  • GET/api/public/v1/sourcesUpdated: every 1 d

    Every integrated data source with provider, licence and refresh interval.

  • GET/api/public/v1/aisUpdated: every 1 min

    Live AIS vessel positions in the Baltic, as GeoJSON points.

  • GET/api/public/v1/stationsUpdated: every 10 min

    SMHI oceanographic stations with a good / moderate / poor freshness class.

  • GET/api/public/v1/wind-farmsUpdated: monthly

    EMODnet offshore wind farm polygons, existing and planned.

  • GET/api/public/v1/fishing-effortUpdated: annually

    HELCOM fishing effort as weighted points, or as C-square polygons.

    Parameters: year (default 2021), quarter 1–4 (default 4), format=points|polygons

    Example: /api/public/v1/fishing-effort?year=2021&quarter=3

  • GET/api/public/v1/spawning-closuresUpdated: annually

    HELCOM fisheries closures, used as a spawning-ground proxy.

  • GET/api/public/v1/natura2000Updated: monthly

    Marine Natura 2000 sites in Swedish waters (EEA).

  • GET/api/public/v1/defence-zonesUpdated: monthly

    Swedish defence interest areas from HaV's marine spatial plans.

  • GET/api/public/v1/stocksUpdated: annually

    ICES Baltic stock advice sheets for a given assessment year.

    Parameters: year (default 2024)

    Example: /api/public/v1/stocks?year=2024

  • POST/api/public/v1/zone-statsUpdated: on request

    Statistics for a drawn polygon: area, vessels, stations, protected-area overlap and optional yearly history.

    Parameters: JSON body { "ring": [[lng,lat], …], "years": 0–10 }

  • GET/api/public/v1/healthUpdated: on request

    Reachability probe per upstream feed, with response times.

Errors

Failures return the matching HTTP status with a JSON body of the shape { "error": { "code", "message" } }. Unknown paths return 404 with code not_found; a malformed zone polygon returns 400 with code invalid_ring.

Feed availability is probed live at /api/public/v1/health

Fair-use limits

The API is free and key-free, with limits that keep it available for everyone: up to 60 requests per minute per caller (10 per minute for zone-stats), a maximum request body of 64 KB, at most 200 points in a zone polygon, a maximum zone area of 750 000 km² and at most 10 years of history. Exceeding the request rate returns 429 with a Retry-After header. Responses are cached, so repeating the same query is cheap.

Licensing and attribution

CetaHAV re-serves data from public providers without altering their terms. You must keep the attribution of each upstream provider when you republish. The list below shows every source and how often it is refreshed.

Sources and refresh cadence

How to cite

CetaHAV (Cetasol, Quokka, SEI, Länsstyrelsen i Gotlands län), Baltic marine data platform, cetahav.org. Retrieved <date>.