Skip to main content
List monitored ports and query port events across all verticals.

GET /api/v1/ports

List all monitored ports with slug, name, country, and region. Response
{ "ports": [...] }
Example
curl -X GET \
  https://axiomoverwatch.io/api/v1/ports

Port events

Port events represent arrivals, departures, berth assignments, and other vessel activity recorded at monitored ports. Each port event carries the full APRS envelope plus these domain-specific fields:
FieldTypeDescription
mmsitext9-digit Maritime Mobile Service Identity of the vessel. Use this to join port events to vessel records or cross-reference identity changes.
h3_indextextH3 cell at resolution 8 for the event location.
record_idtextStable APRS URN for deduplication and audit trails.
You can query port events through the codex_compliance_summary view to verify envelope coverage, or join them directly to vessel data using mmsi:
-- Port events for a vessel, joined to the vessel registry
select pe.*, v.name, v.flag, v.vessel_type
from port_events pe
join vessels v on v.mmsi = pe.mmsi
where pe.mmsi = '211331640'
order by pe.occurred_at desc;
The mmsi column is indexed with a partial index on non-null values, so vessel-scoped queries against port_events are efficient even on large datasets.

GET /api/v1/health

System health check. Returns position counts and ingestion status. Response
{ "status", "positions", "vessels", "positions_last_hour" }
Example
curl -X GET \
  https://axiomoverwatch.io/api/v1/health