Vessels, ports and what happens between them.
One REST API for port calls, arrivals and departures, waiting times at anchor and port events wherever we hear vessels, with vessel particulars, sea routes and depth. JSON, GeoJSON and CSV.
Vessel positions, tracks and the live stream through the API come only from sources we may pass on, in certain areas, which a free account shows: today Norway, parts of the Baltic and our own stations' areas. Elsewhere a vessel is answered with her position withheld and port answers name the terminal or anchorage.
Base URL
https://gangwayais.com/v1 · HTTPS only · times in UTC, ISO 8601 · positions in WGS84 decimal degrees · areas as bbox=min_lat,min_lon,max_lat,max_lon.
The examples on these pages show the true shape of each answer. Their figures are made up and long lists are shortened.
curl https://gangwayais.com/v1/ports/NLRTM/waiting \ -H "Authorization: Bearer $GANGWAY_KEY"
{
"port": {
"code": "NLRTM",
"name": "Rotterdam",
"country": "NL"
},
"computed_at": "2026-11-01T12:00:00Z",
"min_ships": 5,
"reach_km": 40,
"week": {
"n": 24,
"ships": 24,
"enough": true,
"median_h": 17.2,
"p90_h": 41.5,
"from": "2026-10-25T12:00:00Z",
"to": "2026-11-01T12:00:00Z",
"days": 7,
"groups": {
"tanker": {
"n": 9,
"ships": 9,
"enough": true,
"median_h": 17.2,
"p90_h": 41.5
},
"cargo": {
"n": 13,
"ships": 13,
"enough": true,
"median_h": 17.2,
"p90_h": 41.5
},
"other": {
"n": 2,
"ships": 2,
"enough": false,
"median_h": null,
"p90_h": null
}
},
"sailed_without_berthing": 1,
"berthing_not_seen": 2
},
"before": {
"n": 61,
"ships": 61,
"enough": true,
"median_h": 17.2,
"p90_h": 41.5,
"from": "2026-10-04T12:00:00Z",
"to": "2026-10-25T12:00:00Z",
"days": 21,
"groups": {
"tanker": {
"n": 22,
"ships": 22,
"enough": true,
"median_h": 17.2,
"p90_h": 41.5
},
"cargo": {
"n": 33,
"ships": 33,
"enough": true,
"median_h": 17.2,
"p90_h": 41.5
},
"other": {
"n": 6,
"ships": 6,
"enough": true,
"median_h": 17.2,
"p90_h": 41.5
}
},
"sailed_without_berthing": 3,
"berthing_not_seen": 5
},
"still_at_anchor": {
"n": 6,
"longest_h": 31.5
},
"attribution": {
"barentswatch": "Gangway AIS (https://gangway.app). Data delivered by BarentsWatch. Contains data under the Norwegian licence for Open Government data (NLOD) distributed by the Norwegian Coastal Administration."
},
"notice": "Not for navigation. AIS data can be missing, delayed or wrong. Never use it for navigation, collision avoidance, search and rescue or any safety-of-life decision."
}
