Docs
Data sources
AIS Trail normalizes open AIS data published by public authorities. Each source has its own license; we only serve sources whose license allows commercial redistribution.
Coverage
| Region | Source | Vessels | History |
|---|---|---|---|
| North Sea to western Baltic Eastern North Sea, Skagerrak, Kattegat, the Belts and the western Baltic |
Danish Maritime Authority | Class A and B: commercial ships and small craft | Up to the last 12 months (rolling window) |
| Northern Baltic Gulf of Bothnia, Archipelago Sea and the north-eastern Baltic |
Fintraffic / Digitraffic | Class A only: commercial ships, no fishing vessels | Since October 2026 |
The most recent 24 hours are not available on any plan. The Danish Maritime Authority publishes its daily files two to three days after the fact, so data from this source runs a few days behind. Exact first and last day, days, positions and vessels per source, updated live: GET https://api.aistrail.com/v1/sources. Real-time streaming (REST and WebSocket) is in early access for the Fintraffic / Digitraffic coverage only: hello@aistrail.com.
Sources and licenses
Danish Maritime Authority (AIS data, operated by the Danish Emergency Management Agency) dma
License: Conditions for the use of Danish public data · http://aisdata.ais.dk
Required attribution:
Contains data from the Danish Maritime Authority that is used in accordance with the conditions for the use of Danish public data.
Fintraffic / Digitraffic (Class A only, fishing vessels removed at source) digitraffic
License: CC BY 4.0 · https://www.digitraffic.fi/en/marine-traffic/
Required attribution:
Source: Fintraffic / digitraffic.fi, license CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Modified: decoded, normalized and deduplicated.
What you need to do
- When you publish or redistribute data from AIS Trail, keep the attribution text of every source it came from. Track and area responses list them in
meta.attribution(CSV:X-Attributionheader), each with its license link. - For Fintraffic data (CC BY 4.0), say that the data was modified: it is decoded, normalized and deduplicated by AIS Trail.
- Do not imply that the Danish Maritime Authority or Fintraffic endorses you or your product.
- Do not combine the data with other data in a way that identifies private persons without a legal basis.
AIS Trail is not affiliated with or endorsed by the Danish Maritime Authority or Fintraffic.
How the data is processed
- Duplicate receptions of the same message by several shore stations are removed (about 46% of the raw rows in one sampled
dmadaily file). - Rows with MMSIs outside the ship country codes 201–775 are dropped (base stations, aids to navigation, test numbers).
- "Not available" codes (heading 511, speed 102.3, course 360, rate of turn −128, status 15) become null.
- Fixes that imply an impossible speed (over 100 knots and more than 1 nautical mile) are flagged
implausible_jump, not deleted. - Times are UTC as reported by the source; positions are not interpolated or smoothed.
dmadaily files are loaded every night, looking back seven days for files published late. Thedigitrafficfeed is polled continuously and reconnects on failure.
One message, before and after
Two receptions of the same message, as published in a dma daily file. Heading 511 means "not available"; the second line is the same transmission heard by another shore station.
# Timestamp,Type of mobile,MMSI,Latitude,Longitude,Navigational status,ROT,SOG,COG,Heading,…
01/09/2025 06:12:04,Class A,219026000,55.581200,12.705400,Under way using engine,0.0,11.4,231.7,511,…
01/09/2025 06:12:04,Class A,219026000,55.581200,12.705400,Under way using engine,0.0,11.4,231.7,511,…
The same fix as AIS Trail serves it: one row, one schema, the source named, nothing invented.
{ "mmsi": 219026000, "ts": "2025-09-01T06:12:04Z",
"lat": 55.5812, "lon": 12.7054,
"sog": 11.4, "cog": 231.7, "heading": null,
"nav_status": 0, "source": "dma", "flags": null }
Found a mistake, or something unclear? Suggest an edit and we will fix the page.