CargoSmart · AsyncAPI Specification

CargoSmart Shipment Events API

Version 1.0.0

The CargoSmart Shipment Events API delivers real-time event notifications for container movements, shipment milestones, and vessel arrivals/departures via webhooks or server-sent events. Subscribe to tracking events for automated supply chain visibility and exception management.

View Spec View on GitHub BookingContainersDocumentationGSBNIQAXLogisticsMaritimeOcean FreightScheduleShippingSupply ChainTrackingVisibilityVesselAsyncAPIEventsWebhooks

Channels

container.event
subscribe onContainerEvent
Container tracking event
Published when a container tracking event occurs (gate in/out, load, discharge, arrival, departure).
shipment.milestone
subscribe onShipmentMilestone
Shipment milestone reached
Published when a shipment reaches a key milestone.
vessel.arrival
subscribe onVesselArrival
Vessel arrived at port
Published when a vessel arrives at a port.
vessel.departure
subscribe onVesselDeparture
Vessel departed from port
Published when a vessel departs from a port.
booking.status
subscribe onBookingStatusChanged
Booking status changed
Published when a container booking status changes.
eta.update
subscribe onEtaUpdated
ETA updated
Published when the ETA for a container/vessel is updated.

Messages

✉
ContainerEventMessage
Container Event
Container tracking event notification
✉
ShipmentMilestoneMessage
Shipment Milestone
✉
VesselArrivalMessage
Vessel Arrival
✉
VesselDepartureMessage
Vessel Departure
✉
BookingStatusMessage
Booking Status Changed
✉
EtaUpdateMessage
ETA Updated

Servers

https
production https://events.cargosmart.com
CargoSmart Event Delivery endpoint

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: CargoSmart Shipment Events API
  description: >-
    The CargoSmart Shipment Events API delivers real-time event notifications for
    container movements, shipment milestones, and vessel arrivals/departures via
    webhooks or server-sent events. Subscribe to tracking events for automated
    supply chain visibility and exception management.
  version: 1.0.0
  contact:
    name: CargoSmart
    url: https://www.cargosmart.com/

servers:
  production:
    url: https://events.cargosmart.com
    protocol: https
    description: CargoSmart Event Delivery endpoint

channels:
  container.event:
    description: Published when a container tracking event occurs (gate in/out, load, discharge, arrival, departure).
    subscribe:
      operationId: onContainerEvent
      summary: Container tracking event
      description: Receive real-time notifications for container movement events.
      tags:
        - name: Containers
      message:
        $ref: '#/components/messages/ContainerEventMessage'

  shipment.milestone:
    description: Published when a shipment reaches a key milestone.
    subscribe:
      operationId: onShipmentMilestone
      summary: Shipment milestone reached
      description: Receive notifications for important shipment milestones (departure, arrival, delivery).
      tags:
        - name: Shipments
      message:
        $ref: '#/components/messages/ShipmentMilestoneMessage'

  vessel.arrival:
    description: Published when a vessel arrives at a port.
    subscribe:
      operationId: onVesselArrival
      summary: Vessel arrived at port
      description: Receive notifications when a tracked vessel arrives at a port.
      tags:
        - name: Vessels
      message:
        $ref: '#/components/messages/VesselArrivalMessage'

  vessel.departure:
    description: Published when a vessel departs from a port.
    subscribe:
      operationId: onVesselDeparture
      summary: Vessel departed from port
      description: Receive notifications when a tracked vessel departs from a port.
      tags:
        - name: Vessels
      message:
        $ref: '#/components/messages/VesselDepartureMessage'

  booking.status:
    description: Published when a container booking status changes.
    subscribe:
      operationId: onBookingStatusChanged
      summary: Booking status changed
      description: Receive notifications when a booking is confirmed, amended, or cancelled.
      tags:
        - name: Bookings
      message:
        $ref: '#/components/messages/BookingStatusMessage'

  eta.update:
    description: Published when the ETA for a container/vessel is updated.
    subscribe:
      operationId: onEtaUpdated
      summary: ETA updated
      description: Receive notifications when the estimated time of arrival changes.
      tags:
        - name: Vessels
      message:
        $ref: '#/components/messages/EtaUpdateMessage'

components:
  messages:
    ContainerEventMessage:
      name: ContainerEventMessage
      title: Container Event
      summary: Container tracking event notification
      contentType: application/json
      headers:
        type: object
        properties:
          x-cargosmart-signature:
            type: string
            description: HMAC-SHA256 signature for event authenticity
          x-cargosmart-event-id:
            type: string
      payload:
        $ref: '#/components/schemas/ContainerEventPayload'

    ShipmentMilestoneMessage:
      name: ShipmentMilestoneMessage
      title: Shipment Milestone
      contentType: application/json
      payload:
        $ref: '#/components/schemas/ShipmentMilestonePayload'

    VesselArrivalMessage:
      name: VesselArrivalMessage
      title: Vessel Arrival
      contentType: application/json
      payload:
        $ref: '#/components/schemas/VesselEventPayload'

    VesselDepartureMessage:
      name: VesselDepartureMessage
      title: Vessel Departure
      contentType: application/json
      payload:
        $ref: '#/components/schemas/VesselEventPayload'

    BookingStatusMessage:
      name: BookingStatusMessage
      title: Booking Status Changed
      contentType: application/json
      payload:
        $ref: '#/components/schemas/BookingStatusPayload'

    EtaUpdateMessage:
      name: EtaUpdateMessage
      title: ETA Updated
      contentType: application/json
      payload:
        $ref: '#/components/schemas/EtaUpdatePayload'

  schemas:
    EventEnvelope:
      type: object
      required: [eventId, eventType, timestamp]
      properties:
        eventId:
          type: string
          description: Unique event identifier
        eventType:
          type: string
        timestamp:
          type: string
          format: date-time

    ContainerEventPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            containerId:
              type: string
              description: Container number
            eventType:
              type: string
              enum: [GateIn, GateOut, Load, Discharge, Departure, Arrival, Customs, Delivery, EmptyReturn]
            location:
              type: object
              properties:
                locode:
                  type: string
                portName:
                  type: string
                terminalName:
                  type: string
            vesselName:
              type: string
            voyageNumber:
              type: string
            carrierCode:
              type: string
            isActual:
              type: boolean

    ShipmentMilestonePayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            billOfLadingNumber:
              type: string
            bookingNumber:
              type: string
            milestone:
              type: string
              enum: [Booked, VGMSubmitted, Loaded, Departed, InTransit, Arrived, CustomsCleared, Delivered]
            containers:
              type: array
              items:
                type: string
            originPort:
              type: string
            destinationPort:
              type: string

    VesselEventPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            vesselIMO:
              type: string
            vesselName:
              type: string
            voyageNumber:
              type: string
            carrierCode:
              type: string
            portLocode:
              type: string
            portName:
              type: string
            terminalName:
              type: string
            eventTime:
              type: string
              format: date-time

    BookingStatusPayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            bookingId:
              type: string
            bookingNumber:
              type: string
            carrierCode:
              type: string
            newStatus:
              type: string
              enum: [Submitted, Confirmed, Amended, Cancelled]
            previousStatus:
              type: string
            confirmedVessel:
              type: string
            confirmedVoyage:
              type: string

    EtaUpdatePayload:
      allOf:
        - $ref: '#/components/schemas/EventEnvelope'
        - type: object
          properties:
            containerId:
              type: string
            vesselIMO:
              type: string
            vesselName:
              type: string
            portLocode:
              type: string
            portName:
              type: string
            previousEta:
              type: string
              format: date-time
            updatedEta:
              type: string
              format: date-time
            delayHours:
              type: integer
              description: Positive = delayed, negative = early

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/cargosmart-events-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.