curl --request GET \
--url https://gdeltcloud.com/api/v2/maritime/gaps \
--header 'Authorization: Bearer <token>'import requests
url = "https://gdeltcloud.com/api/v2/maritime/gaps"
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/gaps', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": [
{
"imo": "9388893",
"mmsi": 538008914,
"gap_start": "2026-06-10 02:11:09",
"gap_end": "2026-06-11 19:43:27",
"gap_hours": 41.5,
"last_lat": 26.4412,
"last_lon": 56.5108,
"chokepoint": "hormuz"
},
{
"imo": null,
"mmsi": 477553000,
"gap_start": "2026-06-12 08:30:55",
"gap_end": "2026-06-12 21:14:02",
"gap_hours": 12.7,
"last_lat": 13.2204,
"last_lon": 43.4891,
"chokepoint": "bab_el_mandeb"
}
],
"pagination": {
"limit": 100,
"cursor": null,
"next_cursor": null
},
"applied_filters": {
"date_start": "2026-06-08",
"date_end": "2026-06-14",
"chokepoint": "hormuz",
"min_gap_hours": 6,
"ignored": {}
}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}{
"success": false,
"error": "<string>",
"code": "<string>",
"details": {}
}AIS-dark gaps
AIS-dark gaps — intervals where a vessel stopped broadcasting AIS then reappeared, derived from terrestrial AIS coverage. Each row is one gap with the last-known position before it went dark. Requires a plan with Maritime intelligence access (can_use_maritime) — see Pricing for the plans that include it.
Forward-accruing: gaps begin accruing at launch (June 2026) — no historical backfill. Terrestrial AIS only (no satellite); a gap reflects loss of terrestrial reception, not necessarily a deliberate dark event. Filtered by gap-end time; date windows are capped at 30 days and default to the trailing 7 days.
curl --request GET \
--url https://gdeltcloud.com/api/v2/maritime/gaps \
--header 'Authorization: Bearer <token>'import requests
url = "https://gdeltcloud.com/api/v2/maritime/gaps"
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/gaps', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"data": [
{
"imo": "9388893",
"mmsi": 538008914,
"gap_start": "2026-06-10 02:11:09",
"gap_end": "2026-06-11 19:43:27",
"gap_hours": 41.5,
"last_lat": 26.4412,
"last_lon": 56.5108,
"chokepoint": "hormuz"
},
{
"imo": null,
"mmsi": 477553000,
"gap_start": "2026-06-12 08:30:55",
"gap_end": "2026-06-12 21:14:02",
"gap_hours": 12.7,
"last_lat": 13.2204,
"last_lon": 43.4891,
"chokepoint": "bab_el_mandeb"
}
],
"pagination": {
"limit": 100,
"cursor": null,
"next_cursor": null
},
"applied_filters": {
"date_start": "2026-06-08",
"date_end": "2026-06-14",
"chokepoint": "hormuz",
"min_gap_hours": 6,
"ignored": {}
}
}{
"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_....
Query Parameters
Restrict to gaps whose last-known chokepoint is this one. Omit for all. Full value list: https://docs.gdeltcloud.com/reference/enums#chokepoint
hormuz, bab_el_mandeb, malacca, suez, panama, bosphorus, gibraltar, dover, kerch, taiwan, danish_straits Minimum gap duration in hours. Defaults to 6.
x >= 0Gap-end-window start YYYY-MM-DD (≤30-day window).
Gap-end-window end YYYY-MM-DD.
Trailing N-day window (1–30). Defaults to 7.
1 <= x <= 30Rows per page (1–500).
1 <= x <= 500Pagination cursor (offset) from a prior response's next_cursor.
Response
A page of AIS-dark gaps, longest first. Each row: imo, mmsi, gap_start, gap_end, gap_hours, last_lat, last_lon, chokepoint (last-known before going dark). Standard envelope: { success, data, pagination, applied_filters }.

