Getting Started

Sections

Theme switcher

Polygon Events

The Polygon Event API enables historical and real-time tracking of all vessels as they enter or exit defined maritime zones, such as ports, canals, anchorages, terminals, shipyards. By leveraging over 12 years of AXSMarine’s proprietary AIS data, this API provides structured insights into vessel movements across 60 000+ AXSMarine proprietary polygons.

A polygon event represents a vessel's movement through a strategically defined maritime zone, triggered when the vessel enters and exits the area. Each event is captured through two key AIS signals: entry (the first AIS signal detected within the polygon) and out (the last AIS signal before the vessel leaves the polygon), as reflected in the API response.

Key Features

🚢 Vessel Activity Insights – Identify when a vessel enters and exits a geofenced area using the first and last AIS signals within the polygon. Each “polygon event” captures both entry and exit parameters, providing a detailed snapshot of the event.

📍 Geofenced Tracking – Track vessel movements through custom-defined zones including anchorages, canals, terminals, and more using polygon-based detection.

Event Duration – Calculate time spent within the polygon to support congestion analysis or loading duration metrics.

📊 Time Series Ready – Use historical event data to generate time series charts of port activity, vessel counts, and duration.

🚨 Activity Alerts – Monitor live “open” events to trigger alerts when vessels enter specific zones or are still present within them.

🎯 Flexible Filtering – Apply filters by:

  • Vessel IMO, DWT, or other specifications
  • Polygon ID, name, or type (e.g., anchorage, canal)
  • Entry or exit timestamps and AIS attributes
  • Filtering with isOpen = true is recommended for tracking real-time vessel activity.

📚 Data Depth – Access a comprehensive archive of over 12 years of vessel tracking data, suitable for trend analysis and predictive modeling.

📦 Efficient Pagination – Handle large result sets with cursor-based pagination. Use tight filters to limit scope and improve performance.

The GraphQL endpoint provides enhanced filtering capabilities and returns a richer dataset compared to its RESTful counterparts, albeit with an increase in complexity. Below, we provide illustrative examples to facilitate your utilization of this API.

Our REST endpoint Dry or Tanker or Liner offers a simpler way to get what you need. It is perfect for customers who value ease of use over advanced querying capabilities.

The purpose of this API is to provide a unified response across all vertical markets that we serve. Two points need to be taken into considerations:

  • Geographic location: While most geographic locations are common across all verticals (e.g. the Port of Rotterdam is identical for dry and tanker vessels), this is not the case for zone locations, which are market-dependent areas and are not shared across verticals.
  • Segments filtering: This API offers greater granularity than REST APIs, which are decoupled by main verticals (dry / tanker). In contrast, this API provides a more detailed list of segments, as shown below:
REST Endpoint equivalent
Segments

Dry Polygon Events

["dry", "mpp", "obo"]

Tanker Polygon Events

["tanker", "chemoil", "chemical", "lpg", "lng", "fso", "obo"]

Liner Polygon Events

["liner", “mpp”, "ropax_ferry", "pctc", “passenger”, "roro", "reefer", "conro", "rolo"]

Advanced Filtering

The new filter ancestorPolygons lets you target events that occur within a parent polygon (e.g., a port or broader zone).

What is ancestorPolygons?

ancestorPolygons restricts the search to events whose child polygon is inside one or more specified parent polygons. It must be used together with polygonTypes to narrow the child type (e.g., anchorage, canal, port).

Value
Example
Meaning

UN/LOCODE

"NLRTM"

International port code.

Numeric ID

"3989"

Internal AXSMarine ID.

Human‑readable name

"Rotterdam"

Full name of the parent polygon.

Example Query

GraphQL
query GetOpenAnchorages { polygonEvents( first: 50 isOpen: true polygonTypes: ["anchorage"] ancestorPolygons: ["NLRTM"] ) { edges { node { _id isOpen duration polygon { _id name type } vessel { imo name type segment } entryAis { time latitude longitude } outAis { time latitude longitude } } cursor } pageInfo { hasNextPage endCursor } totalCount } }

This returns the first 50 open anchorage events that are inside the “NLRTM”(Rotterdam) parent polygons.

This API is handling large datasets. Please refer to the Pagination documentation for more information. Results are limited to 10,000 events per page.

Header Parameters

Authorizationstring Required

Bearer token used for authentication.

Body Parameters

firstint

Returns the first n elements from the list.

lastint

Returns the last n elements from the list.

beforestring

Returns the elements in the list that come before the specified cursor.

afterstring

Returns the elements in the list that come after the specified cursor.

isOpenboolean

Indicates whether the polygon event is open or not.

polygonIdsarray

List of polygon Ids as array.

polygonTypesarray

List of polygon types as array.

ancestorPolygonsarray
entryDateobject

Specifies the range of entry dates for filtering polygon events.

Show child attributes

outDateobject

Specifies the range of out dates for filtering polygon events.

Show child attributes

entryDraftobject

Specifies the range of entry drafts for filtering polygon events.

Show child attributes

entryHeadingobject

Specifies the range of entry headings for filtering polygon events.

Show child attributes

entrySpeedobject

Specifies the range of entry speeds for filtering polygon events.

Show child attributes

outDraftobject

Specifies the range of out drafts for filtering polygon events.

Show child attributes

outHeadingobject

Specifies the range of out headings for filtering polygon events.

Show child attributes

outSpeedobject

The speed of the vessel when leaving the polygon event.

Show child attributes

durationobject

The duration of the event in hours.

Show child attributes

lastUpdatedobject

The date and time when the event was last updated.

Show child attributes

vesselBuiltobject

Range of dates during which the vessel was built.

Show child attributes

vesselBeamobject

Range of beam of the vessel (in meters).

Show child attributes

vesselLoaobject

Range of length overall of the vessel (in meters).

Show child attributes

vesselDraftobject

Range of nominal draft of the vessel (in meters).

Show child attributes

vesselDwtobject

Range of deadweight tonnage of the vessel.

Show child attributes

vesselTeuobject

Range of TEU of the vessel.

Show child attributes

vesselCubicobject

Range of cubic capacity of the vessel.

Show child attributes

vesselIdsarray

List of unique vessel IDs

vesselImosarray

List of vessel IMOs.

vesselSegmentsarray

List of vessel segments. Refer to Enum Vessel Segments for more details.

vesselTypesarray

List of vessel types. Refer to Enum Vessel Types for more details.

vesselSubtypesarray

List of vessel subtypes.

vesselLinerServiceIdsarray

List of vessel service ids.

vesselLinerRegionIdsarray

List of service region ids.

POST

/

Select
1

Response