Skip to main content

Container No. Tracking API

* Container No. Tracking API is available exclusively for enterprise customers. If you wish to use this service, please contact us at cx@tradlinx.com or global_sales@tradlinx.com.

The base request URL for the TRADLINX Ocean Visibility API is: https://api.tradlinx.com

The API is activated based on a pre-agreed schedule. Once activated, you can send requests and receive responses normally.

Common API Guidelines:

  • An asterisk * indicates a required field.
  • A question mark ? indicates an optional field, which may or may not be provided.
  • Requests that violate these constraints will not be processed.
  • For types other than string, boolean, or number, refer to the custom types defined within this document.
  • For error code references, see the 'Error Codes' section in the reference materials.

🔔 API Update & Backward Compatibility Notice

The TRADLINX Ocean Visibility API may be updated from time to time to improve service quality, expand data coverage, and introduce new features.

When updating the API, we prioritize the stable operation of existing integrations and follow backward-compatible change principles, such as adding new fields.

Accordingly, we recommend that client systems be implemented in a backward-compatible manner so that they can continue to operate normally even when unknown or newly added fields are included in API responses.

If any changes may affect existing integrations, we will provide advance notice.

1. Container No. Tracking Request​

  • You may register multiple tracking requests at once, up to 50 entries per request.
  • Requests must be organized in an Array structure according to the provided data schema.
  • The combination of container_no, carrier_code, and reference_no must be unique. Entries with identical values will be treated as duplicates and not registered.
  • For the list of carrier codes, please refer to the Supported Carriers.

Request

POST /partners/track/v3/container-tracks

Shipment Tracking Request Data

FieldTypeSizeDescriptionConstraint
*container_nostring20Container numberMax 20 characters
*reference_nostring400Reference numberMax 400 characters
*carrier_codestring5Carrier codeMax 5 characters
clientstring100Customer company nameMax 100 characters
internal_usagestring50Customer contact nameMax 50 characters
remarkstring400NotesMax 400 characters
curl -X POST "https://api.tradlinx.com/partners/track/v3/container-tracks" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
-d '[
{
"container_no": "SAMPLE_CONTAINER_NO",
"client": "SAMPLE_CLIENT_NAME",
"internal_usage": "SAMPLE_INTERNAL_USAGE",
"reference_no": "SAMPLE_REFERENCE_NO",
"carrier_code": "SAMPLE_CARRIER_CODE",
"remark": "SAMPLE_REMARK"
}
]'

Response

{
"api_version": "v3",
"content": {
"fail": [
{
"data": {
"container_no": "SAMPLE_CONTAINER_NO",
"carrier_code": "SAMPLE_CARRIER_CODE",
"reference_no": "SAMPLE_REFERENCE_NO"
},
"reason": "SAMPLE_REASON"
}
],
"fail_count": 1,
"success": [
{
"container_no": "SAMPLE_CONTAINER_NO",
"carrier_code": "SAMPLE_CARRIER_CODE",
"client": "SAMPLE_CLIENT",
"internal_usage": "SAMPLE_INTERNAL_USAGE",
"reference_no": "SAMPLE_REFERENCE_NO",
"track_mst_id": "SAMPLE_TRACK_MST_ID"
}
],
"success_count": 1,
"total_count": 2
},
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2025-07-09T04:49:44.401254"
}

Response Body

FieldTypeDescriptionNotes
api_versionstringAPI version
contentSuccessFailSuccess/Failure status
messagestringServer messageReturned if applicable
transaction_timestringResponse timestampyyyy-MM-dd'T'HH:mm:ss.SSSSSS

SuccessFail

FieldTypeDescription
successSuccess[]Summary of successfully registered data
success_countnumberNumber of successfully registered data entries
failFail[]Summary of failed registration data
fail_countnumberNumber of failed data entries
total_countnumberTotal number of requests

Success

FieldTypeSizeDescription
container_nostring20Container number
clientstring100Customer company name
internal_usagestring50Customer contact name
reference_nostring400Reference number
carrier_codestring5Carrier code
track_mst_iduuid50Unique shipment ID that can be obtained through shipment lookup

Fail

FieldTypeDescription
dataFailDataSummary of failed data
reasonstringReason for failure

FailData

FieldTypeSizeDescription
container_nostring20Container number
carrier_codestring5Carrier code
reference_nostring400Reference number

2. Container No. Tracking Update Request​

  • The fields container_no, carrier_code, reference_no are unique identifiers for a shipment. If a record with the same combination already exists, the update will not be applied.

Request

PUT /partners/track/v3/container-tracks/{track_mst_id}

PathVariable

FieldTypeSizeDescription
*track_mst_iduuid50Unique shipment ID that can be obtained through shipment lookup

RequestBody

FieldTypeSizeDescriptionConstraint
*reference_nostring400Unique reference numberMax 400 characters
clientstring100Customer company nameMax 100 characters
internal_usagestring50Customer contact nameMax 50 characters
remarkstring400NotesMax 400 characters
curl -X PUT "https://api.tradlinx.com/partners/track/v3/container-tracks/[Track MST ID]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
-d '{
"reference_no": "SAMPLE_REFERENCE_NO",
"client": "SAMPLE_CLIENT_NAME",
"internal_usage": "SAMPLE_INTERNAL_USAGE",
"remark": "SAMPLE_REMARK"
}'

Response

200 OK

{}

400 Error

{
"error_detail": "[track_mst_id]: must not be blank",
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2024-08-13T05:42:27.402256"
}

3. Container No. Tracking Cancellation Request​

  • Cancellation requests must be made one at a time.
  • If the shipment status is TRACKING or COMPLETE, canceling the tracking request will not refund the credits, as they are already deducted.

Request

DELETE /partners/track/v3/container-tracks/{track_mst_id}

PathVariable

FieldTypeSizeDescription
*track_mst_iduuid50Unique shipment ID that can be obtained through shipment lookup
curl -X DELETE "https://api.tradlinx.com/partners/track/v3/container-tracks/[Track MST ID]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \

Response

If successful, the server returns HTTP status code 200.

4. Container No. Tracking Re-Registration Request​

  • You can re-register tracking for shipments in one of the following statuses: retry failed (after 7 days), unsupported plan, or insufficient credits.

Request

POST /partners/track/v3/container-tracks/{track_mst_id}/re-enroll

PathVariable

FieldTypeSizeDescription
*track_mst_iduuid50Unique shipment ID that can be obtained through shipment lookup
curl -X POST "https://api.tradlinx.com/partners/track/v3/container-tracks/[Track MST ID]/re-enroll" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
-d '{}'

Response

{
"api_version": "v3",
"content": {
"container_no": "SAMPLE_CONTAINER_NO",
"carrier_code": "SAMPLE_CARRIER_CODE",
"client": "SAMPLE_CLIENT",
"internal_usage": "SAMPLE_INTERNAL_USAGE",
"reference_no": "SAMPLE_REFERENCE_NO",
"track_mst_id": "SAMPLE_TRACK_MST_ID"
},
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2025-07-09T05:22:11.380245"
}

Container No. Tracking Re-Registration Request – Response Body

FieldTypeDescriptionNotes
api_versionstringAPI version
contentReEnrollResultRe-Registration result
messagestringServer messageAvailable on request
transaction_timestringResponse timestampyyyy-MM-dd'T'HH:mm:ss.SSSSSS

ReEnrollResult

FieldTypeSizeDescription
container_nostring20Container number
clientstring100Customer company name
internal_usagestring50Customer contact name
reference_nostring400Reference number
carrier_codestring5Carrier code
track_mst_iduuid50Unique shipment ID that can be obtained through shipment lookup

5. Retrieve Container No. Tracking Details​

  • Retrieve detailed information for Container No. Tracking
  • Only successfully registered container no. tracking entries can be queried in detail.
  • Date and time data within the content field follows the ISO 8601 format. yyyy-MM-dd'T'HH:mm:ssXXX

Request

GET /partners/track/v3/container-tracks

Query Parameter

FieldTypeDescription
statusstringtracking status
register_fromstringRegistration Start Date (ISO 8601 date/time format: yyyy-MM-dd'T'HH:mm:ssXXX)
register_tostringRegistration End Date (ISO 8601 date/time format: yyyy-MM-dd'T'HH:mm:ssXXX)
reference_nostringReference number
carrier_codestringCarrier code
container_nostringContainer number
*pagenumberPage number (minimum: 1)
*sizenumberPage size (range: 1-50)
curl -X GET "https://api.tradlinx.com/partners/track/v3/container-tracks?container_no=[Container No]&register_from=[Register From]&register_to=[Register To]&reference_no=[Reference No]&carrier_code=[Carrier Code]&page=[Page]&size=[Size]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"

Response

{
"api_version": "v3",
"content": [
{
"container_no": "SAMPLE_CONTAINER_NO",
"carrier_code": "SAMPLE_CARRIER_CODE",
"client": "SAMPLE_CLIENT",
"containers": [
{
"cntr_no": "SAMPLE_CNTR_NO",
"cntr_sz": "SAMPLE_CNTR_SZ",
"cntr_tp": "SAMPLE_CNTR_TP",
"container_events": [
{
"event_datetime": "SAMPLE_EVENT_DATETIME",
"event_type": "SAMPLE_EVENT_TYPE",
"is_actual": false,
"port_code": "SAMPLE_PORT_CODE",
"transportation": "SAMPLE_TRANSPORTATION"
}
],
"seal_no": "SAMPLE_SEAL_NO"
}
],
"current_vessel": {
"imo": "SAMPLE_IMO",
"mmsi": "SAMPLE_MMSI",
"vessel_name": "SAMPLE_VESSEL_NAME",
"voyage": "SAMPLE_VOYAGE"
},
"detail_status": "SAMPLE_DETAIL_STATUS",
"internal_usage": "SAMPLE_INTERNAL_USAGE",
"origin": {
"location_code": "SAMPLE_LOCATION_CODE",
"location_name": "SAMPLE_LOCATION_NAME",
"init_date_time": "2025-07-08T07:25:39+09:00",
"estimate_date_time": "2025-07-08T07:25:39+09:00",
"actual_date_time": "2025-07-08T07:25:39+09:00"
},
"pod": {
"ata": "2025-07-09T05:32:47+09:00",
"eta": "2025-07-09T05:32:47+09:00",
"init_eta": "2025-07-09T05:32:47+09:00",
"pod_code": "SAMPLE_POD_CODE",
"pod_name": "SAMPLE_POD_NAME",
"tx_ata": "2025-07-09T05:32:47+09:00"
},
"pol": {
"atd": "2025-07-09T05:32:47+09:00",
"etd": "2025-07-09T05:32:47+09:00",
"init_etd": "2025-07-09T05:32:47+09:00",
"pol_code": "SAMPLE_POL_CODE",
"pol_name": "SAMPLE_POL_NAME",
"tx_atd": "2025-07-09T05:32:47+09:00"
},
"destination": {
"location_code": "SAMPLE_LOCATION_CODE",
"location_name": "SAMPLE_LOCATION_NAME",
"init_date_time": "2025-07-08T07:25:39+09:00",
"estimate_date_time": "2025-07-08T07:25:39+09:00",
"actual_date_time": "2025-07-08T07:25:39+09:00"
},
"reference_no": "SAMPLE_REFERENCE_NO",
"registered_datetime": "2025-07-08T07:25:39.493Z",
"remark": "SAMPLE_REMARK",
"routes": [
{
"ata": "2025-07-09T05:32:47+09:00",
"atd": "2025-07-09T05:32:47+09:00",
"eta": "2025-07-09T05:32:47+09:00",
"etd": "2025-07-09T05:32:47+09:00",
"imo": "SAMPLE_IMO",
"init_eta": "2025-07-09T05:32:47+09:00",
"init_etd": "2025-07-09T05:32:47+09:00",
"mmsi": "SAMPLE_MMSI",
"order": 0,
"pod_code": "SAMPLE_POD_CODE",
"pod_name": "SAMPLE_POD_NAME",
"pol_code": "SAMPLE_POL_CODE",
"pol_name": "SAMPLE_POL_NAME",
"tx_ata": "2025-07-09T05:32:47+09:00",
"tx_atd": "2025-07-09T05:32:47+09:00",
"vessel_name": "SAMPLE_VESSEL_NAME",
"voyage": "SAMPLE_VOYAGE"
}
],
"status": "SAMPLE_STATUS",
"track_mst_id": "SAMPLE_TRACK_MST_ID",
"trans_type": "SAMPLE_TRANS_TYPE"
}
],
"message": "SAMPLE_ERROR_CODE",
"pagination": {
"current_page": 0,
"has_next": false,
"total_page": 0,
"total_size": 0
},
"size": 1,
"transaction_time": "2025-07-09T05:32:47.939106"
}

Response Body

FieldTypeDescriptionNotes
api_versionstringAPI versionv3
contentContainerTrackDetail[]Container No. tracking details
transaction_timestringResponse timestampyyyy-MM-dd'T'HH:mm:ss.SSSSSS
sizenumberContent size
paginationPaginationPagination information

Pagination

FieldTypeDescription
total_sizenumberTotal number of data entries
total_pagenumberTotal number of pages
current_pagenumberCurrent page number
has_nextbooleanIf a next page exists

ContainerTrackDetail - Shipment Tracking Details

FieldTypeDescription
track_mst_idstringShipment Tracking ID
carrier_codestringCarrier code
container_nostringContainer number
reference_nostringReference number
clientstringCustomer company name
internal_usagestringCustomer contact name
remarkstringNotes
registered_datetimestringRegistration date/time (yyyy-MM-dd'T'HH:mm:ssZ)
statusstringTracking status (see list below)
detail_statusstringTracking detail status (see list below)
trans_typestringImport/Export Classification (see list below)
origin?ExtraRoutePlace of origin (Data is available only for certain carriers) (see list below)
polPOLPort of Loading data
podPODPort of Discharge data
destination?ExtraRouteFinal destination (Data is available only for certain carriers) (see list below)
current_vesselCurrentVesselCurrent vessel information
routesRoute[]List of route segments for the shipment
containersContainer[]List of containers associated with the shipment

Tracking Status

CodeDescription
PROCESSINGTracking active
COMPLETETracking completed
DELETEDTracking deleted
PENDINGTracking invalid

Tracking Detail Status

CodeDescription
WAITINGWaiting
RETRYINGRetrying
RETRY_FAILEDRetry failed after 7 days
NOT_ENOUGH_CREDITInsufficient credits
UNSUPPORTED_PLANUnsupported plan
TRACKINGTracking in progress
COMPLETETracking completed
INCOMPLETETracking expired
DELETEDTracking deleted

Transshipment Type

CodeDescription
DIRECTDirect
TSTransshipment

ExtraRoute - Origin/Destination Data

FieldTypeDescriptionRemark
location_name?stringLocation name
location_code?stringLocation code
init_date_time?stringInitial date/time[ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX
estimate_date_time?stringEstimate date/time[ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX
actual_date_time?stringActual date/time[ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX

POL - Port of Loading Data

FieldTypeDescriptionNotes
pol_namestringPort of Loading name
pol_codestringPort of Loading code
init_etd?stringInitial ETD[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
etd?stringETD[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
atd?stringATD[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
tx_atd?stringAIS based ATD[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX

POD - Port of Discharge Data

FieldTypeDescriptionNotes
pod_namestringPort of Discharge name
pod_codestringPort of Discharge code
init_eta?stringInitial ETA[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
eta?stringETA[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
ata?stringATA[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
tx_ata?stringAIS based ATA[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX

CurrentVessel

FieldTypeDescription
imostringIMO
mmsistringMMSI
vessel_namestringVessel name
voyagestringVoyage number

Route

FieldTypeDescriptionNotes
ordernumberRoute sequence
pol_namestringPort of Loading name
pol_codestringPort of Loading code
pod_namestringPort of Discharge name
pod_codestringPort of Discharge code
imostringVessel IMO
mmsistringVessel MMSI
vessel_namestringVessel name
voyagestringVoyage number
init_etd?stringInitial ETD[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
etd?stringETD[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
atd?stringATD[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
tx_atd?stringAIS based ATD[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
init_eta?stringInitial ETA[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
eta?stringETA[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
ata?stringATA[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX
tx_ata?stringAIS based ATA[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX

Container

FieldTypeDescription
cntr_nostringContainer number
cntr_szstringContainer size
cntr_tpstringContainer type
seal_nostringContainer seal number
container_eventsContainerEvent[]Container event data Array

ContainerEvent

FieldTypeDescriptionNotes
port_codestringPort code
event_typestringContainer event types (see list below)
transportationstringTransport types (see list below)
is_actualbooleanWhether the event time is actual
event_datetimestringTime of event occurrence[ISO 8601 date/time format]yyyy-MM-dd'T'HH:mm:ssXXX

Container Event Types

CodeDescription
CONTAINER_PICK_UPContainer pickup
LOADING_ON_VESSELLoading onto vessel
VESSEL_DEPARTURE_FROM_PORTVessel departure from port
VESSEL_ARRIVAL_AT_PORTVessel arrival at port
VESSEL_BERTHING_ON_PORTVessel berthing at port
DISCHARGING_FROM_VESSELDischarging from vessel
GATE_INEntering terminal or container yard
GATE_OUTExiting terminal or container yard
RAIL_LOADINGLoading onto train
RAIL_DEPARTURETrain departure
RAIL_ARRIVALTrain arrival
RAIL_UNLOADINGUnloading from train
PICKING_UP_BY_CONSIGNEEPicked up by consignee
DELIVERING_TO_CONSIGNEEDelivered to consignee
EMPTY_CONTAINER_RETURNContainer return

Transport Types

CodeDescription
VESSELVessel
FEEDERFeeder vessel
BARGEBarge
RAILTrain
TRUCKTruck

400 Error

{
"error_detail": "[page]: The value of the field must be greater than or equal to 1.",
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2025-03-20T05:42:27.171506"
}

500 Error

{
"status": 500,
"type": "Internal Server Error",
"message": "Internal server error. Please try again in a few minutes."
}