Skip to main content
The AIS Maritime dataset contains ~1.4M normalized vessel positions sourced from terrestrial and satellite AIS receivers, enriched with vessel identity from IMO registries, behavior anomaly detection, and linkage to Codex port events. Records are ingested continuously and published as monthly immutable snapshots. Every record inherits the full APRS envelope (record_id, chunk_id, bitemporal fields, confidence_score, provenance) and carries the join keys documented below.

Dataset-specific fields

Vessel identity

Position and kinematics

Codex enrichments

Vessel types

The raw ITU vessel type code (0–99) is preserved in metadata.itu_vessel_type_code. Codex normalizes vessels into six categories for consistent filtering:
AIS positions in the Codex dataset are compressed to one per minute per vessel. In Overwatch, live positions are kept at full resolution for 7 days and then downsampled through progressive tiers. Both raw and compressed views are available depending on your tier.

Join keys

Example query

Find vessels flagged as anomalous near a specific port in the last 30 days:

Known limitations

  • imo is null for small craft, fishing vessels, and some flag-of-convenience registrations. Use mmsi as a fallback.
  • vessel_type normalization collapses 99 ITU codes into 6 categories — check metadata.itu_vessel_type_code when you need the original classification.
  • beneficial_owner_urn is populated by the entity resolution pipeline and may be null for recently ingested positions.
  • Position compression (1-per-minute) means sub-minute maneuvers are not visible in the default view.