CargoSmart Vessels API

Vessel position and schedule

OpenAPI Specification

cargosmart-vessels-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: CargoSmart Shipment Tracking Bookings Vessels API
  description: The CargoSmart Shipment Tracking API provides real-time container tracking and shipment visibility across ocean carriers and ports. APIs return container movement events, vessel positions, ETA predictions, and port arrival/departure data for supply chain visibility platforms.
  version: 1.0.0
  contact:
    name: CargoSmart
    url: https://www.cargosmart.com/
servers:
- url: https://api.cargosmart.com
  description: CargoSmart Production API
security:
- apiKey: []
- oauth2: []
tags:
- name: Vessels
  description: Vessel position and schedule
paths:
  /vessels/v1/schedules:
    get:
      operationId: searchVesselSchedules
      summary: Search vessel schedules
      description: Search ocean carrier vessel schedules by origin and destination port, carrier, or date range.
      tags:
      - Vessels
      parameters:
      - name: originPort
        in: query
        description: Origin port UN/LOCODE (e.g., USNYC)
        schema:
          type: string
          pattern: ^[A-Z]{5}$
      - name: destinationPort
        in: query
        description: Destination port UN/LOCODE
        schema:
          type: string
          pattern: ^[A-Z]{5}$
      - name: carrierId
        in: query
        description: Carrier SCAC code
        schema:
          type: string
      - name: departureFrom
        in: query
        schema:
          type: string
          format: date
      - name: departureTo
        in: query
        schema:
          type: string
          format: date
      - name: limit
        in: query
        schema:
          type: integer
          default: 20
      responses:
        '200':
          description: Vessel schedules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VesselScheduleList'
  /vessels/v1/{vesselIMO}/position:
    get:
      operationId: getVesselPosition
      summary: Get vessel position
      description: Get the current AIS-based position of a vessel by IMO number.
      tags:
      - Vessels
      parameters:
      - name: vesselIMO
        in: path
        required: true
        description: IMO vessel number
        schema:
          type: string
          pattern: ^\d{7}$
      responses:
        '200':
          description: Vessel position
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VesselPosition'
components:
  schemas:
    Port:
      type: object
      properties:
        locode:
          type: string
          description: UN/LOCODE (e.g., USNYC)
        portName:
          type: string
        countryCode:
          type: string
        terminalName:
          type: string
    VesselPosition:
      type: object
      properties:
        vesselIMO:
          type: string
        vesselName:
          type: string
        latitude:
          type: number
          minimum: -90
          maximum: 90
        longitude:
          type: number
          minimum: -180
          maximum: 180
        speed:
          type: number
          description: Speed over ground in knots
        heading:
          type: number
          minimum: 0
          maximum: 360
        destination:
          type: string
        eta:
          type: string
          format: date-time
        timestamp:
          type: string
          format: date-time
    VesselSchedule:
      type: object
      properties:
        scheduleId:
          type: string
        vesselName:
          type: string
        vesselIMO:
          type: string
        voyageNumber:
          type: string
        carrierCode:
          type: string
        carrierName:
          type: string
        route:
          type: array
          items:
            type: object
            properties:
              port:
                $ref: '#/components/schemas/Port'
              estimatedArrival:
                type: string
                format: date-time
              estimatedDeparture:
                type: string
                format: date-time
        transitDays:
          type: integer
        directService:
          type: boolean
    VesselScheduleList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/VesselSchedule'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.cargosmart.com/oauth/token
          scopes:
            tracking:read: Read shipment tracking data
            bookings:read: Read booking data
            bookings:write: Create and manage bookings
            documents:read: Read shipping documents