MarineTraffic · Capability

MarineTraffic Single Vessel Events

MarineTraffic Single Vessel Events. 3 operations. Self-contained Naftiko capability covering one MarineTraffic AIS business surface.

MarineTraffic Single Vessel Events is a Naftiko capability published by MarineTraffic, one of 13 capabilities the APIs.io network indexes for this provider. It bundles 3 operations across the GET method.

The capability includes 3 read-only operations. Lead operation: Single Vessel 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 — Single Vessel Port Calls
/v1/portcalls
GET
Vesselevents — Single Vessel Events
/v1/vesselevents
GET
Berth calls — Single Vessel Berth Calls
/v1/berth-calls

MCP Tools

marinetraffic-portcalls

Single Vessel Port Calls

read-only idempotent
marinetraffic-vesselevents

Single Vessel Events

read-only idempotent
marinetraffic-berth-calls

Single Vessel Berth Calls

read-only idempotent

Capability Spec

events-single-vessel.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: MarineTraffic Single Vessel Events
  description: MarineTraffic Single Vessel Events. 3 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-single-vessel
    baseUri: https://services.marinetraffic.com/api
    description: Port calls, berth calls and event timelines scoped to a specific vessel.
    resources:
    - name: portcalls-api_key
      path: /portcalls/{api_key}
      operations:
      - name: portcalls
        method: GET
        description: Single Vessel 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: shipid
          in: query
          type: integer
          description: A uniquely assigned ID by MarineTraffic for the subject vessel </br></br> You can <b>instead</b> use
            imo or mmsi
          required: true
        - name: mmsi
          in: query
          type: integer
          description: The Maritime Mobile Service Identity (MMSI) of the vessel you wish to track
          required: false
        - name: imo
          in: query
          type: integer
          description: The International Maritime Organization (IMO) number of the vessel you wish to track
          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: 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: vesselevents-api_key
      path: /vesselevents/{api_key}
      operations:
      - name: vesselevents
        method: GET
        description: Single Vessel Events
        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 2 to get the latest
          required: true
        - name: shipid
          in: query
          type: integer
          description: A uniquely assigned ID by MarineTraffic for the subject vessel </br></br> You can <b>instead</b> use
            imo or mmsi
          required: true
        - name: mmsi
          in: query
          type: integer
          description: The Maritime Mobile Service Identity (MMSI) of the vessel you wish to track
          required: false
        - name: imo
          in: query
          type: integer
          description: The International Maritime Organization (IMO) number of the vessel you wish to track
          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: 'Vessel Events between fromdate and todate </br></br> Date format: YYYY-MM-DD HH:MM:SS'
          required: false
        - name: todate
          in: query
          type: string
          description: 'Vessel Events between fromdate and todate </br></br> Date format: YYYY-MM-DD HH:MM:SS'
          required: false
        - name: event_type
          in: query
          type: integer
          description: You may use one or more event ids in comma separated format for the events you wish to receive
          required: false
        - name: limit_events
          in: query
          type: integer
          description: Limit the number of results
          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: Single Vessel 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: shipid
          in: query
          type: integer
          description: A uniquely assigned ID by MarineTraffic for the subject vessel </br></br> You can <b>instead</b> use
            imo or mmsi
          required: true
        - name: mmsi
          in: query
          type: integer
          description: The Maritime Mobile Service Identity (MMSI) of the vessel you wish to track
          required: false
        - name: imo
          in: query
          type: integer
          description: The International Maritime Organization (IMO) number of the vessel you wish to track
          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-single-vessel-rest
    port: 8080
    description: REST adapter for MarineTraffic Single Vessel 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: Single Vessel Port Calls
        call: events-single-vessel.portcalls
        with:
          v: rest.query.v
          shipid: rest.query.shipid
          mmsi: rest.query.mmsi
          imo: rest.query.imo
          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/vesselevents
      name: vesselevents-api_key
      description: REST surface for vesselevents-api_key.
      operations:
      - method: GET
        name: vesselevents
        description: Single Vessel Events
        call: events-single-vessel.vesselevents
        with:
          v: rest.query.v
          shipid: rest.query.shipid
          mmsi: rest.query.mmsi
          imo: rest.query.imo
          timespan: rest.query.timespan
          fromdate: rest.query.fromdate
          todate: rest.query.todate
          event_type: rest.query.event_type
          limit_events: rest.query.limit_events
          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: Single Vessel Berth Calls
        call: events-single-vessel.berth-calls
        with:
          v: rest.query.v
          shipid: rest.query.shipid
          mmsi: rest.query.mmsi
          imo: rest.query.imo
          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-single-vessel-mcp
    port: 9090
    transport: http
    description: MCP adapter for MarineTraffic Single Vessel Events. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: marinetraffic-portcalls
      description: Single Vessel Port Calls
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: events-single-vessel.portcalls
      with:
        v: tools.v
        shipid: tools.shipid
        mmsi: tools.mmsi
        imo: tools.imo
        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-vesselevents
      description: Single Vessel Events
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: events-single-vessel.vesselevents
      with:
        v: tools.v
        shipid: tools.shipid
        mmsi: tools.mmsi
        imo: tools.imo
        timespan: tools.timespan
        fromdate: tools.fromdate
        todate: tools.todate
        event_type: tools.event_type
        limit_events: tools.limit_events
        protocol: tools.protocol
      outputParameters:
      - type: object
        mapping: $.
    - name: marinetraffic-berth-calls
      description: Single Vessel Berth Calls
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: events-single-vessel.berth-calls
      with:
        v: tools.v
        shipid: tools.shipid
        mmsi: tools.mmsi
        imo: tools.imo
        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: $.