Vessel 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. Vessel Search​
- Allows searching for vessels using a keyword (IMO No, MMSI, Call Sign, or vessel name).
Request
GET /partners/track/v3/vessel-tracks/search
Query Parameter
| Field | Type | Description |
|---|---|---|
keyword | string | IMO No, MMSI, Call Sign, Vessel Name |
curl -X GET "https://api.tradlinx.com/partners/track/v3/vessel-tracks/search?keyword=[Keyword]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
Response
{
"api_version": "v3",
"content": [
{
"call_sign": "SAMPLE_CALL_SIGN",
"imo_no": "SAMPLE_IMO_NO",
"mmsi": "SAMPLE_MMSI",
"vessel_id": 1,
"vessel_name": "SAMPLE_VESSEL_NAME"
}
],
"size": 1,
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2025-08-21T06:15:46.608323"
}
Response Body
| Field | Type | Description | Notes |
|---|---|---|---|
api_version | string | API version | |
content | SearchVesselInfo | Vessel Information | |
message | string | Server message | Returned if applicable |
transaction_time | string | Response timestamp | yyyy-MM-dd'T'HH:mm:ss.SSSSSS |
size | number | Content size |
SearchVesselInfo – Vessel Information
| Field | Type | Description |
|---|---|---|
vessel_id | number | Vessel ID |
imo_no | string | IMO No |
mmsi | string | MMSI |
vessel_name | string | Vessel Name |
2. Vessel Tracking Request​
- Only one tracking request can be made at a time.
- The
vessel_idin the registration data must be unique, and duplicate registration is not allowed if the vessel is already being tracked. - Expired tracking records can be re-tracked by submitting a new tracking request.
- Registered tracking records remain valid for one month.
- If
auto_renewalis enabled at the time of registration, credits will be deducted one day before expiration, and the tracking period will be automatically extended for one month.
Request
POST /partners/track/v3/vessel-tracks/enroll
Vessel Tracking Request Data
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
*vessel_id | number | Vessel ID | ||
remark | string | 400 | Notes | Max 400 |
track_group | string | 200 | Tracking Group | Max 200 |
auto_renewal | boolean | Auto Renewal |
curl -X POST "https://api.tradlinx.com/partners/track/v3/vessel-tracks/enroll" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
-d '{
"auto_renewal": true,
"remark": "SAMPLE_REMARK",
"track_group": "SAMPLE_TRACK_GROUP",
"vessel_id": 1
}'
Response
{
"api_version": "v3",
"content": {
"fail": [
{
"data": {
"vessel_id": 2
},
"reason": "SAMPLE_REASON"
}
],
"fail_count": 1,
"success": [
{
"vessel_id": 1,
"vessel_track_id": 1
}
],
"success_count": 1,
"total_count": 2
},
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2025-08-21T06:29:01.608323"
}
Vessel Tracking Request – Response Body
| Field | Type | Description | Notes |
|---|---|---|---|
api_version | string | API Version | |
content | SuccessFail | Success/Failure status | |
message | string | Server message | Returned if applicable |
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 | Description |
|---|---|---|
vessel_track_id | number | Unique ID of the tracking record obtained via vessel tracking inquiry |
vessel_id | number | Vessel ID |
Fail
| Field | Type | Description |
|---|---|---|
data | FailData | Summary of failed data |
reason | string | Reason for failure |
FailData
| Field | Type | Description |
|---|---|---|
vessel_id | number | Vessel ID |
3. Vessel Tracking Update Request​
- Only one update request can be processed at a time.
- Updates can be made to remark and track_group.
Request
PATCH /partners/track/v3/vessel-tracks/{vessel_track_id}
PathVariable
| Field | Type | Description |
|---|---|---|
*vessel_track_id | number | Unique ID of the tracking record obtained via vessel tracking inquiry |
RequestBody
| Field | Type | Size | Description | Constraint |
|---|---|---|---|---|
remark? | string | 400 | Notes | Max 400 |
track_group? | string | 200 | Tracking Group | Max 200 |
curl -X PATCH "https://api.tradlinx.com/partners/track/v3/vessel-tracks/[Vessel Track ID]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
-d '{
"remark": "SAMPLE_REMARK",
"track_group": "SAMPLE_TRACK_GROUP"
}'
Response
{
"api_version": "v3",
"content": {
"vessel_id": 1,
"vessel_track_id": 1
},
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2025-08-21T06:37:36.608323"
}
Vessel Tracking Update Request – Response Body
| Field | Type | Description | Notes |
|---|---|---|---|
api_version | string | API Version | |
content | VesselTrackIdentifier | Vessel Tracking Identifier | |
message | string | Server message | Returned if applicable |
transaction_time | string | Response timestamp | yyyy-MM-dd'T'HH:mm:ss.SSSSSS |
VesselTrackIdentifier
| Field | Type | Description |
|---|---|---|
vessel_track_id | number | Unique ID of the tracking record obtained via vessel tracking inquiry |
vessel_id | number | Vessel ID |
4. Vessel Tracking Auto Renewal Update Request​
- Update requests can only be made one at a time.
- auto_renewal can be updated for an active tracking record.
Request
POST /partners/track/v3/vessel-tracks/{vessel_track_id}/auto-renewal
PathVariable
| Field | Type | Description |
|---|---|---|
*vessel_track_id | number | Unique ID of the tracking record obtained via vessel tracking inquiry |
curl -X POST "https://api.tradlinx.com/partners/track/v3/vessel-tracks/[Vessel Track ID]/auto-renewal" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-d '{
"auto_renewal": true
}'
Vessel Tracking Auto Renewal Update Request Data
| Field | Type | Description | Constraint |
|---|---|---|---|
*auto_renewal | boolean | Auto Renewal |
Response
If successful, the server returns HTTP status code 200.
5. Vessel Tracking Cancellation Request​
- Cancellation requests can only be made one at a time.
- If the vessel tracking status is TRACKING, DELETED, or EXPIRED, canceling the tracking request will not refund the credits, as they are already deducted.
Request
DELETE /partners/track/v3/vessel-tracks/{vessel_track_id}
PathVariable
| Field | Type | Description |
|---|---|---|
*vessel_track_id | number | Unique ID of the tracking record obtained via vessel tracking inquiry |
curl -X DELETE "https://api.tradlinx.com/partners/track/v3/vessel-tracks/[Vessel Track ID]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
Response
If successful, the server returns HTTP status code 200.
6. Retrieve Vessel Tracking List​
- Retrieves a summary of registered vessel tracking records.
Request
GET /partners/track/v3/vessel-tracks
Query Parameter
| Field | Type | Description |
|---|---|---|
status? | string | TRACKING, DELETED, EXPIRED, PENDING |
register_from? | string | Registration Start Date (ISO 8601 date/time format: yyyy-MM-dd'T'HH:mm:ssXXX) |
register_to? | string | Registration End Date (ISO 8601 date/time format: yyyy-MM-dd'T'HH:mm:ssXXX) |
keyword? | string | IMO No, MMSI, Call Sign, Vessel Name |
vessel_track_ids? | number | Unique ID of the tracking record obtained via vessel tracking inquiry list (maximum: 50) |
*page | number | Page number (minimum: 1) |
*size | number | Page size (range: 1-50) |
curl -X GET "https://api.tradlinx.com/partners/track/v3/vessel-tracks?status=[Status]®ister_from=[Register From]®ister_to=[Register To]&keyword=[Keyword]&vessel_track_ids=[Vessel Track ID],[Vessel Track ID]&page=[Page]&size=[Size]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
Response
{
"api_version": "v3",
"content": [
{
"expired_datetime": "2025-08-21T07:45:24Z",
"registered_datetime": "2025-08-21T07:45:24Z",
"remark": "SAMPLE_REMARK",
"status": "TRACKING",
"track_group": "SAMPLE_TRACK_GROUP",
"updated_datetime": "2025-08-21T07:45:24Z",
"vessel": {
"call_sign": "SAMPLE_CALL_SIGN",
"imo_no": "SAMPLE_IMO_NO",
"mmsi": "SAMPLE_MMSI",
"vessel_name": "SAMPLE_VESSEL_NAME",
"vessel_id": 1
},
"vessel_track_id": 1
}
],
"message": "SAMPLE_ERROR_CODE",
"pagination": {
"current_page": 1,
"has_next": false,
"total_page": 1,
"total_size": 1
},
"size": 1,
"transaction_time": "2025-08-21T07:45:24.608323"
}
Response Body
| Field | Type | Description | Notes |
|---|---|---|---|
api_version | string | API Version | |
content | VesselTrackSummary | Vessel Tracking Summary Information | |
message | string | Server message | Returned if applicable |
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 |
VesselTrackSummary – Vessel Tracking Summary Information
| Field | Type | Description |
|---|---|---|
vessel_track_id | number | Unique ID of the tracking record obtained via vessel tracking inquiry |
vessel_id | number | Vessel ID |
remark | string | Notes |
track_group | string | Tracking Group |
auto_renewal | boolean | Auto Renewal |
vessel | VesselInfo | Vessel Information |
registered_datetime | string | Registration date/time (yyyy-MM-dd'T'HH:mm:ssZ) |
expired_datetime | string | Expiration Date/Time (yyyy-MM-dd'T'HH:mm:ssZ) |
updated_datetime | string | Updated Date/Time (yyyy-MM-dd'T'HH:mm:ssZ) |
VesselInfo – Vessel Information
| Field | Type | Description |
|---|---|---|
vessel_id | number | Vessel ID |
imo_no | string | IMO No |
mmsi | string | MMSI |
vessel_name | string | Vessel Name |
7. Retrieve Vessel Tracking Details​
- Retrieves detailed vessel tracking data.
- Detailed retrieval is only available for records with a status of TRACKING.
Request
GET /partners/track/v3/vessel-tracks/{vessel_track_id}
PathVariable
| Field | Type | Description |
|---|---|---|
*vessel_track_id | number | Unique ID of the tracking record obtained via vessel tracking inquiry |
curl -X GET "https://api.tradlinx.com/partners/track/v3/vessel-tracks/[Vessel Track ID]" \
-H "tx-clientid: [Client ID]" \
-H "tx-apikey: [API Key]" \
-H "Content-Type: application/json"
Response
{
"api_version": "v3",
"content": [
{
"expired_datetime": "2025-08-21T07:45:24Z",
"registered_datetime": "2025-08-21T07:45:24Z",
"remark": "SAMPLE_REMARK",
"status": "TRACKING",
"track_group": "SAMPLE_TRACK_GROUP",
"updated_datetime": "2025-08-21T07:45:24Z",
"vessel": {
"call_sign": "SAMPLE_CALL_SIGN",
"imo_no": "SAMPLE_IMO_NO",
"mmsi": "SAMPLE_MMSI",
"vessel_name": "SAMPLE_VESSEL_NAME",
"vessel_id": 1
},
"port_in_out_schedules": [
{
"arrival_datetime": "2025-01-01T00:00:00+09:00",
"data_source": "PORT_CALL",
"departure_datetime": "2025-01-01T00:00:00+09:00",
"is_actual": true,
"port_name": "SAMPLE_PORT_NAME"
}
],
"vessel_track_id": 1
}
],
"message": "SAMPLE_ERROR_CODE",
"transaction_time": "2025-08-21T07:45:24.608323"
}
Retrieve Vessel Tracking Details Response – Response Body
| Field | Type | Description | Notes |
|---|---|---|---|
api_version | string | API Version | |
content | VesselTrackDetail | Vessel Tracking Detailed Information | |
message | string | Server message | Returned if applicable |
transaction_time | string | Response timestamp | yyyy-MM-dd'T'HH:mm:ss.SSSSSS |
VesselTrackDetail – Vessel Tracking Detailed Information
| Field | Type | Description |
|---|---|---|
vessel_track_id | number | Unique ID of the tracking record obtained via vessel tracking inquiry |
vessel_id | number | Vessel ID |
remark | string | Notes |
track_group | string | Tracking Group |
auto_renewal | boolean | Auto Renewal |
vessel | VesselInfo | Vessel Information |
port_in_out_schedules | PortInOutSchedule | Schedule Information List |
registered_datetime | string | Registration Date/Time (yyyy-MM-dd'T'HH:mm:ssZ) |
expired_datetime | string | Expiration Date/Time (yyyy-MM-dd'T'HH:mm:ssZ) |
updated_datetime | string | Updated Date/Time (yyyy-MM-dd'T'HH:mm:ssZ) |
VesselInfo – Vessel Information
| Field | Type | Description |
|---|---|---|
vessel_id | number | Vessel ID |
imo_no | string | IMO No |
mmsi | string | MMSI |
vessel_name | string | Vessel Name |
PortInOutSchedule – Schedule Information List
| Field | Type | Description |
|---|---|---|
departure_datetime | string | Departure Date/Time (ISO 8601 date/time format: yyyy-MM-dd'T'HH:mm:ssXXX) |
arrival_datetime | string | Arrival Date/Time (ISO 8601 date/time format: yyyy-MM-dd'T'HH:mm:ssXXX) |
is_actual | boolean | Is Actual |
port_name | string | Port name |
data_source | string | Data Source (PORT_CALL or Carrier code) |