Developer Portal
Insights
PurpleTRACMTIPodium
Other
Other
  • Weather
Insights
PurpleTRACMTIPodium
Other
Other
  • Weather
  1. Port Insights
  • Start Here
    • API Overview
    • Getting Started
    • Authentication
    • Quick Start
    • Testing & Sandbox
  • Concepts & Terminology
    • Concepts & Terminology
    • Notifications & Webhooks
    • Errors & Status Codes
    • Pagination & Filtering
    • Versioning & Deprecation
    • Changelog
  • Reference Data
    • Vessel Types
    • Vessel Classes
    • Vessel Statuses
    • Zone & Port Types
  • Build & Operate
    • AI Assistants & Agents
    • FAQ
    • SDKs & Code Generation
  • Vessel & Voyage
    • Overview
    • Vessel Insights
      • Overview
      • Vessel Search
      • Vessel Characteristics
    • Voyage Insights
      • Overview
      • Worked Examples
      • Vessel Port Calls
      • Vessel Zone & Port Events
      • Vessel AIS Reporting Gaps
      • Vessel STS Pairings
      • Positional Discrepancies
      • Port State Control
    • Vessel Positions
      • Vessel Positions
      • Historical Vessel Track
      • Latest Vessel Positions
    • Vessel Notifications
      • Worked Examples
      • Get Vessel Notification Subscriptions
      • Create Vessel Notification Subscription
      • Get Vessel Notification Subscription
      • Edit Vessel Notification Subscription
      • Get Vessel Notifications by Subscription ID
      • Get All Vessel Notifications
      • Delete Vessel Notification Subscription
  • Port & Trade
    • Overview
    • Choosing Port Endpoints
    • Port Insights
      • Port Insights
      • Berth Calls by Port
        GET
      • Inbound Vessels
        GET
    • Port Analytics
      • Port Analytics
      • Port Analytics: Worked Examples
      • Berth KPIs
      • Berth Details
      • Port Arrival & Departure Analytics
  • Domain & Fleet
    • Overview
    • Choosing Zone Endpoints
    • Zone Insights
      • Overview
    • Zone Analytics
      • Zone Analytics
      • Zone Analytics: Worked Examples
      • Zone Entry & Exit Analytics
    • Fleet Management
      • Fleet Management
      • Fleet Management: Worked Examples
      • List Fleets
      • Create Fleet
      • Get Fleet Details
      • Delete Fleet
      • Update Fleet
      • List Fleet Vessels
      • Get Fleet Composition
      • List Fleet Events
    • Custom Zones
      • Custom Zones
      • Create Custom Zone
      • Edit Custom Zone
  • Zones & Ports
    • Overview
    • Zone & Port Insights
      • Zone & Port Search
      • Get Single Zone or Port
      • Zone & Port Traffic
      • Vessels in Zone or Port
    • Zone & Port Notifications
      • Zone & Port Notifications
      • Zone & Port Notifications: Worked Examples
      • Create Zone & Port Notification Subscription
      • Get Zone & Port Notification Subscriptions
      • Edit Zone & Port Notification Subscription
      • Delete Zone & Port Notification Subscription
      • Get Zone & Port Notification Subscription
      • Search Zone & Port Notifications
      • Get Zone & Port Notifications by Subscription ID
      • Get All Zone & Port Notifications
  • Schemas
    • VesselTankerCharacteristicsResponse
    • ImoBatchSearchResponse
    • ReportedDestination
    • AisFieldDeltaNavigationalStatus
    • AisFieldDeltaErrorResponse
    • BerthDetailsDto
    • BerthListQuery
    • BerthPortInfoDto
    • BerthSummaryDto
    • DwellTimeDataPointDto
    • OccupancyDto
    • PortAnalyticsItem
    • PortAnalyticsQuery
    • PortAnalyticsResponse
    • PortAnalyticsTotals
    • TopVisitorDto
    • VesselTypeMixDto
    • ZoneAnalyticsItem
    • ZoneAnalyticsQuery
    • ZoneAnalyticsResponse
    • ZoneDetail
    • PortDetail
    • PositionReport
    • PositionalDiscrepancyEvent
    • AisSpoofingErrorResponse
    • AisSpoofingVesselInformation
    • VesselPortsFilter
    • ZoneDetails
    • PortDetails
    • CustomZoneDetails
    • CircleDetails
    • PortEventDetails
    • PortCallEventDetails
    • BerthInformationPortCall
    • PortVessel
    • PortListResponse
    • ZoneDefinitionResponse
    • CustomZoneResponse
    • ArrivalsDeparturesResponse
    • VesselsInZonePortResponse
    • BerthEventsResponse
    • VoyagePortCallsResponse
    • VoyageZonePortEventsResponse
    • CustomZoneRequest
    • CustomCircle
    • ZoneServiceErrorResponse
    • ZoneServiceVesselInformation
    • VesselIdentifier
    • LatestVesselFilter
    • CircleZone
    • PolygonZone
    • GeographicFilter
    • HistoricalPositionSearchRequest
    • LatestPositionSearchRequest
    • VesselInfo
    • MatchedDestination
    • ConsolidatedPosition
    • CpsApiErrorResponse
    • CpsApiPaginationMeta
    • CpsApiNavigationalStatus
    • AnalyticsServiceErrorResponse
    • ResponseMeta
    • FlagDetail
    • CountryOfBuild
    • Ownership
    • VesselTankerCharacteristics
    • VesselCharacteristicsResponse
    • VesselSummary
    • VesselSearchResponse
    • ImoBatchSearchMeta
    • ImoBatchSearchSummary
    • ImoVesselSummary
    • ImoErrorEntry
    • ImoBatchSearchData
    • AssetInformationServiceErrorResponse
    • AssetInformationServiceDimensions
    • AssetInformationServiceVesselCharacteristics
    • EmailSettingsDTO
    • VesselFilterRequestDTO
    • ZonePortFilterRequestResponseDTO
    • SettingsResponseDto
    • SubscriptionResponseDTO
    • NotificationResponseDTO
    • EventNotificationServiceMetaData
    • BerthEventDetails
    • PscInspection
    • CustomPolygon
    • ZoneServiceMeta
    • HistoricalPositionsResponse
    • FleetListResponse
    • FleetListMeta
    • FleetSummary
    • FleetItem
    • VesselPosition
    • FleetVesselItem
    • FleetDetailMeta
    • FleetDetail
    • AnalyticsServiceVesselInformation
    • FailedVessel
    • CreateFleetV2Request
    • CreateFleetV2Response
    • UpdateFleetV2Request
    • FleetManagementApiMeta
    • FleetManagementApiErrorResponse
    • AssetInformationServiceCountryOfBuild
    • BerthDetailMetaDto
    • FleetEventNavigationalStatus
    • LegacyStsPairingsResponse
    • VesselZonesFilter
    • EventNotificationServiceErrorResponse
    • VesselAisReportingGapsFilter
    • GapReportingErrorResponse
    • VesselStsPairingsFilter
    • VoyageVesselInformation
    • StsPairingsResponse
    • VesselPositionalDiscrepanciesFilter
    • VesselDraughtChangeFilter
    • PscInspectionServiceErrorResponse
    • ReportingStatus
    • VesselAisDestinationChangeFilter
    • DaysNotReportingRange
    • VesselAisEtaChangeFilter
    • AnalyticsServiceMeta
    • VesselMmsiChangeFilter
    • FleetInformation
    • VesselNavigationalStatusChangeFilter
    • FleetCompositionResponse
    • CompositionData
    • VesselInboundBaseResponse
    • Summary
    • TypeAndClass
    • RegistrationAndFlag
    • AnalyticsServiceCountryOfBuild
    • BuildAndOrigin
    • SizeAndDimensions
    • CategoryItem
    • ChartSection
    • RankedSection
    • BerthDetailQueryDto
    • SizeSection
    • DimensionsSection
    • AisGapStartedPosition
    • AisGapEndedPosition
    • ZoneCentroid
    • GapReportingMetaData
    • ZoneInformation
    • StsPairingServiceMeta
    • PscPortInformation
    • AisSpoofingMeta
    • FleetEventsResponse
    • PscInspectionServiceMetaData
    • FleetEventsData
    • ZoneServicePaginationMeta
    • EventVesselInformation
    • VesselInbound
    • ZoneEventDetails
    • ZoneEventResponse
    • Schedule
    • AisGapEventResponse
    • StsPairingEventResponse
    • StsPairedVessel
    • PositionalDiscrepancyEventResponse
    • Centroid
    • DiscrepancyPositionStart
    • DiscrepancyPositionEnd
    • PscEventResponse
    • BerthDetailResponseDto
    • GapEventsResponse
    • StsPairingsData
    • PscInspectionsResponse
    • Point
    • GapEventData
    • StsPairingEvent
    • PscInspectionData
    • LatestPosition
    • VesselScreening
    • GapEvent
    • Location
    • BerthKpiDto
    • FlagCodesDTO
    • PortInformation
    • BerthListMeta
    • GapPosition
    • StsPairingServiceVesselInformation
    • AnalyticsServiceNavigationalStatus
    • AisFieldDeltaVesselInformation
    • VesselStatus
    • GapReportingNavigationalStatus
    • StsPairingServiceErrorResponse
    • PscInspectionServiceVesselInformation
    • AisFieldDeltaMetaData
    • BerthListResponseDto
    • GapReportingVesselInformation
    • VesselSettingsRequestDto
    • LegacyMeta
    • PolygonDetails
    • PositionalDiscrepancyData
    • ZonePortSettingsRequestDto
    • FleetVesselListResponse
    • VesselFlag
    • LegacyStsPairingsData
    • PositionalDiscrepancyResponse
    • VesselSubscriptionRequestDTO
    • LegacyStsPairing
    • BerthTerminalGroupDto
    • ZoneServiceNavigationalStatus
    • ZonePortSubscriptionRequestDTO
    • LegacyPairedVessel
    • UpdateFleetV2Response
    • StsPairingServiceVesselCharacteristics
    • MaritimeAnalyticsBeErrorResponse
    • FleetSummaryV2
    • FleetDetailResponse
    • GapDto
    • StsPairingServiceDimensions
    • VesselIdentifiers
    • RejectedVessels
    • BerthInformation
    • VesselPositionsGroup
    • SubscriptionSingleResponseDTO
    • VesselResultsSummary
    • LatestVesselPositionItem
    • OccupancyPaginationDto
    • SubscriptionsResponseDTO
    • SubscriptionIdsRequestDTO
    • VesselEntryDetails
    • PortAnalyticsDataEntry
    • LatestPositionDetails
    • LatestPositionsResponse
    • FleetSummaryV2Update
    • PortAnalyticsMeta
    • VesselResultsDetail
    • ZonePortVessel
    • BerthEvent
    • VoyagePortCall
    • VoyagePortZoneEvent
    • PortDwellSeriesEntryDto
    • PortInfoDto
    • TopVesselDto
    • VesselVisitDto
    • ZoneAnalyticsDataEntry
    • ZoneAnalyticsMeta
    • ZoneAnalyticsTotals
    • ZoneInfoDto
  1. Port Insights

Port Insights

Five endpoints that answer questions about a place instead of a ship: which ports exist, who is in one now, who is on the way, who arrived and left, and what happened at the berths.
Find a port first. Everything else takes its identifier.

The five endpoints#

EndpointAnswers
GET /zone-port-insights/v1/zonesWhich ports can I see, and what is this one called?
GET /zone-port-insights/v1/vessels-in-zone-or-port/{id_type}/{id}Who is inside right now?
GET /zone-port-insights/v1/inbound-vessels/{id_type}/{id}Who is on the way here?
GET /zone-port-insights/v1/zone-and-port-traffic/{id_type}/{id}Who came and went over this period?
GET /zone-port-insights/v1/port-berth-traffic/{id_type}/{id}What happened at the berths?
The search, vessels-in-zone-or-port and zone-and-port-traffic serve zones as well, which is why they are documented in the shared Zones & Ports section. The identifier you pass decides whether you get a port answer. Inbound vessels and berth traffic are Port & Trade endpoints alone.

Finding a port#

Five filters help you find a port, all optional and combinable: name_contains (case-insensitive substring), unlocode, country_code (three letters), sub_division_code, and wpi_number for the World Port Index.
The search returns zones and ports in one list, so a name match can bring back an area as well as the port. types and sub_type filter by kind of area; Zone & Port Types lists the port types. For one port in full, pass its internal id to GET /zone-port-insights/v1/zones/{id}.

Addressing a port two ways#

The other four endpoints carry {id_type}/{id} in the path, and id_type tells the service how to read the id that follows.
On vessels-in-zone-or-port, zone-and-port-traffic and port-berth-traffic it is ID or UNLOCODE, matched case-insensitively, which is the spelling the examples below use. inbound-vessels declares the pair in lower case, id and unlocode, and its own example follows suit.
UN/LOCODE is the shortcut: if your data already carries one, you can skip the search entirely.
An out-of-scope port returns 403, not 404
We check access against the ports your account is entitled to. An identifier outside them comes back as 403, so the two responses mean different things. 404 means no such port exists; 403 means it exists and your subscription does not cover it. The second is a commercial question, not a bug in your code. Both codes are declared on vessels-in-zone-or-port, zone-and-port-traffic and port-berth-traffic.

Who is in the port now#

vessels-in-zone-or-port returns what is inside the boundary at the moment of the call. Each vessel carries when it entered, the position it entered at, and its latest known position:
Paging is the only filter. For a congestion or occupancy view, compare each vessel's latest position against its entered position to see which have not moved since they arrived.

Who is on the way#

inbound-vessels returns the vessels naming this port as their destination in their AIS messages. Each entry carries the vessel's identity (name, type, IMO, MMSI, callsign and flag), the destination we parsed, the ETA it reported, and its latest position.
The destination field is free text, typed aboard the vessel. We clean it and match it against the port library to work out which place it names. A vessel can retype it or change course, and plenty never arrive.
Four filters narrow it, all optional:
reported_eta_gte and reported_eta_lte bound the reported ETA, ISO-8601 UTC. reported_eta_lte cannot be earlier than reported_eta_gte
last_destination_update_after drops destinations we parsed before the moment you give, which is how you ignore stale intent
exclude_arrived leaves out vessels that have already reached the port, and defaults to true
Reported, not observed
Everything on this endpoint comes from what a vessel says about itself. zone-and-port-traffic and port-berth-traffic report what we watched happen instead, so the two will not agree.

Arrivals and departures over a window#

zone-and-port-traffic takes a time range and, for a port, returns the port-level movement events:
EventMeans
PORT_AREA_ARRIVALThe vessel enters the port area
PORT_ARRIVALThe vessel has stopped inside the port area
PORT_DEPARTUREThe vessel is moving again but still inside the port area
PORT_AREA_DEPARTUREThe vessel exits the port area
timestamp_start is required: UTC, yyyy-MM-ddTHH:mm:ss, optional trailing Z, and it cannot be in the future. timestamp_end is optional and defaults to the time of the request, and we treat a value in the future as the current time. Filter with event_type, repeatable.
The berth events are deliberately not here. Ask port-berth-traffic for those.
For counts rather than movements, use Port Analytics
This endpoint returns one row per movement. Port Analytics answers the same question as a total: arrivals and departures bucketed by day, week, month, quarter or year, and split by vessel type if you ask.

Berth-level traffic#

port-berth-traffic returns BERTH_ARRIVAL and BERTH_DEPARTURE for one port, each event carrying the berth it happened at. Same time-range parameters as above.
Two event sets, two endpoints, on purpose
Each operation validates event types against its own set and rejects anything outside it. Port-area, port and zone events belong to zone-and-port-traffic, and the berth pair to port-berth-traffic. Asking one endpoint for another's events returns an error, so a typo fails loudly instead of looking like no data.

Paging#

limit defaults to 100 and accepts 1 to 500; offset defaults to 0. That holds across all five. See Pagination & Filtering.

Related#

Choosing Port Endpoints
Getting a port identifier, and subscribing to the port once you have one.
Zone & Port Notifications
Being told about arrivals instead of polling for them.
Zone & Port Types
The taxonomy behind ports, anchorages and the areas around them.
Modified at 2026-10-16 05:45:58
Previous
Choosing Port Endpoints
Next
Berth Calls by Port
Built with