curl --request GET \
--url https://gdeltcloud.com/api/v2/maritime/vessels/{imo}/track \
--header 'Authorization: Bearer <token>'import requests
url = "https://gdeltcloud.com/api/v2/maritime/vessels/{imo}/track"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://gdeltcloud.com/api/v2/maritime/vessels/{imo}/track', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"imo": "9006681",
"data": [
{
"time": "2026-06-12 03:14:07",
"mmsi": 636019825,
"lat": 25.9831,
"lon": 56.7042,
"sog": 13.1,
"cog": 298.4,
"heading": 301,
"nav_status": "under_way",
"chokepoint": "hormuz"
},
{
"time": "2026-06-12 04:46:52",
"mmsi": 636019825,
"lat": 26.4127,
"lon": 56.2188,
"sog": 12.6,
"cog": 305.2,
"heading": 307,
"nav_status": "under_way",
"chokepoint": "hormuz"
}
],
"pagination": {
"limit": 1000,
"cursor": null,
"next_cursor": "MjAyNi0wNi0xMiAwNDo0Njo1Mnw2MzYwMTk4MjU="
},
"applied_filters": {
"date_start": "2026-06-05",
"date_end": "2026-06-12",
"ignored": {}
}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}One vessel's track over time
⚠️ RAW position track for a single vessel by IMO — the literal ‘this ship over time’: every AIS fix (time, position, speed, course, heading, nav status) across the window, time-ordered. Keyset-paginated: follow the opaque next_cursor to stitch a long window into pages rather than one giant response. Requires a plan with Maritime intelligence access (can_use_maritime) — see Pricing for the plans that include it.
Historical / baseline surface: reads raw AIS positions directly. Forward-accruing: positions begin at launch (June 2026) — no historical backfill. Terrestrial AIS only (no satellite). Date windows are capped at 30 days; defaults to the trailing 7 days.
curl --request GET \
--url https://gdeltcloud.com/api/v2/maritime/vessels/{imo}/track \
--header 'Authorization: Bearer <token>'import requests
url = "https://gdeltcloud.com/api/v2/maritime/vessels/{imo}/track"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://gdeltcloud.com/api/v2/maritime/vessels/{imo}/track', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"imo": "9006681",
"data": [
{
"time": "2026-06-12 03:14:07",
"mmsi": 636019825,
"lat": 25.9831,
"lon": 56.7042,
"sog": 13.1,
"cog": 298.4,
"heading": 301,
"nav_status": "under_way",
"chokepoint": "hormuz"
},
{
"time": "2026-06-12 04:46:52",
"mmsi": 636019825,
"lat": 26.4127,
"lon": 56.2188,
"sog": 12.6,
"cog": 305.2,
"heading": 307,
"nav_status": "under_way",
"chokepoint": "hormuz"
}
],
"pagination": {
"limit": 1000,
"cursor": null,
"next_cursor": "MjAyNi0wNi0xMiAwNDo0Njo1Mnw2MzYwMTk4MjU="
},
"applied_filters": {
"date_start": "2026-06-05",
"date_end": "2026-06-12",
"ignored": {}
}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}Authorizations
GDELT Cloud API key. Send as Authorization: Bearer gdelt_sk_....
Path Parameters
IMO number of the vessel (e.g. 9006681).
Query Parameters
Window start YYYY-MM-DD (≤30-day window).
Window end YYYY-MM-DD.
Trailing N-day window (1–30). Defaults to 7.
1 <= x <= 30Position points per page (1–5000).
1 <= x <= 5000Opaque keyset cursor on (time, mmsi). Pass back a prior response's next_cursor to fetch the next page; do not request one giant response.
Response
A page of the vessel's raw position track, time-ordered ascending. Envelope: { success, imo, data, pagination, applied_filters }. Each data row: time, mmsi, lat, lon, sog, cog, heading, nav_status, chokepoint. pagination.next_cursor is an opaque token — follow it to page through a long window.

