D&D Monitoring 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. Retrieve D&D Monitoring​
- Provides Demurrage & Detention monitoring data for B/L tracking registered entries.
- B/L tracking entries that meet the following conditions can be queried through this feature:
- Auto-tracking entries with Container+ feature enabled
- Tracking entries with existing arrivalDateTime
- arrivalDateTime is determined with the following priority:
Vessel Arrival at Portevent time at POD- Berthing time at POD from AIS data
- ATA provided by the carrier
- terminalDwellDays is calculated as the number of days from dischargeDateTime (or arrivalDateTime if not available) to gateOutDateTime.
- streetDwellDays is calculated as the number of days from dischargeDateTime to emptyReturnDateTime.
- terminalDwellDays and streetDwellDays are incremented by 1 day up to a maximum of 61 days and can be used as sorting fields in the order parameter.
- terminalDwellRawDays and streetDwellRawDays are calculated without the maximum increment limit.
- Date and time data within the content field follows the ISO 8601 format:
yyyy-MM-dd'T'HH:mm:ssZ
Request
GET /partners/track/v3/dnd-monitoring
Query Parameters
| Field | Type | Description |
|---|---|---|
arrival_from | string | Start Date of arrivalDateTime yyyy-MM-dd'T'HH:mm:ss |
arrival_to | string | End Date of arrivalDateTime yyyy-MM-dd'T'HH:mm:ss |
carrier_code | string | Carrier code |
pod_location_code | string | POD port code |
bl_no | string | Master B/L number |
container_no | string | Container number |
reference_no | string | Management number |
terminal_dwell_days | number | Terminal dwell days |
street_dwell_days | number | Container usage days |
exists_discharge | boolean | Container discharge flag |
exists_gate_out | boolean | Gate Out flag |
exists_empty_return | boolean | Container return flag |
order | ARRIVAL_DATE_TIME_ASCARRIVAL_DATE_TIME_DESCTERMINAL_DWELL_ASCTERMINAL_DWELL_DESCSTREET_DWELL_ASCSTREET_DWELL_DESCDISCHARGE_DATE_TIME_ASCDISCHARGE_DATE_TIME_DESCGATE_OUT_DATE_TIME_ASCGATE_OUT_DATE_TIME_DESCEMPTY_RETURN_DATE_TIME_ASCEMPTY_RETURN_DATE_TIME_DESC | Data Sorting (Default: ARRIVAL_DATE_TIME_DESC) |
*page | number | Page number |
*size | number | Page size |
curl -X GET "https://api.tradlinx.com/partners/track/v3/dnd-monitoring?arrival_from=[Arrival From]&arrival_to=[Arrival To]&page=[Page]&size=[Size]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
Response
{
"api_version": "v3",
"content": [
{
"registration_type": "BL_TRACKING",
"detail_status": "TRACKING",
"carrier_code": "TRX",
"carrier_name": "TRADLINX",
"container_no": "TRADLINX6882",
"bl_no": "MASTERBL1029",
"reference_no": "reference number-0123",
"pol_name": "Kwangyang",
"pol_code": "KRKWA",
"pod_name": "Pipavav",
"pod_code": "INPAV",
"latest_event": null,
"terminal_dwell_days": 1,
"terminal_dwell_raw_days": 1,
"street_dwell_days": 6,
"street_dwell_raw_days": 6,
"arrival_date_time": "2025-10-18T12:58:57Z",
"discharge_date_time": null,
"gate_out_date_time": "2025-10-20T06:02:12Z",
"empty_return_date_time": "2025-10-26T12:11:38Z"
}
],
"transaction_time": "2025-09-03T04:52:26.649981",
"size": 50,
"pagination": {
"total_size": 549,
"total_page": 11,
"current_page": 1,
"has_next": true
}
}
Response Body
| Field | Type | Description | Remark |
|---|---|---|---|
api_version | string | API version | v3 |
content | DndMonitoring[] | D&D monitoring data | |
transaction_time | string | Response timestamp | yyyy-MM-dd'T'HH:mm:ss.SSSSSS |
size | number | Page size | |
pagination | Pagination | Pagination information |
D&D Monitoring Data - DndMonitoring
| Field | Type | Description |
|---|---|---|
registration_type | string | Registration type |
detail_status | string | Detail status |
carrier_code | string | Carrier code |
carrier_name | string | Carrier name |
container_no | string | Container number |
bl_no | string | Master B/L number |
reference_no | string | Management number |
pol_name | string | POL port name |
pol_code | string | POL port code |
pod_name | string | POD port name |
pod_code | string | POD port code |
?latest_event | string | Latest container event |
?terminal_dwell_days | number | Terminal dwell days (max 60 days) |
?terminal_dwell_raw_days | number | Terminal dwell days |
?street_dwell_days | number | Container usage days (max 60 days) |
?street_dwell_raw_days | number | Container usage days |
arrival_date_time | string | Arrival date/time (yyyy-MM-dd'T'HH:mm:ssZ) |
?discharge_date_time | string | Discharge date/time (yyyy-MM-dd'T'HH:mm:ssZ) |
?gate_out_date_time | string | Gate Out date/time (yyyy-MM-dd'T'HH:mm:ssZ) |
?empty_return_date_time | string | Container return date/time (yyyy-MM-dd'T'HH:mm:ssZ) |
Pagination Information - Pagination
| Field | Type | Description |
|---|---|---|
total_size | number | Total data count |
total_page | number | Total page count |
current_page | number | Current page number |
has_next | boolean | Whether next page exists |
400 Error
{
"error_detail": "[page]: Required field is not provided.",
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2025-08-28T07:21:13.367404"
}
500 Error
{
"status": 500,
"type": "Internal Server Error",
"message": "Internal server error. Please try again in a few minutes."
}