ShipFinder AIS Data API · AsyncAPI Specification
ShipFinder Event Dataset (push)
Version 1.0.0
DERIVED artifact. ShipFinder documents seven push event types under its Event Dataset, each with a published JSON payload schema, but publishes no AsyncAPI document of its own. API Evangelist derived this AsyncAPI 3.0.0 description from the payload schemas ShipFinder publishes on docs.shipfinder.com. Payload schemas are reproduced verbatim; the channel/operation structure is API Evangelist assembly. The channel address is the subscriber-configured receiving URL, so it is modelled as a server variable rather than a fixed path.
View Spec
View on GitHub
AISMaritime DataVessel TrackingShip TrackingVessel DataHistorical AISGeospatialGISLogisticsSupply ChainWeatherMeteorologyTradeCommoditiesComplianceRiskEvent StreamingWebhooksAsyncAPIWebhooksEvents
Channels
geofenceMonitoringPush
Vessel entry into / exit from a monitored geofence. Delivered to the receiving URL configured for the API key (or for the individual geofence zone).
vesselSpeedAnomalyPush
A monitored vessel drops below or exceeds its subscribed speed range. Delivered to the receiving URL configured for the API key (or for the individual geofence zone).
realtimeVesselPositionPush
One packet of real-time position data for every vessel in a monitored fleet, every 10 minutes. Delivered to the receiving URL configured for the API key (or for the individual geofence zone).
arrivalDeparturePush
A monitored vessel enters a port area or leaves a port berth. Delivered to the receiving URL configured for the API key (or for the individual geofence zone).
vesselDynamicEtaPush
Dynamic ETA for every vessel in a monitored fleet, pushed every 10 minutes. Delivered to the receiving URL configured for the API key (or for the individual geofence zone).
vesselAisSignalLossPush
A monitored vessel stops reporting AIS for more than 15 minutes, or resumes reporting. Delivered to the receiving URL configured for the API key (or for the individual geofence zone).
vesselStsEventPush
Two monitored vessels stay closely berthed or sail side by side for more than 5 minutes (ship-to-ship operation). Delivered to the receiving URL configured for the API key (or for the individual geofence zone).
Messages
✉
GeofenceMonitoringPushMessage
Geofence Monitoring Push
Vessel entry into / exit from a monitored geofence.
✉
VesselSpeedAnomalyPushMessage
Vessel Speed Anomaly Push
A monitored vessel drops below or exceeds its subscribed speed range.
✉
RealtimeVesselPositionPushMessage
Real-time Vessel Position Push
One packet of real-time position data for every vessel in a monitored fleet, every 10 minutes.
✉
ArrivalDeparturePushMessage
Arrival/Departure Event Push
A monitored vessel enters a port area or leaves a port berth.
✉
VesselDynamicEtaPushMessage
Vessel Dynamic ETA Push
Dynamic ETA for every vessel in a monitored fleet, pushed every 10 minutes.
✉
VesselAisSignalLossPushMessage
Vessel AIS Signal Loss Event Push
A monitored vessel stops reporting AIS for more than 15 minutes, or resumes reporting.
✉
VesselStsEventPushMessage
Vessel STS Event Push
Two monitored vessels stay closely berthed or sail side by side for more than 5 minutes (ship-to-ship operation).
Servers
https
subscriberEndpoint
The subscriber-operated HTTPS endpoint registered in the ShipFinder console under Fleet & Areas > Webhook URL Management. ShipFinder POSTs event JSON to it.
AsyncAPI Specification
asyncapi: 3.0.0
info:
title: ShipFinder Event Dataset (push)
version: 1.0.0
description: DERIVED artifact. ShipFinder documents seven push event types under its Event Dataset, each with
a published JSON payload schema, but publishes no AsyncAPI document of its own. API Evangelist derived this
AsyncAPI 3.0.0 description from the payload schemas ShipFinder publishes on docs.shipfinder.com. Payload schemas
are reproduced verbatim; the channel/operation structure is API Evangelist assembly. The channel address is
the subscriber-configured receiving URL, so it is modelled as a server variable rather than a fixed path.
contact:
name: ShipFinder Support
email: support@elaneglobal.com
externalDocs:
url: https://docs.shipfinder.com/
servers:
subscriberEndpoint:
host: '{receivingUrlHost}'
protocol: https
description: The subscriber-operated HTTPS endpoint registered in the ShipFinder console under Fleet & Areas
> Webhook URL Management. ShipFinder POSTs event JSON to it.
variables:
receivingUrlHost:
description: Host of the receiving URL you configure in the ShipFinder console.
default: example.com
channels:
geofenceMonitoringPush:
address: /
title: Geofence Monitoring Push
description: Vessel entry into / exit from a monitored geofence. Delivered to the receiving URL configured for
the API key (or for the individual geofence zone).
messages:
GeofenceMonitoringPushMessage:
$ref: '#/components/messages/GeofenceMonitoringPushMessage'
vesselSpeedAnomalyPush:
address: /
title: Vessel Speed Anomaly Push
description: A monitored vessel drops below or exceeds its subscribed speed range. Delivered to the receiving
URL configured for the API key (or for the individual geofence zone).
messages:
VesselSpeedAnomalyPushMessage:
$ref: '#/components/messages/VesselSpeedAnomalyPushMessage'
realtimeVesselPositionPush:
address: /
title: Real-time Vessel Position Push
description: One packet of real-time position data for every vessel in a monitored fleet, every 10 minutes.
Delivered to the receiving URL configured for the API key (or for the individual geofence zone).
messages:
RealtimeVesselPositionPushMessage:
$ref: '#/components/messages/RealtimeVesselPositionPushMessage'
arrivalDeparturePush:
address: /
title: Arrival/Departure Event Push
description: A monitored vessel enters a port area or leaves a port berth. Delivered to the receiving URL configured
for the API key (or for the individual geofence zone).
messages:
ArrivalDeparturePushMessage:
$ref: '#/components/messages/ArrivalDeparturePushMessage'
vesselDynamicEtaPush:
address: /
title: Vessel Dynamic ETA Push
description: Dynamic ETA for every vessel in a monitored fleet, pushed every 10 minutes. Delivered to the receiving
URL configured for the API key (or for the individual geofence zone).
messages:
VesselDynamicEtaPushMessage:
$ref: '#/components/messages/VesselDynamicEtaPushMessage'
vesselAisSignalLossPush:
address: /
title: Vessel AIS Signal Loss Event Push
description: A monitored vessel stops reporting AIS for more than 15 minutes, or resumes reporting. Delivered
to the receiving URL configured for the API key (or for the individual geofence zone).
messages:
VesselAisSignalLossPushMessage:
$ref: '#/components/messages/VesselAisSignalLossPushMessage'
vesselStsEventPush:
address: /
title: Vessel STS Event Push
description: Two monitored vessels stay closely berthed or sail side by side for more than 5 minutes (ship-to-ship
operation). Delivered to the receiving URL configured for the API key (or for the individual geofence zone).
messages:
VesselStsEventPushMessage:
$ref: '#/components/messages/VesselStsEventPushMessage'
operations:
receiveGeofenceMonitoringPush:
action: receive
channel:
$ref: '#/channels/geofenceMonitoringPush'
summary: Receive Geofence Monitoring Push
bindings:
http:
method: POST
receiveVesselSpeedAnomalyPush:
action: receive
channel:
$ref: '#/channels/vesselSpeedAnomalyPush'
summary: Receive Vessel Speed Anomaly Push
bindings:
http:
method: POST
receiveRealtimeVesselPositionPush:
action: receive
channel:
$ref: '#/channels/realtimeVesselPositionPush'
summary: Receive Real-time Vessel Position Push
bindings:
http:
method: POST
receiveArrivalDeparturePush:
action: receive
channel:
$ref: '#/channels/arrivalDeparturePush'
summary: Receive Arrival/Departure Event Push
bindings:
http:
method: POST
receiveVesselDynamicEtaPush:
action: receive
channel:
$ref: '#/channels/vesselDynamicEtaPush'
summary: Receive Vessel Dynamic ETA Push
bindings:
http:
method: POST
receiveVesselAisSignalLossPush:
action: receive
channel:
$ref: '#/channels/vesselAisSignalLossPush'
summary: Receive Vessel AIS Signal Loss Event Push
bindings:
http:
method: POST
receiveVesselStsEventPush:
action: receive
channel:
$ref: '#/channels/vesselStsEventPush'
summary: Receive Vessel STS Event Push
bindings:
http:
method: POST
components:
messages:
GeofenceMonitoringPushMessage:
name: GeofenceMonitoringPushMessage
title: Geofence Monitoring Push
summary: Vessel entry into / exit from a monitored geofence.
contentType: application/json
payload:
type: object
properties:
mmsi:
type: integer
description: 9-digit numeric code of MMSI
imo:
type: integer
description: 7-digit numeric code of IMO
call_sign:
type: string
description: 'Call Sign '
ship_name:
type: string
description: Vessel name
area_id:
type: string
description: Unique identifier of the geofence.
area_name:
type: string
description: Name of the created geofence.
event_type:
type: integer
description: 1=Area Entry; 2=Area Exit; 3=Suspected Area Crossing
event_time:
type: integer
description: AIS event occurrence time (UTC) in Unix timestamp.
required:
- mmsi
- imo
- call_sign
- ship_name
- area_id
- area_name
- event_type
- event_time
x-apifox-orders:
- mmsi
- imo
- call_sign
- ship_name
- area_id
- area_name
- event_type
- event_time
externalDocs:
url: https://docs.shipfinder.com/433428967e0
VesselSpeedAnomalyPushMessage:
name: VesselSpeedAnomalyPushMessage
title: Vessel Speed Anomaly Push
summary: A monitored vessel drops below or exceeds its subscribed speed range.
contentType: application/json
payload:
title: ''
type: object
properties:
data:
type: object
properties:
mmsi:
type: integer
description: 9-digit numeric code of MMSI
imo:
type: integer
description: 7-digit numeric code of IMO
call_sign:
type: string
description: 'Call Sign '
ship_name:
type: string
description: Vessel name
event_type:
type: integer
description: '1=Below the allowed speed range;
2=Above the allowed speed range'
lng:
type: number
description: Coordinate longitude, WGS84 coordinate system
lat:
type: number
description: Coordinate latitude, WGS84 coordinate system
navistat:
type: integer
description: "Vessel navigation status when the event is triggered. \nDefult=0. Please see References.\
\ A return value of -1 or 255 indicates invalid data."
event_time:
type: integer
description: 'AIS event occurrence time.Format: YYYY-MM-DD HH:MM:SS, UTC.'
x-apifox-orders:
- mmsi
- imo
- call_sign
- ship_name
- event_type
- lng
- lat
- navistat
- event_time
required:
- mmsi
- imo
- call_sign
- ship_name
- event_type
- lng
- lat
- navistat
- event_time
x-apifox-orders:
- data
required:
- data
externalDocs:
url: https://docs.shipfinder.com/433493965e0
RealtimeVesselPositionPushMessage:
name: RealtimeVesselPositionPushMessage
title: Real-time Vessel Position Push
summary: One packet of real-time position data for every vessel in a monitored fleet, every 10 minutes.
contentType: application/json
payload:
type: object
properties:
data:
type: array
items:
type: object
properties:
mmsi:
type: integer
description: 9-digit numeric code of MMSI
imo:
type: integer
description: 7-digit numeric code of IMO
call_sign:
type: string
description: 'Call Sign '
ship_name:
type: string
description: Vessel name
ship_cnname:
type: string
description: Chinese name of the vessel
data_source:
type: integer
description: 0=Terrestrial AIS stations or Shipborne AIS; 1=Satellite AIS
lat:
type: number
description: Coordinate latitude, WGS84 coordinate system
lng:
type: number
description: Coordinate longitude, WGS84 coordinate system
ship_type:
type: integer
description: 'Numeric code of vessel type: see References for details '
length:
type: number
description: 'Vessel length in meters, valid value range: 0–1022'
width:
type: number
description: Vessel breadth in meters (nautical standard term)
left:
type: number
description: Port distance in meters
trail:
type: number
description: Stern Distance in meters
draught:
type: number
description: Vessel draught depth in meters
dest:
type: string
description: Standardized destination port names, e.g., SINGAPORE, SG
destcode:
type: string
description: Port code of the destination, e.g., SGSGP
navistat:
type: integer
description: 0, Vessel navigation status; -1=invalid data
sog:
type: number
description: Real-time vessel speed over ground in knots; -1=invalid data
cog:
type: number
description: Course over ground in degrees ; -1=invalid data
hdg:
type: number
description: Vessel heading in degrees; 511=invalid data
rot:
type: number
description: Vessel heading in degrees; 511=invalid data
eta:
type: integer
description: Estimated Time of Arrival in Unix timestamp
last_time:
type: integer
description: AIS last update time in Unix timestamp
required:
- mmsi
- imo
- call_sign
- ship_name
- ship_cnname
- data_source
- last_time
- lat
- lng
- ship_type
- length
- width
- left
- trail
- draught
- dest
- destcode
- eta
- navistat
- sog
- cog
- hdg
- rot
x-apifox-orders:
- mmsi
- imo
- call_sign
- ship_name
- ship_cnname
- data_source
- last_time
- lat
- lng
- ship_type
- length
- width
- left
- trail
- draught
- dest
- destcode
- eta
- navistat
- sog
- cog
- hdg
- rot
required:
- data
x-apifox-orders:
- data
externalDocs:
url: https://docs.shipfinder.com/432751579e0
ArrivalDeparturePushMessage:
name: ArrivalDeparturePushMessage
title: Arrival/Departure Event Push
summary: A monitored vessel enters a port area or leaves a port berth.
contentType: application/json
payload:
type: object
properties:
mmsi:
type: integer
description: 9-digit numeric code of MMSI
imo:
type: integer
description: 7-digit numeric code of IMO
call_sign:
type: string
description: 'Call Sign '
ship_name:
type: string
description: Vessel name
event_type:
type: integer
description: Type of arrival/departure event. 1 = Arrival To Port (ATA); 2 = Arrival To Berth (ATB);
3 = Departure From Port (ATD)
port_code:
type: string
description: Standard 5-digit port code
port_name:
type: string
description: Name of the port
port_cnname:
type: string
description: Chinese name of the port
port_time_zone:
type: string
description: Time zone of the port’s location
port_country_name:
type: string
description: Name of the country/region where the port is located
port_country_cnname:
type: string
description: Chinese name of the country/region where the port is located
port_country_code:
type: string
description: Standard code of the country/region where the port is located
terminal_name:
type: string
description: Name of the terminal where the vessel berthed.
event_time:
type: integer
description: Event Occurrence Time (UTC) in Unix timstamp. 1741685830
required:
- mmsi
- imo
- call_sign
- ship_name
- event_type
- event_time
- port_code
- port_name
- port_cnname
- port_time_zone
- port_country_name
- port_country_cnname
- port_country_code
- terminal_name
x-apifox-orders:
- mmsi
- imo
- call_sign
- ship_name
- event_type
- event_time
- port_code
- port_name
- port_cnname
- port_time_zone
- port_country_name
- port_country_cnname
- port_country_code
- terminal_name
externalDocs:
url: https://docs.shipfinder.com/433316672e0
VesselDynamicEtaPushMessage:
name: VesselDynamicEtaPushMessage
title: Vessel Dynamic ETA Push
summary: Dynamic ETA for every vessel in a monitored fleet, pushed every 10 minutes.
contentType: application/json
payload:
type: object
properties:
ship:
type: object
properties:
mmsi:
type: integer
imo:
type: integer
ship_name:
type: string
call_sign:
type: string
ship_type:
type: integer
required:
- mmsi
- imo
- ship_name
- call_sign
- ship_type
x-apifox-orders:
- mmsi
- imo
- ship_name
- call_sign
- ship_type
Location:
type: object
properties:
lng:
type: number
lat:
type: number
sog:
type: integer
sea_area:
type: string
sea_area_code:
type: integer
required:
- lng
- lat
- sog
- sea_area
- sea_area_code
x-apifox-orders:
- lng
- lat
- sog
- sea_area
- sea_area_code
Preport:
type: object
properties:
port_code:
type: string
port_cnname:
type: string
port_name:
type: string
time_zone:
type: integer
port_country_code:
type: string
port_country_name:
type: string
port_country_cnname:
type: string
ata:
type: integer
atb:
type: integer
atd:
type: integer
required:
- port_code
- port_cnname
- port_name
- time_zone
- port_country_code
- port_country_name
- port_country_cnname
- ata
- atb
- atd
x-apifox-orders:
- port_code
- port_cnname
- port_name
- time_zone
- port_country_code
- port_country_name
- port_country_cnname
- ata
- atb
- atd
Nextport:
type: object
properties:
port_code:
type: string
port_cnname:
type: string
port_name:
type: string
time_zone:
type: integer
port_country_code:
type: string
port_country_name:
type: string
port_country_cnname:
type: string
sailed_distance:
type: integer
sailed_time:
type: integer
ais_speed:
type: integer
speed:
type: integer
remaining_distance:
type: integer
eta:
type: integer
required:
- port_code
- port_cnname
- port_name
- time_zone
- port_country_code
- port_country_name
- port_country_cnname
- sailed_distance
- sailed_time
- ais_speed
- speed
- eta
- remaining_distance
x-apifox-orders:
- port_code
- port_cnname
- port_name
- time_zone
- port_country_code
- port_country_name
- port_country_cnname
- sailed_distance
- sailed_time
- ais_speed
- speed
- eta
- remaining_distance
required:
- ship
- Location
- Preport
- Nextport
x-apifox-orders:
- ship
- Location
- Preport
- Nextport
externalDocs:
url: https://docs.shipfinder.com/433432729e0
VesselAisSignalLossPushMessage:
name: VesselAisSignalLossPushMessage
title: Vessel AIS Signal Loss Event Push
summary: A monitored vessel stops reporting AIS for more than 15 minutes, or resumes reporting.
contentType: application/json
payload:
type: object
properties:
mmsi:
type: integer
description: 9-digit numeric code of MMSI
ship_name:
type: string
description: Vessel name
event_type:
type: integer
description: 1=AIS signal lost; 2=AIS signal restored
lng:
type: number
description: Coordinate longitude, WGS84 coordinate system
lat:
type: number
description: Coordinate latitude, WGS84 coordinate system
sog:
type: number
description: Real-time vessel speed over ground in knots; -1=invalid data
event_time:
type: integer
description: AIS event occurrence time (UTC) in Unix timestamp.
required:
- mmsi
- ship_name
- event_time
- event_type
- lng
- lat
- sog
x-apifox-orders:
- mmsi
- ship_name
- event_time
- event_type
- lng
- lat
- sog
externalDocs:
url: https://docs.shipfinder.com/433437582e0
VesselStsEventPushMessage:
name: VesselStsEventPushMessage
title: Vessel STS Event Push
summary: Two monitored vessels stay closely berthed or sail side by side for more than 5 minutes (ship-to-ship
operation).
contentType: application/json
payload:
type: object
properties:
status:
type: integer
msg:
type: string
data:
type: array
items:
type: object
properties:
ship_data:
type: object
properties:
mmsi:
type: integer
description: 9-digit numeric code of MMSI
imo:
type: integer
description: 7-digit numeric code of IMO
call_sign:
type: string
description: 'Call Sign '
ship_name:
type: string
description: Vessel name
ship_type:
type: integer
description: 'Numeric code of vessel type: see References for details '
required:
- mmsi
- imo
- call_sign
- ship_name
- ship_type
x-apifox-orders:
- mmsi
- imo
- call_sign
- ship_name
- ship_type
description: Basic information of monitored vessel
approach_ship_data:
type: object
properties:
mmsi:
type: integer
description: 9-digit numeric code of MMSI
imo:
type: integer
description: 7-digit numeric code of IMO
call_sign:
type: string
description: 'Call Sign '
ship_name:
type: string
description: Vessel name
ship_type:
type: integer
description: 'Numeric code of vessel type: see References for details '
required:
- mmsi
- imo
- call_sign
- ship_name
- ship_type
x-apifox-orders:
- mmsi
- imo
- call_sign
- ship_name
- ship_type
description: Basic information of STS vessel
approach_data:
type: object
properties:
approach_state:
type: integer
description: '1= STS start
2= STS end '
approach_zone:
type: integer
description: 'STS operation area:
1=STS in port area;
2=STS at anchorage;
3=STS in other areas.'
lat:
type: number
description: Coordinate latitude, WGS84 coordinate system
lng:
type: number
description: Coordinate longitude, WGS84 coordinate system
port_code:
type: string
description: 5-digit code of the corresponding port. Returned only when the STS event takes
place in the port or anchorage area.
position:
type: string
description: 'Position description obtained by reverse geocoding based on the event coordinates.
Only returned when the STS event is classified as "other areas".'
sog:
type: number
description: Real-time vessels speed over ground at the time of STS, in knots.
approach_time:
type: integer
description: Start time of the STS event, represented as a Unix timestamp
required:
- approach_state
- approach_time
- approach_zone
- lat
- lng
- port_code
- position
- sog
x-apifox-orders:
- approach_state
- approach_time
- approach_zone
- lat
- lng
- port_code
- position
- sog
description: STS information
required:
- ship_data
- approach_ship_data
- approach_data
x-apifox-orders:
- ship_data
- approach_ship_data
- approach_data
total:
type: integer
description: Number of Pushed Records
required:
- status
- msg
- data
- total
x-apifox-orders:
- status
- msg
- data
- total
externalDocs:
url: https://docs.shipfinder.com/433444123e0
x-evidence:
method: derived
derived_from: asyncapi/shipfinder-ais-data-api-webhooks.yml
sources:
- https://docs.shipfinder.com/433428967e0.md
- https://docs.shipfinder.com/433493965e0.md
- https://docs.shipfinder.com/432751579e0.md
- https://docs.shipfinder.com/433316672e0.md
- https://docs.shipfinder.com/433432729e0.md
- https://docs.shipfinder.com/433437582e0.md
- https://docs.shipfinder.com/433444123e0.md
fetched: '2026-08-09'
note: ShipFinder publishes no AsyncAPI document. Payload schemas verbatim from the provider docs.