---
title: "Raw position points in an area"
method: GET
path: "/api/v2/maritime/tracks"
tags: ["Maritime"]
---

# Raw position points in an area

`GET /api/v2/maritime/tracks`

⚠️ RAW position points (the actual AIS track) inside an area over time — each row a single fix (time, position, speed, course, nav status). AREA REQUIRED — pass chokepoint, bbox, near, or near_gem_id. 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`) — the Corporate & Supply Chain plan and above.

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 7 days; defaults to the trailing 1 day.

## Query parameters

- `chokepoint` 'hormuz' | 'bab_el_mandeb' | 'malacca' | 'suez' | 'panama' | 'bosphorus' | 'gibraltar' | 'dover' | 'kerch' | 'taiwan' | 'danish_straits'
- `bbox` string
- `near` string
- `near_gem_id` string
- `radius_km` number
- `date_start` string
- `date_end` string
- `days` integer
- `limit` integer
- `cursor` string

## Response `200`

A page of raw position points, time-ordered ascending. Envelope: { success, data, pagination, applied_filters }. Each data row: time, mmsi, imo, lat, lon, sog, cog, nav_status, chokepoint, and distance_km (km from the near / near_gem_id center, only when one is set). pagination.next_cursor is an opaque token — follow it to page through a long window.

- object
  - `success` boolean
  - `data` object[]
    - `time` string
    - `mmsi` integer
    - `imo` string
    - `lat` number
    - `lon` number
    - `sog` number
    - `cog` number
    - `nav_status` string
    - `chokepoint` string
    - `distance_km` number
  - `pagination` object
    - `limit` integer
    - `cursor` unknown
    - `next_cursor` string
  - `applied_filters` object
    - `date_start` string
    - `date_end` string
    - `chokepoint` string
    - `ignored` object

## Other responses

- `400` — Area required or invalid parameter (AREA_REQUIRED, INVALID_BBOX, INVALID_NEAR, INVALID_RADIUS)
- `401` — Missing/invalid API key
- `403` — Plan required (PLAN_REQUIRED) — the caller's plan does not carry the required source entitlement.
- `500` — Server error

---

[API](https://skmtc.net/gdeltcloud/apis/gdelt-cloud-api-v2.md) · [All operations](https://skmtc.net/gdeltcloud/apis/gdelt-cloud-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gdeltcloud/gdelt-cloud-api-v2/revisions/01aaa6255180/schema)
