← Ocean Routing

🛰️ Vessel Position API

Latest known position of vessels (AIS / MarineTraffic) and aircraft (ADS-B Exchange). JSON, no API key. Live — hosted instance below.

Hosted server
http://20260602-vessel-position-api.206.116.247.141.sslip.io/

All endpoints are read-only HTTP GET and return JSON — no query parameters, headers or keys. Vessels are keyed by MMSI (9-digit Maritime Mobile Service Identity); aircraft by ICAO 24-bit hex address. A machine-readable spec for agents lives at /llms.txt.

Vessel position

GET/ais/mt/:mmsi/location/latest
Latest position for a vessel by MMSI (MarineTraffic AIS).
curl "http://20260602-vessel-position-api.206.116.247.141.sslip.io/ais/mt/211879870/location/latest"

Aircraft position

GET/adsb/adsbe/:icao/location/latest
Latest position for an aircraft by ICAO hex address (ADS-B Exchange).
curl "http://20260602-vessel-position-api.206.116.247.141.sslip.io/adsb/adsbe/abc123/location/latest"

Response shape

Every position endpoint returns the same envelope:

{
  "error": null,
  "data": {
    "timestamp": "2026-06-02T12:34:56Z",
    "latitude": 53.5413,
    "longitude": 9.9846,
    "course": 187.4,
    "speed": 12.1,
    "source": "marinetraffic",
    "source_type": "ais",
    "altitude": null
  }
}
FieldMeaning
errorMessage string on failure, otherwise null (then data is null).
timestampUTC time of the report — always check this before treating a position as current.
latitude / longitudeDecimal degrees.
course / speedCourse over ground (°) and speed (knots).
source / source_typee.g. marinetraffic / ais, or adsbexchange / adsb.
altitudePresent for aircraft only; null for vessels.
Positions are scraped from public providers and are non-navigational reference only — they may be delayed or unavailable for a given MMSI/ICAO, and there's no recent report for a target that isn't transmitting. Be considerate with request volume.