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