MarineTraffic · Capability
MarineTraffic Port Events
MarineTraffic Port Events. 2 operations. Self-contained Naftiko capability covering one MarineTraffic AIS business surface.
MarineTraffic Port Events is a Naftiko capability published by MarineTraffic, one of 13 capabilities the APIs.io network indexes for this provider. It bundles 2 operations across the GET method.
The capability includes 2 read-only operations. Lead operation: Port Calls. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.
Tagged areas include MarineTraffic, AIS, and Maritime.
What You Can Do
GET
Portcalls_
— Port Calls
/v1/portcalls
GET
Berth calls_
— Berth Calls
/v1/berth-calls
MCP Tools
marinetraffic-portcalls_
Port Calls
read-only
idempotent
marinetraffic-berth-calls_
Berth Calls
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: MarineTraffic Port Events
description: MarineTraffic Port Events. 2 operations. Self-contained Naftiko capability covering one MarineTraffic AIS business
surface.
tags:
- MarineTraffic
- AIS
- Maritime
created: '2026-05-25'
modified: '2026-05-25'
binds:
- namespace: env
keys:
MARINETRAFFIC_API_KEY: MARINETRAFFIC_API_KEY
capability:
consumes:
- type: http
namespace: events-port
baseUri: https://services.marinetraffic.com/api
description: Port-level port calls and berth calls.
resources:
- name: portcalls-api_key
path: /portcalls/{api_key}
operations:
- name: portcalls_
method: GET
description: Port Calls
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: v
in: query
type: integer
description: Version of the service to be executed. Use version 6 to get the latest
required: true
- name: portid
in: query
type: integer
description: The MarineTraffic ID of the port you wish to monitor (found on the URL of the respective Port page)
or port UN/LOCODE
required: true
- name: timespan
in: query
type: integer
description: The maximum age, in minutes, of the returned port calls. Maximum value is 2880
required: false
- name: movetype
in: query
type: integer
description: Use 0 to only receive arrivals or 1 to only receive departures. If not used, the response will include
both
required: false
- name: exclude_intransit
in: query
type: integer
description: Use 1 to exclude vessels in transit
required: false
- name: fromdate
in: query
type: string
description: 'Portcalls between fromdate and todate. Maximum period requested 190 days </br></br> Date format: YYYY-MM-DD
HH:MM'
required: false
- name: todate
in: query
type: string
description: 'Portcalls between fromdate and todate. Maximum period requested 190 days </br></br> Date format: YYYY-MM-DD
HH:MM'
required: false
- name: dwt_min
in: query
type: integer
description: 'Data filter: minimum DWT </br></br> Applicable to IMO-having vessels'
required: false
- name: dwt_max
in: query
type: integer
description: 'Data filter: maximum DWT </br></br> Applicable to IMO-having vessels'
required: false
- name: gt_min
in: query
type: integer
description: 'Data filter: minimum GT </br></br> Applicable to IMO-having vessels'
required: false
- name: gt_max
in: query
type: integer
description: 'Data filter: maximum GT </br></br> Applicable to IMO-having vessels'
required: false
- name: market
in: query
type: string
description: Define market(s) for which you would like to receive port calls (single or comma separated values)
- <a href="https://support.marinetraffic.com/en/articles/9552918-how-does-marinetraffic-categorise-commercial-market-and-commercial-size-clas
required: false
- name: msgtype
in: query
type: string
description: 'Resolution of the response. Available values: <ul>'
required: false
- name: protocol
in: query
type: string
description: 'Response type. Use one of the following: <ul>'
required: false
- name: berth-calls-api_key
path: /berth-calls/{api_key}
operations:
- name: berth-calls_
method: GET
description: Berth Calls
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: v
in: query
type: integer
description: Version of the service to be executed. Use version 3 to get the latest
required: true
- name: portid
in: query
type: integer
description: The MarineTraffic ID of the port you wish to monitor (found on the URL of the respective Port page)
</br></br> You can <b>instead</b> use port_unlocode, berthid or terminalid
required: true
- name: port_unlocode
in: query
type: integer
description: Port UN LOCODE (without gaps or spaces)
required: false
- name: berthid
in: query
type: integer
description: The MarineTraffic ID of the berth you wish to monitor (list to be provided upon request)
required: false
- name: terminalid
in: query
type: integer
description: The MarineTraffic ID of the terminal you wish to monitor (list to be provided upon request)
required: false
- name: timespan
in: query
type: integer
description: The maximum age, in minutes, of the returned port calls. Maximum value is 2880
required: false
- name: fromdate
in: query
type: string
description: 'Return Berth Calls where DOCK_TIMESTAMP_UTC is equal to or greater than provided fromdate. Maximum
period requested 15 days </br></br> Date format: YYYY-MM-DD HH:MM:SS.'
required: false
- name: todate
in: query
type: string
description: 'Return Berth Calls where DOCK_TIMESTAMP_UTC is equal to or less than provided todate. Maximum period
requested 15 days </br></br> Date format: YYYY-MM-DD HH:MM:SS'
required: false
- name: market
in: query
type: string
description: Define market for which you would like to receive berth calls - <a href="https://support.marinetraffic.com/en/articles/9552918-how-does-marinetraffic-categorise-commercial-market-and-commercial-size-class">more</a>
<ul>
required: false
- name: shipclass
in: query
type: integer
description: Define ship class of interest - <a href="https://support.marinetraffic.com/en/articles/9552918-how-does-marinetraffic-categorise-commercial-market-and-commercial-size-class">more</a>
required: false
- name: dwt_min
in: query
type: integer
description: 'Data filter: minimum DWT </br></br> Use it to filter by size Cargo and Tanker IMO-having vessels (shiptype
= 7,8)'
required: false
- name: dwt_max
in: query
type: integer
description: 'Data filter: maximum DWT </br></br> Use it to filter by size Cargo and Tanker IMO-having vessels (shiptype
= 7,8)'
required: false
- name: gt_min
in: query
type: integer
description: 'Data filter: minimum GT </br></br> Applicable to IMO-having vessels'
required: false
- name: gt_max
in: query
type: integer
description: 'Data filter: maximum GT </br></br> Applicable to IMO-having vessels'
required: false
- name: movetype
in: query
type: integer
description: Use 0 to include both, 1 to only receive dockings or 2 for only undockings within the defined period.
If not used, only dockings are returned </br></br> <b>Available only from version 2 of the service</b>
required: false
- name: protocol
in: query
type: string
description: 'Response type. Use one of the following: <ul>'
required: false
- name: msgtype
in: query
type: string
description: 'Resolution of the response. Available values: <ul>'
required: false
authentication:
type: apikey
key: api_key
value: '{{env.MARINETRAFFIC_API_KEY}}'
placement: path
exposes:
- type: rest
namespace: events-port-rest
port: 8080
description: REST adapter for MarineTraffic Port Events. One resource per consumed operation.
resources:
- path: /v1/portcalls
name: portcalls-api_key
description: REST surface for portcalls-api_key.
operations:
- method: GET
name: portcalls_
description: Port Calls
call: events-port.portcalls_
with:
v: rest.query.v
portid: rest.query.portid
timespan: rest.query.timespan
movetype: rest.query.movetype
exclude_intransit: rest.query.exclude_intransit
fromdate: rest.query.fromdate
todate: rest.query.todate
dwt_min: rest.query.dwt_min
dwt_max: rest.query.dwt_max
gt_min: rest.query.gt_min
gt_max: rest.query.gt_max
market: rest.query.market
msgtype: rest.query.msgtype
protocol: rest.query.protocol
outputParameters:
- type: object
mapping: $.
- path: /v1/berth-calls
name: berth-calls-api_key
description: REST surface for berth-calls-api_key.
operations:
- method: GET
name: berth-calls_
description: Berth Calls
call: events-port.berth-calls_
with:
v: rest.query.v
portid: rest.query.portid
port_unlocode: rest.query.port_unlocode
berthid: rest.query.berthid
terminalid: rest.query.terminalid
timespan: rest.query.timespan
fromdate: rest.query.fromdate
todate: rest.query.todate
market: rest.query.market
shipclass: rest.query.shipclass
dwt_min: rest.query.dwt_min
dwt_max: rest.query.dwt_max
gt_min: rest.query.gt_min
gt_max: rest.query.gt_max
movetype: rest.query.movetype
protocol: rest.query.protocol
msgtype: rest.query.msgtype
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: events-port-mcp
port: 9090
transport: http
description: MCP adapter for MarineTraffic Port Events. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: marinetraffic-portcalls_
description: Port Calls
hints:
readOnly: true
destructive: false
idempotent: true
call: events-port.portcalls_
with:
v: tools.v
portid: tools.portid
timespan: tools.timespan
movetype: tools.movetype
exclude_intransit: tools.exclude_intransit
fromdate: tools.fromdate
todate: tools.todate
dwt_min: tools.dwt_min
dwt_max: tools.dwt_max
gt_min: tools.gt_min
gt_max: tools.gt_max
market: tools.market
msgtype: tools.msgtype
protocol: tools.protocol
outputParameters:
- type: object
mapping: $.
- name: marinetraffic-berth-calls_
description: Berth Calls
hints:
readOnly: true
destructive: false
idempotent: true
call: events-port.berth-calls_
with:
v: tools.v
portid: tools.portid
port_unlocode: tools.port_unlocode
berthid: tools.berthid
terminalid: tools.terminalid
timespan: tools.timespan
fromdate: tools.fromdate
todate: tools.todate
market: tools.market
shipclass: tools.shipclass
dwt_min: tools.dwt_min
dwt_max: tools.dwt_max
gt_min: tools.gt_min
gt_max: tools.gt_max
movetype: tools.movetype
protocol: tools.protocol
msgtype: tools.msgtype
outputParameters:
- type: object
mapping: $.