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.

Run with Naftiko MarineTrafficAISMaritime

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

events-port.yaml Raw ↑
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: $.