Developer Portal
Insights
PurpleTRACMTIPodium
Other
Other
  • Weather
Insights
PurpleTRACMTIPodium
Other
Other
  • Weather
  1. Zone & Port Notifications
  • 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
      • Inbound Vessels
    • 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
        POST
      • Get Zone & Port Notification Subscriptions
        GET
      • Edit Zone & Port Notification Subscription
        PUT
      • Delete Zone & Port Notification Subscription
        DELETE
      • Get Zone & Port Notification Subscription
        GET
      • Search Zone & Port Notifications
        POST
      • Get Zone & Port Notifications by Subscription ID
        GET
      • Get All Zone & Port Notifications
        GET
  • 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. Zone & Port Notifications

Zone & Port Notifications

Subscribe to a place instead of a ship. A subscription names the zones or ports you care about and pushes an event whenever any vessel enters or leaves one.
This is the area-shaped counterpart to Vessel Notifications, and the two are configured differently enough that reading across from one to the other will catch you out.

How this differs from vessel notifications#

Both live under /notifications/v1/, both use the same envelope, and both deliver the same three ways. The filter object is where they part company.
Vessel subscriptionsZone & port subscriptions
Path/notifications/v1/vessels/notifications/v1/zones-and-ports
filters shapeNested. One key per event type, each with its own active flag and optionsFlat. One object with event_types, vessels, zones_ports and flag_codes
Scoped byA single imo, or a fleet_idA list of zone and port IDs, optionally narrowed to particular vessels
Turning an event type on"zones": { "active": true, ... }Adding it to the event_types array
There is no per-event-type active flag here
On a vessel subscription each event type carries its own active switch. On a zone and port subscription the event types are entries in one event_types array: adding an entry enables it, removing it disables it. Sending the nested vessel-style shape here will not do what you expect.

Event types#

Ten event types, named in event_types:
EventFires when
ZONE_ENTRY, ZONE_EXITA vessel enters or leaves a watched zone
PORT_AREA_ARRIVAL, PORT_AREA_DEPARTUREA vessel crosses the boundary of a watched port
PORT_ARRIVAL, PORT_DEPARTUREA vessel stops inside a watched port, or starts moving again
BERTH_ARRIVAL, BERTH_DEPARTUREA vessel arrives at or leaves a berth in a watched port
NEW_INBOUNDA vessel reports a watched port as its destination for the first time on a voyage
ETA_CHANGEA vessel inbound to a watched port changes its reported ETA
Berth events fire for ports only, never for other zone types such as an EEZ. A berth notification also tells you which berth it was.
NEW_INBOUND fires once per voyage. Later AIS messages that repeat the same destination do not raise it again, so pair it with ETA_CHANGE to follow an inbound vessel until it arrives. Both come from what the vessel reports about itself, not from what we observed, so they will not always end in an arrival.

The filter object#

Four keys, all optional, and they narrow in combination:
KeyTakesEffect when omitted
event_typesEvent names from the table aboveAll supported event types
zones_portsZone and port IDs, as UUIDsAll areas available to you
vesselsIMO numbers, scoping the subscription to particular shipsEvery vessel
flag_codesAn object with incl and excl arrays of ISO 3166-1 alpha-3 codesNo flag-state filtering
flag_codes is the one to note. It is an object, not an array, and it holds both directions:
"flag_codes": { "incl": ["ZMB", "MUS"], "excl": [] }
Zone and port IDs come from the search endpoint described on Zone & Port Search.

Screening enrichment#

settings.vessel_screening is optional and adds a compliance dimension to an area subscription:
"vessel_screening": {
  "active": true,
  "severity_filter": ["HIGH"]
}
With it switched on, notifications carry screening information about the vessel that triggered them, and severity_filter restricts which severities generate a notification at all. Use it to narrow a busy terminal subscription down to the arrivals that warrant a look.

Three ways to receive events#

Webhook: push, immediate
Set notification_callback_url on the subscription. We POST each notification to that URL as JSON the moment it is generated. This is the route for system-to-system integration, and the one to prefer where you can accept an inbound request.
Email: immediate or batched
Pull: you ask
Webhook and email are not exclusive. Setting both delivers immediately to your system and batches a human-readable copy to the people who need to review it.

Managing subscriptions#

CallDoes
GET /notifications/v1/zones-and-portsLists your subscriptions. active shows only live or only paused ones; limit and offset page
GET /notifications/v1/zones-and-ports/{id}Returns one
PUT /notifications/v1/zones-and-ports/{id}Replaces the configuration. Send the complete settings object, not just the part you are changing
DELETE /notifications/v1/zones-and-ports/{id}Removes it permanently
To pause instead of deleting, send the subscription back with "active": false. It stops generating notifications and keeps its filters, so you can switch it on again unchanged.
Changes take effect immediately and are not applied retrospectively. Notifications already generated are unaffected by a filter change.

Related#

Zone & Port Notifications: Worked Examples
A terminal watch, a flag-filtered subscription and reading events back.
Notifications & Webhooks
Endpoint requirements, delivery behaviour and retry handling.
Zone & Port Types
The vocabulary behind the areas you can subscribe to.
Modified at 2026-10-16 05:45:58
Previous
Vessels in Zone or Port
Next
Zone & Port Notifications: Worked Examples
Built with