A Node.js / TypeScript API for the latest known position of vessels (AIS / MarineTraffic) and aircraft (ADS-B Exchange). JSON responses, no API key required.
Everything you need to locate a moving target.
Latest location for any ship by MMSI, sourced from MarineTraffic AIS.
Latest location for any aircraft by ICAO hex address via ADS-B Exchange.
List vessels in a region, near a coordinate, or inside a named port.
A /llms.txt spec lets LLMs call the API correctly.
All endpoints are read-only HTTP GET and return JSON.
/ais/mt/:mmsi/location/latestLatest position for a vessel by MMSI (MarineTraffic).
curl http://localhost:5000/ais/mt/211879870/location/latest
/adsb/adsbe/:icao/location/latestLatest position for an aircraft by ICAO hex address (ADS-B Exchange).
curl http://localhost:5000/adsb/adsbe/abc123/location/latest
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
}
}
On failure, error holds a message and data is null.
altitude is present for aircraft only.
Run it locally in under a minute.
npm install (Node.js v18+).cp .env.template .env and adjust as needed.npm start for production, or npm run dev for auto-reload.5000 by default.