B/L Tracking API
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. B/L Tracking Request​
- You may register multiple tracking requests at once, with up to 50 entries per submission.
- Requests must be organized in an Array structure according to the provided data schema.
- The combination of bl_no, line_cd, and cust_order_id must be unique. If all three fields—bl_no, line_cd, and cust_order_id—match an existing entry, it will not be registered.
- For the list of carrier codes, please refer to the Supported Carriers.
Request
POST /partners/track/v2/cargo-tracks/tracking
B/L Tracking Request Data
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
| *bl_no | string | 50 | Bill of Lading number | Max 50 characters |
| *cust_order_id | string | 400 | Unique reference number used to identify B/L tracking in customer's internal system | Max 400 characters |
| *line_cd | string | 5 | Carrier code | Max 5 characters |
| cntr_no | string | 50 | Container number | Max 50 characters |
| cust_corp_nm | string | 100 | Customer company name | Max 100 characters |
| cust_nm | string | 50 | Customer contact name | Max 50 characters |
| extend_tracking | boolean | Extended tracking status | Set to true for extended tracking users only |
curl -X POST "https://api.tradlinx.com/partners/track/v2/cargo-tracks/tracking" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]"
-H "Content-Type: application/json"
-d '[
{
"bl_no": "SAMPLE_BL_NO",
"cntr_no": "SAMPLE_CNTR_NO",
"cust_corp_nm": "SAMPLE_CORP_NAME",
"cust_nm": "SAMPLE_CUSTOMER_NAME",
"cust_order_id": "SAMPLE_ORDER_ID",
"extend_tracking": true,
"line_cd": "SAMPLE_LINE_CD"
}
]'
Response
{
"api_version": "v2",
"content": {
"success": [
{
"bl_no": "SAMPLE_BL_NO",
"cntr_no": "SAMPLE_CNTR_NO",
"cust_corp_nm": "SAMPLE_CORP_NM",
"cust_nm": "SAMPLE_CUSTOMER_NM",
"cust_order_id": "SAMPLE_ORDER_ID",
"line_cd": "SAMPLE_LINE_CD"
}
],
"fail": [
{
"data": {
"bl_no": "SAMPLE_BL_NO",
"line_cd": "SAMPLE_LINE_CD"
},
"reason": "5"
}
],
"fail_count": 1,
"success_count": 1,
"total_count": 2
},
"transaction_time": "2025-07-08T07:00:26.146254"
}
Response Body
| Field | Type | Description | Notes |
|---|---|---|---|
| api_version | string | API version | |
| content | SuccessFail | Success/Failure status | |
| message | string | Server message | Provided when necessary |
| transaction_time | string | Response timestamp | yyyy-MM-dd'T'HH:mm:ss.SSSSSS |
SuccessFail
| Field | Type | Description |
|---|---|---|
| success | Success[] | Summary of successfully registered data |
| success_count | number | Number of successfully registered data entries |
| fail | Fail[] | Summary of failed registration data |
| fail_count | number | Number of failed data entries |
| total_count | number | Total number of requests |
Success
| Field | Type | Size | Description |
|---|---|---|---|
| bl_no | string | 50 | Bill of Lading number |
| cntr_no | string | 50 | Container number |
| cust_corp_nm | string | 100 | Customer company name |
| cust_nm | string | 50 | Customer contact name |
| cust_order_id | string | 400 | Unique reference number used to identify B/L tracking in customer's internal system |
| line_cd | string | 5 | Carrier code |
Fail
| Field | Type | Description |
|---|---|---|
| data | FailData | Summary of failed data |
| reason | string | Reason for failure |
FailData
| Field | Type | Size | Description |
|---|---|---|---|
| bl_no | string | 50 | Bill of Lading number |
| line_cd | string | 5 | Carrier code |
2. B/L Tracking Update Request​
- The fields bl_no, line_cd, and cust_order_id together form a unique identifier for a B/L tracking. If all three values match an existing record, the update will not be applied. However, if only one or two fields match, the update is allowed.
Request
PUT /partners/track/v3/cargo-tracks/{cargo_track_id}
PathVariable
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
| *cargo_track_id | string | 50 | Unique B/L tracking ID that can be obtained through B/L tracking lookup | UUID type |
RequestBody
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
| *cust_order_id | string | 400 | Unique reference number used to identify B/L tracking in customer's internal system | Max 400 characters |
| cust_corp_name | string | 100 | Customer company name | Max 100 characters |
| cust_name | string | 50 | Customer contact name | Max 50 characters |
| remark | string | 800 | Notes | Max 800 characters |
curl -X PUT "https://api.tradlinx.com/partners/track/v3/cargo-tracks/[Cargo Track ID]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
-d '{
"cust_order_id": "SAMPLE_ORDER_ID",
"cust_corp_name": "SAMPLE_CORP_NAME",
"cust_name": "SAMPLE_CUSTOMER_NAME",
"remark": "SAMPLE_REMARK"
}'
Response
200 OK
{}
400 Error
{
"error_detail": "[cust_order_id]: must not be blank",
"transaction_time": "2024-08-13T05:42:27.251232"
}
3. B/L Tracking Cancellation Request​
- You may cancel multiple B/L tracking in a single request.
- The cancellation payload must be formatted as an array according to the data schema below.
- A maximum of 50 B/L numbers can be canceled per request.
- If the B/L tracking status is
TRACKINGorCOMPLETE, canceling the tracking request will not refund the credits, as they are already deducted.
Request
POST /partners/track/v2/cargo-tracks/cancel
B/L Tracking Cancellation Request Data
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
| *bl_no | string | 50 | Bill of Lading number | Max 50 characters |
| *cust_order_id | string | 400 | Unique reference number used to identify B/L tracking in customer's internal system | Max 400 characters |
| *line_cd | string | 5 | Carrier code | Max 5 characters |
curl -X POST "https://api.tradlinx.com/partners/track/v2/cargo-tracks/cancel" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
-d '[
{
"bl_no": "SAMPLE_BL_NO",
"cust_order_id": "SAMPLE_ORDER_ID",
"line_cd": "SAMPLE_LINE_CD"
}
]'
Response
If successful, the server returns HTTP status code 200.
4. Manual B/L Tracking Request​
- You may register multiple tracking requests at once, with up to 50 entries per submission.
- Requests must be organized in an Array structure according to the provided data schema.
- The combination of bl_no, line_cd, and cust_order_id must be unique, as these values are later used for canceling the tracking request. Duplicate combinations will be rejected.
- If pol_code, pod_code, or imo are missing or inaccurate, the origin, destination, or vessel information may not display correctly.
Request
POST /partners/track/v3/cargo-tracks/manual-tracking
Manual B/L Tracking Request Data
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
| *line_name | string | 50 | Carrier name | Max 50 characters |
| *bl_no | string | 50 | Bill of Lading number | Max 50 characters |
| *cust_order_id | string | 400 | Unique reference number used to identify B/L tracking in customer's internal system | Max 400 characters |
| cust_corp_name | string | 100 | Customer company name | Max 100 characters |
| cust_name | string | 50 | Customer contact name | Max 50 characters |
| remark | string | 800 | Notes | Max 800 characters |
| route_list | Route_list[] | Shipment route |
Route_list
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
| *pol_code | string | 5 | Port of Loading code | Max 5 characters |
| *pol_name | string | 100 | Port of Loading name | Max 100 characters |
| *etd | string | Estimated Time of Departure | yyyy-MM-dd'T'HH:mm:ss | |
| atd | string | Actual Time of Departure | yyyy-MM-dd'T'HH:mm:ss | |
| *pod_code | string | 5 | Port of Discharge code | Max 5 characters |
| *pod_name | string | 100 | Port of Discharge name | Max 100 characters |
| *eta | string | Estimated Time of Arrival | yyyy-MM-dd'T'HH:mm:ss | |
| ata | string | Actual Time of Arrival | yyyy-MM-dd'T'HH:mm:ss | |
| *imo | string | 7 | Vessel IMO number | Max 7 characters |
| *vessel_name | string | 50 | Vessel name | Max 50 characters |
curl -X POST "https://api.tradlinx.com/partners/track/v3/cargo-tracks/manual-tracking" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
-d '[
{
"line_name": "Example Line",
"bl_no": "BL202408081309",
"cust_order_id": "ORDER12345",
"cust_corp_name": "Example Corp",
"cust_name": "John Doe",
"remark": "This is a remark.",
"route_list": [
{
"pol_name": "BUSAN",
"etd": "2024-07-30T10:00:00",
"atd": "2024-07-30T12:00:00",
"pod_name": "LA",
"eta": "2024-08-05T18:00:00",
"ata": null,
"vessel_name": "OOCL HUSTON",
"imo": "9355757"
},
{
"pol_name": "LA",
"etd": "2024-08-06T08:00:00",
"atd": null,
"pod_name": "MEXICO",
"eta": "2024-08-10T20:00:00",
"ata": null,
"vessel_name": "OOCL SEOUL",
"imo": "9417244"
}
]
}
]'
Response
{
"api_version": "v3",
"content": {
"fail": [
{
"data": {
"bl_no": "SAMPLE_BL_NO",
"line_cd": "SAMPLE_LINE_CD"
},
"reason": "5"
}
],
"fail_count": 0,
"success": [
{
"bl_no": "SAMPLE_BL_NO",
"cntr_no": "SAMPLE_CNTR_NO",
"cust_corp_nm": "SAMPLE_CORP_NAME",
"cust_nm": "SAMPLE_CUSTOMER_NAME",
"cust_order_id": "SAMPLE_ORDER_ID",
"line_cd": "SAMPLE_LINE_CD"
}
],
"success_count": 0,
"total_count": 0
},
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2025-07-09T04:01:20.083054"
}
Response Body
| Field | Type | Description | Remark |
|---|---|---|---|
| api_version | string | API version | v3 |
| content | SuccessFail | Success/Failure Status | |
| message | string | Server message | Provided when necessary |
| transaction_time | string | Response timestamp | yyyy-MM-dd'T'HH:mm:ss.SSSSSS |
SuccessFail
| Field | Type | Description |
|---|---|---|
| success | Success[] | Summary of successfully registered data |
| success_count | number | Number of successfully registered data entries |
| fail | Fail[] | Summary of failed registration data |
| fail_count | number | Number of failed data entries |
| total_count | number | Total number of requests |
Success
| Field | Type | Size | Description |
|---|---|---|---|
| bl_no | string | 50 | Bill of Lading number |
| cntr_no | string | 50 | Container number |
| cust_corp_nm | string | 100 | Customer company name |
| cust_nm | string | 50 | Customer contact name |
| cust_order_id | string | 400 | Unique reference number used to identify B/L tracking in customer's internal system |
| line_cd | string | 5 | Carrier code |
Fail
| Field | Type | Description |
|---|---|---|
| data | FailData | Summary of failed data |
| reason | string | Reason for failure |
FailData
| Field | Type | Size | Description |
|---|---|---|---|
| bl_no | string | 50 | Bill of Lading number |
| line_cd | string | 5 | Carrier code |
5. Manual B/L Tracking Update Request​
- The fields bl_no, line_cd, and cust_order_id form a unique identifier used for canceling B/L tracking. These values cannot be modified once registered.
- If the vessel being manually tracked is a bulk carrier, it will be displayed as such in MapView.
Request
PUT /partners/track/v3/cargo-tracks/manual-tracking
Manual B/L Tracking Update Data
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
| *bl_no | string | 50 | Bill of Lading number | Max 50 characters |
| *cust_order_id | string | 400 | Unique reference number used to identify B/L tracking in customer's internal system | Max 400 characters |
| cust_corp_name | string | 100 | Customer company name | Max 100 characters |
| cust_name | string | 50 | Customer contact name | Max 50 characters |
| remark | string | 800 | Notes | Max 800 characters |
| *route_list | Route_list[] | Shipment route |
Route_list
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
| *pol_code | string | 5 | Port of Loading code | Max 5 characters |
| *pol_name | string | 100 | Port of Loading name | Max 100 characters |
| *etd | string | Estimated Time of Departure | yyyy-MM-dd'T'HH:mm:ss | |
| atd | string | Actual Time of Departure | yyyy-MM-dd'T'HH:mm:ss | |
| *pod_code | string | 5 | Port of Discharge code | Max 5 characters |
| *pod_name | string | 100 | Port of Discharge name | Max 100 characters |
| *eta | string | Estimated Time of Arrival | yyyy-MM-dd'T'HH:mm:ss | |
| ata | string | Actual Time of Arrival | yyyy-MM-dd'T'HH:mm:ss | |
| *imo | string | 7 | Vessel IMO number | Max 7 characters |
| *vessel_name | string | 50 | Vessel name | Max 50 characters |
curl -X PUT "https://api.tradlinx.com/partners/track/v3/cargo-tracks/manual-tracking" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
-d '{
"bl_no": "BL202408081309",
"cust_order_id": "ORDER12345",
"cust_corp_name": "Example Corp",
"cust_name": "John Doe",
"remark": "This is a remark.",
"route_list": [
{
"pol_name": "BUSAN",
"etd": "2024-07-30T10:00:00",
"atd": "2024-07-30T12:00:00",
"pod_name": "LA",
"eta": "2024-08-05T18:00:00",
"ata": null,
"vessel_name": "OOCL HUSTON",
"imo": "9355757"
}
]
}'
Response
200 OK
{}
400 Error
{
"error_detail": "[cust_order_id]: must not be blank",
"transaction_time": "2024-08-13T05:42:27.234156"
}
500 Error
{
"status": 500,
"type": "Internal Server Error",
"message": "Internal server error. Please try again in a few minutes."
}
6. Retrieve B/L Tracking Data by Date Range​
- Retrieves all B/L tracking entries registered in TRADLINX Ocean Visibility within a specified date range, using pagination.
Request
GET /partners/track/v3/cargo-tracks/query
Query Parameter
| Field | Type | Description |
|---|---|---|
| register_from | string | Start date/time for registration filter. Must follow ISO 8601 format: yyyy-MM-dd'T'HH:mm:ssXXX |
| register_to | string | End date/time for registration filter. Must follow ISO 8601 format: yyyy-MM-dd'T'HH:mm:ssXXX |
| *page | number | Page number (minimum: 1) |
| *size | number | Page size (range: 1–1000) |
curl -X GET "https://api.tradlinx.com/partners/track/v3/cargo-tracks/query?register_from=[Register From]®ister_to=[Register To]&page=[Page]&size=[Size]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
Response
{
"api_version": "v3",
"transaction_time": "2025-07-09T04:04:06.333705",
"content": [
{
"cargo_track_id": "SAMPLE_CARGO_TRACK_ID",
"line_cd": "SAMPLE_LINE_CD",
"bl_no": "SAMPLE_BL_NO",
"cust_order_id": "SAMPLE_ORDER_ID",
"cust_corp_name": "SAMPLE_CORP_NAME",
"cust_name": "SAMPLE_CUSTOMER_NAME",
"registered_datetime": "2025-02-27T06:51:49Z",
"tracking_status": "COMPLETE",
"trade_type": null,
"is_container_plus": true
}
],
"size": 1,
"pagination": {
"current_page": 1,
"has_next": false,
"total_page": 10,
"total_size": 10
}
}
Response Body
| Field | Type | Description | Remark |
|---|---|---|---|
| api_version | string | API version | v3 |
| content | CargoTrackDetail | B/L tracking details | |
| transaction_time | string | Response timestamp | yyyy-MM-dd'T'HH:mm:ss.SSSSSS |
| size | number | Content size | |
| pagination | Pagination | Pagination information |
Pagination
| Field | Type | Description |
|---|---|---|
| total_size | number | Total data size |
| total_page | number | Maximum page number |
| current_page | number | Current page number |
| has_next | boolean | Whether next page exists |
B/L Tracking Data
| Field | Type | Description |
|---|---|---|
| cargo_track_id | string | B/L tracking ID |
| line_cd | string | Carrier code |
| bl_no | string | Bill of Lading number (Master B/L) |
| cust_order_id | string | Unique reference number used to identify B/L tracking in customer's internal system |
| cust_corp_name? | string | Customer company name |
| cust_name? | string | Customer contact name |
| registered_datetime | string | Registration date/time (yyyy-MM-dd'T'HH:mm:ssZ) |
| tracking_status | string | Tracking status (see list below) |
| trade_type? | string | Deprecated field. This field is no longer in use and always returns null |
| is_container_plus | boolean | Container Plus status |
Tracking Status
| Code | Description |
|---|---|
| INIT | Waiting |
| PENDING | Retrying |
| EXPIRED | Retry failed after 7 days |
| BL_INVALID | Invalid B/L input |
| TRACKING | Tracking in progress |
| COMPLETE | Tracking completed |
| UNPAID | Insufficient credits |
400 Error
{
"error_detail": "[page]: The value of the field must be greater than or equal to 1.",
"transaction_time": "2025-03-20T05:42:27.135265"
}
500 Error
{
"status": 500,
"type": "Internal Server Error",
"message": "Internal server error. Please try again in a few minutes."
}
7. Retrieve B/L Tracking Details​
- A maximum of 50 tracking detail records can be retrieved per request.
- Retrieve detailed information for B/L tracking data.
- Only successfully registered B/L 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/cargo-tracks/details
Query Parameter
| Field | Type | Description |
|---|---|---|
| *bl_nos | string | List of Bill of Lading numbers (Master B/L) |
| *page | number | Page number (minimum: 1) |
| *size | number | Page size (range: 1-50) |
curl -X GET "https://api.tradlinx.com/partners/track/v3/cargo-tracks/details?bl_nos=[BL No],[BL No],[BL No]&page=[Page]&size=[Size]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
Response
{
"api_version": "v3",
"content": [
{
"bl_no": "SAMPLE_BL_NO",
"cargo_track_id": "SAMPLE_CARGO_TRACK_ID",
"containers": [
{
"cntr_no": "SAMPLE_CNTR_NO",
"cntr_sz": "SAMPLE_CNTR_SIZE",
"cntr_tp": "SAMPLE_CNTR_TYPE",
"container_events": [
{
"event_datetime": "2025-07-08T07:25:39+09:00",
"event_type": "CONTAINER_PICK_UP",
"is_actual": false,
"port_code": "SAMPLE_PORT_CODE",
"transportation": "BARGE"
}
],
"seal_no": "SAMPLE_SEAL_NO"
}
],
"current_vessel": {
"imo": "SAMPLE_IMO",
"mmsi": "SAMPLE_MMSI",
"vessel_name": "SAMPLE_VESSEL_NAME",
"voyage": "SAMPLE_VOYAGE"
},
"cust_corp_name": "SAMPLE_CORP_NAME",
"cust_name": "SAMPLE_CUSTOMER_NAME",
"cust_order_id": "SAMPLE_CUST_ORDER_ID",
"is_active": false,
"is_container_plus": false,
"line_cd": "SAMPLE_LINE_CD",
"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-08T07:25:39+09:00",
"eta": "2025-07-08T07:25:39+09:00",
"init_eta": "2025-07-08T07:25:39+09:00",
"pod_code": "SAMPLE_POD_PORT_CODE",
"pod_name": "SAMPLE_POD_NAME",
"tx_ata": "2025-07-08T07:25:39+09:00"
},
"pol": {
"atd": "2025-07-08T07:25:39+09:00",
"etd": "2025-07-08T07:25:39+09:00",
"init_etd": "2025-07-08T07:25:39+09:00",
"pol_code": "POL_PORT_CODE",
"pol_name": "POL_NAME",
"tx_atd": "2025-07-08T07:25:39+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"
},
"registered_datetime": "2025-07-08T07:25:39.493Z",
"remark": "SAMPLE_REMARK",
"routes": [
{
"ata": "2025-07-08T07:25:39+09:00",
"atd": "2025-07-08T07:25:39+09:00",
"eta": "2025-07-08T07:25:39+09:00",
"etd": "2025-07-08T07:25:39+09:00",
"imo": "SAMPLE_IMO",
"init_eta": "2025-07-08T07:25:39+09:00",
"init_etd": "2025-07-08T07:25:39+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-08T07:25:39+09:00",
"tx_atd": "2025-07-08T07:25:39+09:00",
"vessel_name": "SAMPLE_VESSEL_NAME",
"voyage": "SAMPLE_VOYAGE"
}
],
"tracking_status": "TRACKING",
"trade_type": null,
"trans_type": "DIR"
}
],
"message": "SAMPLE_ERROR_CODE",
"pagination": {
"current_page": 0,
"has_next": false,
"total_page": 0,
"total_size": 0
},
"size": 1,
"transaction_time": "2025-07-08T07:25:39.493258"
}
Response Body
| Field | Type | Description | Remark |
|---|---|---|---|
| api_version | string | API version | v3 |
| content | CargoTrackDetail | B/L tracking details | |
| transaction_time | string | Response timestamp | yyyy-MM-dd'T'HH:mm:ss.SSSSSS |
| size | number | Content size | |
| pagination | Pagination | Pagination information |
Pagination
| Field | Type | Description |
|---|---|---|
| total_size | number | Total number of data entries |
| total_page | number | Total number of pages |
| current_page | number | Current page number |
| has_next | boolean | If a next page exists |
CargoTrackDetail - B/L Tracking Details
| Field | Type | Description |
|---|---|---|
| cargo_track_id | string | B/L Tracking ID |
| line_cd | string | Carrier code |
| bl_no | string | Bill of Lading number (Master B/L) |
| cust_order_id | string | Unique reference number used to identify B/L tracking in customer's internal system |
| cust_corp_name? | string | Customer company name |
| cust_name? | string | Customer contact name |
| remark? | string | Notes |
| registered_datetime | string | Registration date/time (yyyy-MM-dd'T'HH:mm:ssZ) |
| tracking_status | string | Tracking status (see list below) |
| trade_type? | string | Deprecated field. This field is no longer in use and always returns null |
| is_container_plus | boolean | If the B/L tracking uses Container Plus |
| trans_type | string | Direct/Transshipment (see list below) |
| origin | ExtraRoute | Place of origin (Data is available only for certain carriers) (see list below) |
| pol | POL | Port of Loading data |
| pod | POD | Port of Discharge data |
| destination | ExtraRoute | Final destination (Data is available only for certain carriers) (see list below) |
| current_vessel | CurrentVessel | Current vessel information |
| routes | Route [] | List of route segments for the shipment |
| containers | Container [] | List of containers associated with the shipment |
Tracking Status
| Code | Description |
|---|---|
| INIT | Waiting |
| PENDING | Retrying |
| EXPIRED | Retry failed after 7 days |
| BL_INVALID | Invalid B/L input |
| TRACKING | Tracking in progress |
| COMPLETE | Tracking completed |
| UNPAID | Insufficient credits |
Direct/Transshipment
| Code | Description |
|---|---|
| DIRECT | Direct |
| TS | Transshipment |
ExtraRoute - Origin/Destination Data
| Field | Type | Description | Remark |
|---|---|---|---|
| location_name | string | Location name | |
| location_code | string | Location code | |
| init_date_time? | string | Initial date/time | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| estimate_date_time? | string | Estimate date/time | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| actual_date_time? | string | Actual date/time | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
POL - Port of Loading Data
| Field | Type | Description | Remark |
|---|---|---|---|
| pol_name | string | Port of Loading name | |
| pol_code | string | Port of Loading code | |
| init_etd? | string | Initial ETD | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| etd? | string | ETD | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| atd? | string | ATD | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| tx_atd? | string | AIS based ATD | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
POD - Port of Discharge Data
| Field | Type | Description | Remark |
|---|---|---|---|
| pod_name | string | Port of Discharge name | |
| pod_code | string | Port of Discharge code | |
| init_eta? | string | Initial ETA | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| eta? | string | ETA | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| ata? | string | ATA | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| tx_ata? | string | AIS based ATA | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
CurrentVessel
| Field | Type | Description |
|---|---|---|
| imo | string | IMO |
| mmsi | string | MMSI |
| vessel_name | string | Vessel name |
| voyage | string | Voyage |
Route
| Field | Type | Description | Remark |
|---|---|---|---|
| order | number | Route sequence | |
| pol_name | string | Port of Loading name | |
| pol_code | string | Port of Loading code | |
| pod_name | string | Port of Discharge name | |
| pod_code | string | Port of Discharge code | |
| imo | string | Vessel IMO | |
| mmsi | string | Vessel MMSI | |
| vessel_name | string | Vessel name | |
| voyage | string | Voyage | |
| init_etd? | string | Initial ETD | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| etd? | string | ETD | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| atd? | string | ATD | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| tx_atd? | string | AIS based ATD | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| init_eta? | string | Initial ETA | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| eta? | string | ETA | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| ata? | string | ATA | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
| tx_ata? | string | AIS based ATA | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
Container
| Field | Type | Description |
|---|---|---|
| cntr_no | string | Container number |
| cntr_sz | string | Container size |
| cntr_tp | string | Container type |
| seal_no | string | Container seal number |
| container_events | ContainerEvent [] | Container event data Array |
ContainerEvent
| Field | Type | Description | Remark |
|---|---|---|---|
| port_code | string | Port code | |
| event_type | string | Container event types (see list below) | |
| transportation | string | Transport types (see list below) | |
| is_actual | boolean | Whether the event time is actual | |
| event_datetime | string | Time of event occurrence | [ISO 8601 date/time format] yyyy-MM-dd'T'HH:mm:ssXXX |
Container Event Types
| Code | Description |
|---|---|
| CONTAINER_PICK_UP | Container pickup |
| LOADING_ON_VESSEL | Loading onto vessel |
| VESSEL_DEPARTURE_FROM_PORT | Vessel departure from port |
| VESSEL_ARRIVAL_AT_PORT | Vessel arrival at port |
| VESSEL_BERTHING_ON_PORT | Vessel berthing at port |
| DISCHARGING_FROM_VESSEL | Discharging from vessel |
| GATE_IN | Entering terminal or container yard |
| GATE_OUT | Exiting terminal or container yard |
| RAIL_LOADING | Loading onto train |
| RAIL_DEPARTURE | Train departure |
| RAIL_ARRIVAL | Train arrival |
| RAIL_UNLOADING | Unloading from train |
| PICKING_UP_BY_CONSIGNEE | Picked up by consignee |
| DELIVERING_TO_CONSIGNEE | Delivered to consignee |
| EMPTY_CONTAINER_RETURN | Container return |
Transport Types
| Code | Description |
|---|---|
| VESSEL | Vessel |
| FEEDER | Feeder vessel |
| BARGE | Barge |
| RAIL | Train |
| TRUCK | Truck |
400 Error
{
"error_detail": "[page]: The value of the field must be greater than or equal to 1.",
"transaction_time": "2025-03-20T05:42:27.123543"
}
500 Error
{
"status": 500,
"type": "Internal Server Error",
"message": "Internal server error. Please try again in a few minutes."
}