VesselFinder Containers API

Real-time container track-and-trace.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

vesselfinder-containers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: VesselFinder AIS Containers API
  description: 'REST API providing real-time and on-demand AIS vessel positions, voyage information,

    and vessel master data from the VesselFinder global AIS network (terrestrial and satellite).

    Authentication is performed via the `userkey` query parameter. Responses default to JSON

    and may be requested as XML by setting `format=xml`. Most pay-per-use methods deduct credits

    from the account''s balance; subscription methods (VesselsList, LiveData) are billed by fleet

    or area size and dataset selection.

    '
  version: '1.0'
  contact:
    name: VesselFinder API Support
    url: https://api.vesselfinder.com/docs/
  license:
    name: Commercial — VesselFinder Terms of Use
    url: https://www.vesselfinder.com/terms
servers:
- url: https://api.vesselfinder.com
  description: VesselFinder AIS API
security:
- UserKey: []
tags:
- name: Containers
  description: Real-time container track-and-trace.
paths:
  /container/{apiKey}/{containerNumber}/{sealine}:
    get:
      tags:
      - Containers
      summary: Track Container
      description: 'Look up the shipment for the specified container. Returns container origin,

        destination, current vessel position, progress, and schedule events. May respond

        with 202 Accepted while the request is processing — clients should poll the same

        URL no faster than every 60 seconds. Typical processing time is under one minute

        and may extend up to 15–20 minutes in worst case.

        '
      operationId: trackContainer
      parameters:
      - name: apiKey
        in: path
        required: true
        description: Personal API key for the Container Tracking service.
        schema:
          type: string
      - name: containerNumber
        in: path
        required: true
        description: 11-character container number (four letters + seven digits).
        schema:
          type: string
          pattern: ^[A-Z]{4}[0-9]{7}$
          example: MEDU6965343
      - name: sealine
        in: path
        required: true
        description: '4-character carrier SCAC code (e.g. `MSCU`). Use `AUTO` to let the service

          auto-detect the carrier.

          '
        schema:
          type: string
          default: AUTO
          example: MSCU
      responses:
        '200':
          description: Container shipment data is ready.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerShipment'
        '202':
          description: Request queued or still processing — retry after 60 seconds or longer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QueuedResponse'
        '400':
          description: Invalid container number, SCAC, or rate limit exceeded.
        '401':
          description: Invalid or expired API key.
        '402':
          description: Container subscription limit reached.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionError'
        '409':
          description: Carrier-related error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarrierError'
components:
  schemas:
    ScheduleEntry:
      type: object
      properties:
        port:
          type: string
        locode:
          type: string
        event:
          type: string
          description: Event code (CEP, CPS, CGI, CLL, VDL, VAT, CDT, CLT, VDT, VAD, CDD, CGO, CDC, CER, UNK).
        timestamp:
          type: string
          format: date-time
        actual:
          type: boolean
          description: True if the timestamp is observed; false if scheduled.
        vessel:
          $ref: '#/components/schemas/Vessel'
    QueuedResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - queued
          - processing
        retryAfter:
          type: integer
          description: Suggested retry interval in seconds.
    SubscriptionError:
      type: object
      properties:
        status:
          type: string
        subscription:
          type: object
          properties:
            remaining:
              type: integer
            expirationDate:
              type: string
              format: date-time
    ContainerShipment:
      type: object
      properties:
        status:
          type: string
          enum:
          - success
          - queued
          - processing
          - error
        general:
          $ref: '#/components/schemas/General'
        schedule:
          type: array
          items:
            $ref: '#/components/schemas/ScheduleEntry'
        vessel:
          $ref: '#/components/schemas/Vessel'
    CarrierError:
      type: object
      properties:
        status:
          type: string
        code:
          type: string
        message:
          type: string
    Vessel:
      type: object
      properties:
        name:
          type: string
        imo:
          type: integer
        mmsi:
          type: integer
        latitude:
          type: number
        longitude:
          type: number
        speed:
          type: number
        course:
          type: number
    General:
      type: object
      properties:
        origin:
          type: string
        destination:
          type: string
        progress:
          type: number
          description: 0..100 percent.
        currentLocation:
          type: string
        carrier:
          type: string
        sealine:
          type: string
          description: SCAC code of the carrier.
  securitySchemes:
    UserKey:
      type: apiKey
      in: query
      name: userkey