---
title: "Ais Tracks"
method: GET
path: "/api/admin/ais/tracks"
tags: ["admin-ais"]
---

# Ais Tracks

`GET /api/admin/ais/tracks`

## Request

- Base URL: `https://grandline.luzomi.com`
- URL: `https://grandline.luzomi.com/api/admin/ais/tracks`
- Auth: none declared

AIS vessel-activity points for the Polygon Builder context overlay.
Per Drewry spec: dots of vessel signals over the last 90 days; admin uses density
to spot port / anchorage / waiting areas. Defaults to the dataset's most-recent 90 days
even when 'now' is past the data end.

Geometry note (post-2026-05-29): ais.ais_positions.geom is in standard
WGS84 lon/lat order (rebuilt by migration 0008 from the surviving lon/lat
numeric columns). The historical lat/lon-swapped storage and the
ST_FlipCoordinates workaround it required are gone.

## Query parameters

- `bbox` string, required: minLon,minLat,maxLon,maxLat
- `from` string, date-time, nullable
- `to` string, date-time, nullable
- `nav_status` string, nullable: Filter by nav_status_text e.g. 'Anchored', 'Moored', 'Underway'
- `max_points` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/luzomi/apis/grandline-api.md) · [All operations](https://skmtc.dev/luzomi/apis/grandline-api/llms.txt) · [OpenAPI document](https://skmtc.dev/luzomi/apis/grandline-api/revisions/4ce06aea012b?raw)
