---
title: "Retrieve shipment tracking data in a Searates-compatible format"
method: GET
path: "/shipment-format/searates"
tags: ["Shipment Format"]
---

# Retrieve shipment tracking data in a Searates-compatible format

`GET /shipment-format/searates`

## Request

- Base URL: `api.sinay.ai/container-tracking/api/v2` (relative, and the document’s source URL is not known)
- URL: `api.sinay.ai/container-tracking/api/v2/shipment-format/searates`
- Auth: API key in header `API_KEY`

Returns the same tracking data as **GET /shipment**, formatted to be compatible with the Searates "Tracking by any number" response.

Enables a field-by-field comparison with Searates formatted data.

By default the payload follows the Searates format. Set **safecubeFields=true** to additionally expose SafeCube-specific fields (currently metadata.warnings); those fields are omitted from the response when null.

## Query parameters

- `shipmentNumber` string, required
- `sealine` string
- `shipmentType` 'CT' | 'BL' | 'BK'
- `route` boolean
- `ais` boolean
- `safecubeFields` boolean

## Response `200`

OK

- SearatesShipmentFormat: Shipment tracking data formatted to be compatible with the Searates "Tracking by any number" response.
  - `status` 'success' | 'error': Request status (success on completion, error otherwise)
  - `message` 'OK' | 'SEALINE_HASNT_PROVIDE_INFO' | 'NO_CONTAINERS' | 'NO_EVENTS' | 'WRONG_PARAMETERS' | 'WRONG_NUMBER' | 'WRONG_SEALINE' | 'WRONG_TYPE' | 'SEALINE_NO_RESPONSE' | 'SEALINE_NOT_SUPPORTED' | 'SEALINE_TEMPORARY_DISABLED' | 'SEALINE_UNDER_MAINTENANCE' | 'AUTO_CANT_DETECT_SEALINE' | 'AUTO_CANT_DETECT_TYPE' | 'AUTO_CANT_FIND_INFO' | 'SEALINE_CANCELED_SHIPMENT' | 'UNEXPECTED_ERROR': Request status description (see Searates request statuses)
  - `data` SearatesShipmentData: Data on request
    - `metadata` SearatesMetadata: Additional data on request
      - `type` 'CT' | 'BL' | 'BK'
      - `number` string: Shipment number
      - `sealine` string, nullable: Standard Carrier Alpha Code (SCAC)
      - `sealine_name` string, nullable: Carrier name
      - `status` 'PLANNED' | 'IN_TRANSIT' | 'DELIVERED' | 'UNKNOWN' | 'CANCELLED': Shipping status
      - `updated_at` string, nullable: The date the data was received from the carrier (UTC), format 'yyyy-MM-dd HH:mm:ss'
      - `api_calls` SearatesApiCalls: Data on the number of api calls (Searates account metrics, not populated by SafeCube)
        - `total` integer, nullable
        - `used` integer, nullable
        - `remaining` integer, nullable
      - `unique_shipments` SearatesUniqueShipments: Data on the number of unique shipments (Searates account metrics, not populated by SafeCube)
        - `total` integer, nullable
        - `used` integer, nullable
        - `remaining` integer, nullable
      - `warnings` string[], nullable: SafeCube-specific field, not part of the native Searates format. Data-quality warnings computed by SafeCube. Present only when safecubeFields=true; omitted from the response when null.
    - `locations` SearatesLocation[], nullable
      - `id` integer: Unique identifier referenced by events and route
      - `name` string
      - `state` string, nullable
      - `country` string, nullable
      - `country_code` string, nullable
      - `locode` string, nullable
      - `lat` number, float, nullable
      - `lng` number, float, nullable
      - `timezone` string, nullable
    - `route` SearatesRoute: Information on the route
      - `prepol` SearatesRoutePoint
        - `location` integer, nullable: Unique identifier (id) from the locations array
        - `date` string, nullable
        - `actual` boolean, nullable
      - `pol` SearatesRoutePoint
        - `location` integer, nullable: Unique identifier (id) from the locations array
        - `date` string, nullable
        - `actual` boolean, nullable
      - `pod` SearatesRoutePod
        - `location` integer, nullable: Unique identifier (id) from the locations array
        - `date` string, nullable
        - `actual` boolean, nullable
        - `predictive_eta` string, nullable: If the carrier did not provide an arrival date, SafeCube may calculate it
      - `postpod` SearatesRoutePoint
        - `location` integer, nullable: Unique identifier (id) from the locations array
        - `date` string, nullable
        - `actual` boolean, nullable
    - `vessels` SearatesVessel[], nullable
      - `id` integer: Unique identifier referenced by events
      - `name` string
      - `imo` integer, nullable
      - `call_sign` string, nullable
      - `mmsi` integer, nullable
      - `flag` string, nullable
    - `containers` SearatesContainer[], nullable
      - `number` string
      - `iso_code` string, nullable
      - `size_type` string, nullable
      - `status` 'PLANNED' | 'IN_TRANSIT' | 'DELIVERED' | 'UNKNOWN' | 'CANCELLED': Shipping status
      - `events` SearatesEvent[], nullable
        - `order_id` integer: The sequence number of the event
        - `location` integer, nullable: Unique identifier (id) from the locations array
        - `facility` integer, nullable: Unique identifier (id) from the facilities array
        - `description` string
        - `event_type` 'SHIPMENT' | 'TRANSPORT' | 'EQUIPMENT', nullable
        - `event_code` 'ARRI' | 'DEPA' | 'LOAD' | 'DISC' | 'GTIN' | 'GTOT' | 'STUF' | 'STRP' | 'PICK' | 'AVPU' | 'DROP' | 'AVDO' | 'INSP' | 'RSEA' | 'RMVD' | 'CUSS' | 'CUSI' | 'CUSR' | 'CROS' | 'RECE' | 'DRFT' | 'PENA' | 'PENU' | 'PENC' | 'CONF' | 'REJE' | 'APPR' | 'ISSU' | 'SURR' | 'SUBM' | 'VOID' | 'REQS' | 'CMPL' | 'HOLD' | 'RELS' | 'CANC', nullable
        - `status` 'CEP' | 'CPS' | 'CGI' | 'CLL' | 'VDL' | 'VAT' | 'CDT' | 'TSD' | 'CLT' | 'VDT' | 'VAD' | 'CDD' | 'CGO' | 'CDC' | 'CER' | 'LTS' | 'BTS' | 'UNK'
        - `date` string: Event date, format 'yyyy-MM-dd HH:mm:ss'
        - `actual` boolean, nullable
        - `is_additional_event` boolean: True if the event was calculated by SafeCube rather than provided by the carrier
        - `type` 'sea' | 'land': sea for sea-related events, land for land-related events
        - `transport_type` 'VESSEL' | 'BARGE' | 'FEEDER' | 'TRUCK' | 'RAIL' | 'AIR', nullable
        - `vessel` integer, nullable: Unique identifier (id) from the vessels array
        - `voyage` string, nullable
    - `facilities` SearatesFacility[], nullable
      - `id` integer: Unique identifier referenced by events
      - `name` string
      - `country_code` string, nullable
      - `locode` string, nullable
      - `bic_code` string, nullable
      - `smdg_code` string, nullable
      - `lat` number, float, nullable
      - `lng` number, float, nullable
    - `route_data` SearatesRouteData, nullable
      - `route` SearatesRouteItem[], nullable: Array of route segments
        - `path` array[]: Array of route coordinates, each item being a [latitude, longitude] pair
          - number[]
        - `type` 'SEA' | 'LAND'
      - `pin` number[], nullable: Current container position [latitude, longitude]
      - `ais` SearatesAis
        - `status` 'OK' | 'NOT_ON_BOARD' | 'NO_AIS_DATA'
        - `data` SearatesAisData, nullable
          - `last_event` SearatesAisLastEvent: The latest event provided by the shipping line
            - `description` string
            - `date` string
            - `voyage` string
          - `discharge_port` SearatesAisDischargePort
            - `name` string, nullable
            - `country_code` string, nullable
            - `code` string, nullable
            - `date` string, nullable
            - `date_label` 'ETA' | 'ATA', nullable
          - `vessel` SearatesAisVessel
            - `name` string
            - `imo` integer, nullable
            - `call_sign` string, nullable
            - `mmsi` integer, nullable
            - `flag` string, nullable
          - `last_vessel_position` SearatesAisVesselPosition: AIS data of the vessel position
            - `lat` number, float, nullable
            - `lng` number, float, nullable
            - `updated_at` string, nullable
          - `departure_port` SearatesAisDeparturePort
            - `country_code` string, nullable
            - `code` string, nullable
            - `date` string, nullable
            - `date_label` 'ETD' | 'ATD', nullable
          - `arrival_port` SearatesAisArrivalPort
            - `country_code` string, nullable
            - `code` string, nullable
            - `date` string, nullable
            - `date_label` 'ETA' | 'ATA', nullable
          - `updated_at` string, nullable

## Other responses

- `400`: Bad request - the required API_KEY header is missing
- `404`: Shipment not found

## Changes

- **2026-11-03** `29408610ab8e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/safecube/apis/api-container-tracking/changes/shipment-format/searates/get.md)

---

[API](https://skmtc.dev/safecube/apis/api-container-tracking.md) - [All operations](https://skmtc.dev/safecube/apis/api-container-tracking/llms.txt) - [OpenAPI document](https://skmtc.dev/safecube/apis/api-container-tracking/revisions/29408610ab8e?raw)
