CargoSmart · Capability

CargoSmart Shipment Tracking API

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.

Run with Naftiko CargosmartAPI

What You Can Do

GET
Trackcontainer — Track container
/tracking/v1/containers/{containerId}
GET
Listcontainertracking — Track multiple containers
/tracking/v1/containers
GET
Getshipment — Get shipment by bill of lading
/tracking/v1/shipments/{billOfLadingNumber}
GET
Searchvesselschedules — Search vessel schedules
/vessels/v1/schedules
GET
Getvesselposition — Get vessel position
/vessels/v1/{vesselIMO}/position
POST
Createbooking — Create container booking
/bookings/v1
GET
Listbookings — List bookings
/bookings/v1
GET
Getbilloflading — Get bill of lading
/documents/v1/bills-of-lading/{blNumber}

MCP Tools

trackcontainer

Track container

read-only idempotent
listcontainertracking

Track multiple containers

read-only idempotent
getshipment

Get shipment by bill of lading

read-only idempotent
searchvesselschedules

Search vessel schedules

read-only idempotent
getvesselposition

Get vessel position

read-only idempotent
createbooking

Create container booking

listbookings

List bookings

read-only idempotent
getbilloflading

Get bill of lading

read-only idempotent

Capability Spec

cargosmart-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: CargoSmart Shipment Tracking 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.
  tags:
  - Cargosmart
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: cargosmart
    baseUri: https://api.cargosmart.com
    description: CargoSmart Shipment Tracking API HTTP API.
    authentication:
      type: apikey
      in: header
      name: X-API-Key
      value: '{{CARGOSMART_TOKEN}}'
    resources:
    - name: tracking-v1-containers-containerid
      path: /tracking/v1/containers/{containerId}
      operations:
      - name: trackcontainer
        method: GET
        description: Track container
        inputParameters:
        - name: containerId
          in: path
          type: string
          required: true
          description: Container number (e.g., MSCU1234567)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: tracking-v1-containers
      path: /tracking/v1/containers
      operations:
      - name: listcontainertracking
        method: GET
        description: Track multiple containers
        inputParameters:
        - name: containerIds
          in: query
          type: string
          required: true
          description: Comma-separated list of container numbers
        - name: billOfLadingNumber
          in: query
          type: string
          description: Filter by bill of lading number
        - name: bookingNumber
          in: query
          type: string
          description: Filter by booking number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: tracking-v1-shipments-billofladingnumber
      path: /tracking/v1/shipments/{billOfLadingNumber}
      operations:
      - name: getshipment
        method: GET
        description: Get shipment by bill of lading
        inputParameters:
        - name: billOfLadingNumber
          in: path
          type: string
          required: true
          description: Bill of lading number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vessels-v1-schedules
      path: /vessels/v1/schedules
      operations:
      - name: searchvesselschedules
        method: GET
        description: Search vessel schedules
        inputParameters:
        - name: originPort
          in: query
          type: string
          description: Origin port UN/LOCODE (e.g., USNYC)
        - name: destinationPort
          in: query
          type: string
          description: Destination port UN/LOCODE
        - name: carrierId
          in: query
          type: string
          description: Carrier SCAC code
        - name: departureFrom
          in: query
          type: string
        - name: departureTo
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vessels-v1-vesselimo-position
      path: /vessels/v1/{vesselIMO}/position
      operations:
      - name: getvesselposition
        method: GET
        description: Get vessel position
        inputParameters:
        - name: vesselIMO
          in: path
          type: string
          required: true
          description: IMO vessel number
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: bookings-v1
      path: /bookings/v1
      operations:
      - name: createbooking
        method: POST
        description: Create container booking
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: listbookings
        method: GET
        description: List bookings
        inputParameters:
        - name: status
          in: query
          type: string
        - name: carrierId
          in: query
          type: string
        - name: fromDate
          in: query
          type: string
        - name: toDate
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: documents-v1-bills-of-lading-blnumber
      path: /documents/v1/bills-of-lading/{blNumber}
      operations:
      - name: getbilloflading
        method: GET
        description: Get bill of lading
        inputParameters:
        - name: blNumber
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: cargosmart-rest
    description: REST adapter for CargoSmart Shipment Tracking API.
    resources:
    - path: /tracking/v1/containers/{containerId}
      name: trackcontainer
      operations:
      - method: GET
        name: trackcontainer
        description: Track container
        call: cargosmart.trackcontainer
        with:
          containerId: rest.containerId
        outputParameters:
        - type: object
          mapping: $.
    - path: /tracking/v1/containers
      name: listcontainertracking
      operations:
      - method: GET
        name: listcontainertracking
        description: Track multiple containers
        call: cargosmart.listcontainertracking
        outputParameters:
        - type: object
          mapping: $.
    - path: /tracking/v1/shipments/{billOfLadingNumber}
      name: getshipment
      operations:
      - method: GET
        name: getshipment
        description: Get shipment by bill of lading
        call: cargosmart.getshipment
        with:
          billOfLadingNumber: rest.billOfLadingNumber
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessels/v1/schedules
      name: searchvesselschedules
      operations:
      - method: GET
        name: searchvesselschedules
        description: Search vessel schedules
        call: cargosmart.searchvesselschedules
        outputParameters:
        - type: object
          mapping: $.
    - path: /vessels/v1/{vesselIMO}/position
      name: getvesselposition
      operations:
      - method: GET
        name: getvesselposition
        description: Get vessel position
        call: cargosmart.getvesselposition
        with:
          vesselIMO: rest.vesselIMO
        outputParameters:
        - type: object
          mapping: $.
    - path: /bookings/v1
      name: createbooking
      operations:
      - method: POST
        name: createbooking
        description: Create container booking
        call: cargosmart.createbooking
        outputParameters:
        - type: object
          mapping: $.
    - path: /bookings/v1
      name: listbookings
      operations:
      - method: GET
        name: listbookings
        description: List bookings
        call: cargosmart.listbookings
        outputParameters:
        - type: object
          mapping: $.
    - path: /documents/v1/bills-of-lading/{blNumber}
      name: getbilloflading
      operations:
      - method: GET
        name: getbilloflading
        description: Get bill of lading
        call: cargosmart.getbilloflading
        with:
          blNumber: rest.blNumber
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: cargosmart-mcp
    transport: http
    description: MCP adapter for CargoSmart Shipment Tracking API for AI agent use.
    tools:
    - name: trackcontainer
      description: Track container
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cargosmart.trackcontainer
      with:
        containerId: tools.containerId
      inputParameters:
      - name: containerId
        type: string
        description: Container number (e.g., MSCU1234567)
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listcontainertracking
      description: Track multiple containers
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cargosmart.listcontainertracking
      with:
        containerIds: tools.containerIds
        billOfLadingNumber: tools.billOfLadingNumber
        bookingNumber: tools.bookingNumber
      inputParameters:
      - name: containerIds
        type: string
        description: Comma-separated list of container numbers
        required: true
      - name: billOfLadingNumber
        type: string
        description: Filter by bill of lading number
      - name: bookingNumber
        type: string
        description: Filter by booking number
      outputParameters:
      - type: object
        mapping: $.
    - name: getshipment
      description: Get shipment by bill of lading
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cargosmart.getshipment
      with:
        billOfLadingNumber: tools.billOfLadingNumber
      inputParameters:
      - name: billOfLadingNumber
        type: string
        description: Bill of lading number
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: searchvesselschedules
      description: Search vessel schedules
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cargosmart.searchvesselschedules
      with:
        originPort: tools.originPort
        destinationPort: tools.destinationPort
        carrierId: tools.carrierId
        departureFrom: tools.departureFrom
        departureTo: tools.departureTo
        limit: tools.limit
      inputParameters:
      - name: originPort
        type: string
        description: Origin port UN/LOCODE (e.g., USNYC)
      - name: destinationPort
        type: string
        description: Destination port UN/LOCODE
      - name: carrierId
        type: string
        description: Carrier SCAC code
      - name: departureFrom
        type: string
        description: departureFrom
      - name: departureTo
        type: string
        description: departureTo
      - name: limit
        type: integer
        description: limit
      outputParameters:
      - type: object
        mapping: $.
    - name: getvesselposition
      description: Get vessel position
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cargosmart.getvesselposition
      with:
        vesselIMO: tools.vesselIMO
      inputParameters:
      - name: vesselIMO
        type: string
        description: IMO vessel number
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: createbooking
      description: Create container booking
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: cargosmart.createbooking
      outputParameters:
      - type: object
        mapping: $.
    - name: listbookings
      description: List bookings
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cargosmart.listbookings
      with:
        status: tools.status
        carrierId: tools.carrierId
        fromDate: tools.fromDate
        toDate: tools.toDate
      inputParameters:
      - name: status
        type: string
        description: status
      - name: carrierId
        type: string
        description: carrierId
      - name: fromDate
        type: string
        description: fromDate
      - name: toDate
        type: string
        description: toDate
      outputParameters:
      - type: object
        mapping: $.
    - name: getbilloflading
      description: Get bill of lading
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: cargosmart.getbilloflading
      with:
        blNumber: tools.blNumber
      inputParameters:
      - name: blNumber
        type: string
        description: blNumber
        required: true
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    CARGOSMART_TOKEN: CARGOSMART_TOKEN