Download OpenAPI specification:Download
The MarineTraffic Containers API is your way to access state-of-the-art real-time visibility for containers logistics.
For more information, please visit the solution landing page.
To get access to the solution, please reach out to sales@kpler.com.
If you have already issued one, sign in to marinetraffic.com and go to My API Services page to retrieve it.
The API key must be specified in all requests as the value of the API header X-Container-API-Key
.
The API enforces a rate limit of 200 requests per minute.
Exceeding this limit will result in a 429 Too Many Requests HTTP response.
To enhance network security, you may whitelist the following IP addresses:
Access near real-time terminal congestion insights including:
Data is updated every 30 minutes to provide near real-time terminal conditions.
Retrieve a list of terminal congestion data with live metrics and performance insights.
The list can be filtered using the following filter groups:
performanceIndex
, avgWaitingTime
, avgStayTime
congestionIndex
, vesselsWaiting
id
, smdgCode
id
, unlocode
Results are paginated with 50 entries per page.
A list of terminal congestion data
Validation error
Internal Server Error
const axios = require('axios'); const API_KEY = 'API_KEY'; const params = { 'filter[performanceInsights.performanceIndex][gte]': 5, 'filter[performanceInsights.avgStayTime][lte]': 100, 'filter[performanceInsights.avgWaitingTime][gte]': 4, 'filter[liveMetrics.congestionIndex][gte]': 5, 'filter[liveMetrics.vesselsWaiting][gte]': 2, 'filter[port.name][contains]': 'HAM', 'filter[port.unlocode]': ['DEHAM', 'BEANR'], include: 'ports,terminals' }; axios.get('https://api.kpler.com/v1/logistics/containers/terminal-congestions', { headers: { 'Accept': 'application/vnd.api+json', 'X-Container-API-Key': API_KEY }, params }) .then(response => { console.dir(response.data, {depth:null}); }) .catch(error => { if (error.response) { console.dir(error.response.data, {depth:null}); } else { console.error('Request failed:', error.message); } });
{- "data": [
- {
- "type": "terminal_congestion",
- "id": 123,
- "attributes": {
- "performanceInsights": {
- "performanceIndex": 7.5,
- "avgWaitingTime": 12.3,
- "avgStayTime": 24.6,
- "lastUpdatedAt": "2024-01-01T00:00:00Z"
}, - "liveMetrics": {
- "congestionIndex": 6.2,
- "vesselsWaiting": 3,
- "lastUpdatedAt": "2024-01-01T00:00:00Z"
}, - "carriers": [
- {
- "scac": "MSCU",
- "name": "Mediterranean Shipping Company",
- "services": [
- "Service 1",
- "Service 2"
]
}
]
}, - "relationships": {
- "port": {
- "data": {
- "type": "port",
- "id": 456
}
}, - "terminal": {
- "data": {
- "type": "terminal",
- "id": 123
}
}
}
}
], - "links": {
}, - "included": [
- {
- "type": "terminal",
- "id": 3732,
- "attributes": {
- "name": "ANTWERP EUROTERMINAL NV K1329-K1347",
- "smdgCode": "AET",
- "lat": 51.2725,
- "lon": 4.2992
}
}
]
}
Returns a list of events with optional filtering and included related resources.
You must provide either an IMO number or a UN-locode filter.
A list of events.
Unable to process request
Internal Server Error
const request = require('request'); const options = { method: 'GET', url: 'https://api.kpler.com/v1/logistics/containers/shipping/schedule-events', qs: { filter: { imo: 9943865 }, include: 'ports,vessels' }, headers: {'X-Container-API-Key': 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); });
{- "data": [
- {
- "type": "event",
- "id": "4838690-117-1748361600-departure",
- "attributes": {
- "eventType": "arrival",
- "eventStatus": "planned",
- "eventTime": "2025-03-20 14:00:00Z"
}, - "relationships": {
- "vessel": {
- "data": {
- "type": "vessel",
- "id": 4838690
}
}, - "port": {
- "data": {
- "type": "port",
- "id": 117
}
}, - "terminal": {
- "data": {
- "type": "terminal",
- "id": 3732
}
}
}
}
], - "links": {
}, - "included": [
- {
- "type": "vessel",
- "id": 4838690,
- "attributes": {
- "imo": "9778791",
- "name": "Madrid Maersk",
- "mmsi": 219836000
}
}
]
}
Create tracking requests to start your container tracking experience.
The list of supported shipping lines and freight forwarders is available in this page.
Create tracking requests to start your container tracking experience.
Up to 100 tracking requests can be created in the same call.
required | Array of objects (CreateTrackingRequestBody) |
Successful operation
Bad request
Unable to process request
Internal Server Error
{- "data": [
- {
- "type": "tracking_request",
- "attributes": {
- "referenceNumberType": "container",
- "referenceNumber": "MEDUPE268513",
- "scac": "MEDU",
- "tags": [
- "one tag",
- "second tag"
]
}
}
]
}
{- "data": [
- {
- "type": "tracking_request",
- "trackingRequestId": "01hkz69f0m9vxcmgpyrq50dfsg",
- "attributes": {
- "referenceNumberType": "container",
- "referenceNumber": "MEDUPE268513",
- "carrier": {
- "scac": "MEDU",
- "name": "Maersk Line"
}, - "status": "success",
- "failed_reason": null,
- "tags": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "label": "Tag one"
}
], - "owned": true,
- "created": "2024-01-01T00:00:00.000Z"
}, - "relationships": {
- "shipment": {
- "data": {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa"
}, - "links": {
}
}
}
}
], - "errors": [
- {
- "status": 400,
- "code": "DATA_VALIDATION_FAILED",
- "description": "Data validation failed",
- "source": {
- "pointer": "/data/0/attributes/scac"
}
}
]
}
Retrieve a list of the tracking requests created.
The list can be filtered by reference number, tags and more.
The list is divided into pages of 50 entries each.
Pagination links are provided for easy navigation.
object Structure that can be used as payload when calling the Tracking Request list endpoint. |
successful operation
Internal Server Error
const request = require('request'); const options = { method: 'GET', url: 'https://api.kpler.com/v1/logistics/containers/tracking-requests', qs: {filter: { scac: ['TXZJ', 'LMCU'] }}, headers: {'X-Container-API-Key': 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); });
{- "data": [
- {
- "type": "tracking_request",
- "trackingRequestId": "01hkz69f0m9vxcmgpyrq50dfsg",
- "attributes": {
- "referenceNumberType": "container",
- "referenceNumber": "MEDUPE268513",
- "carrier": {
- "scac": "MEDU",
- "name": "Maersk Line"
}, - "status": "success",
- "failed_reason": null,
- "tags": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "label": "Tag one"
}
], - "owned": true,
- "created": "2024-01-01T00:00:00.000Z"
}, - "relationships": {
- "shipment": {
- "data": {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa"
}, - "links": {
}
}
}
}
], - "links": {
}
}
Retrieve a specific tracking request and all associated information.
successful operation
Tracking request not found
Internal Server Error
const request = require('request'); const options = { method: 'GET', url: 'https://api.kpler.com/v1/logistics/containers/tracking-requests/%7BtrackingRequestId%7D', headers: {'X-Container-API-Key': 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); });
{- "data": {
- "type": "tracking_request",
- "trackingRequestId": "01hkz69f0m9vxcmgpyrq50dfsg",
- "attributes": {
- "referenceNumberType": "container",
- "referenceNumber": "MEDUPE268513",
- "carrier": {
- "scac": "MEDU",
- "name": "Maersk Line"
}, - "status": "success",
- "failed_reason": null,
- "tags": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "label": "Tag one"
}
], - "owned": true,
- "created": "2024-01-01T00:00:00.000Z"
}, - "relationships": {
- "shipment": {
- "data": {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa"
}, - "links": {
}
}
}
}
}
(Un)Archive tracking requests and their related shipment.
successful operation
Bad request
Unable to process request
Internal Server Error
{- "data": {
- "type": "tracking_request_archive",
- "attributes": {
- "list": [
- "01hkz69f0m9vxcmgpyrq50dfsg"
]
}
}
}
{- "errors": [
- {
- "status": 400,
- "code": "DATA_VALIDATION_FAILED",
- "description": "Data validation failed",
- "source": {
- "pointer": "/data/0/attributes/scac"
}
}
]
}
Retrieve a list of your shipments.
The list can be filtered by reference number, scac, tags, departure and arrival date range, origin and destination port.
object Structure that can be used as payload when calling the Shipment list endpoint. |
successful operation
Internal Server Error
const request = require('request'); const options = { method: 'GET', url: 'https://api.kpler.com/v1/logistics/containers/shipments', qs: {filter: { scac: ['TXZJ', 'LMCU'] }}, headers: {'X-Container-API-Key': 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); });
{- "data": [
- {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa",
- "attributes": {
- "referenceNumberType": "container",
- "referenceNumber": "MEDUPE268513",
- "carrier": {
- "scac": "MEDU",
- "name": "Maersk Line"
}, - "tags": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "label": "Tag one"
}
], - "owned": true,
- "created": "2024-01-01T00:00:00.000Z"
}, - "relationships": {
- "trackingRequest": {
- "data": {
- "type": "tracking_request",
- "trackingRequestId": "01hkz69f0m9vxcmgpyrq50dfsg"
}, - "links": {
}
}
},
}
], - "links": {
}
}
Retrieve a specific shipment and a comprehensive summary of all associated information.
successful operation
Bad request
Shipment not found
Unable to process request
Internal Server Error
const request = require('request'); const options = { method: 'GET', url: 'https://api.kpler.com/v1/logistics/containers/shipments/%7BshipmentId%7D', headers: {'X-Container-API-Key': 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); });
{- "data": {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa",
- "attributes": {
- "referenceNumberType": "container",
- "referenceNumber": "MEDUPE268513",
- "carrier": {
- "scac": "MEDU",
- "name": "Maersk Line"
}, - "transportationStatus": "booked",
- "containers": [
- {
- "id": "01hnahef5ym5x2jfndgma4kc6q",
- "number": "HLXU1234567",
- "isoCode": "22G1",
- "type": "General purpose container",
- "size": {
- "length": 20,
- "height": 8.6
}
}
], - "insights": {
- "arrivalDelayDays": 3,
- "rollover": [
- {
- "initialVessel": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "name": "Madrid Maersk",
- "imo": 9778791,
- "mmsi": 219836000
}, - "newVessel": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "name": "Madrid Maersk",
- "imo": 9778791,
- "mmsi": 219836000
}, - "atPort": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": null,
- "name": null,
- "smdg": null,
- "operator": null
}
}, - "detectedAt": "2024-01-01T00:00:00.000Z",
- "initialDepartureDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "localTimeOffset": -3
}, - "newDepartureDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "localTimeOffset": -3
}
}
], - "portOfLoadingChange": [
- {
- "initialPort": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": null,
- "name": null,
- "smdg": null,
- "operator": null
}
}, - "newPort": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": null,
- "name": null,
- "smdg": null,
- "operator": null
}
}, - "detectedAt": "2024-01-01T00:00:00.000Z",
- "initialDepartureDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "localTimeOffset": -3
}, - "newDepartureDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "localTimeOffset": -3
}
}
], - "portOfDischargeChange": [
- {
- "initialPort": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": null,
- "name": null,
- "smdg": null,
- "operator": null
}
}, - "newPort": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": null,
- "name": null,
- "smdg": null,
- "operator": null
}
}, - "detectedAt": "2024-01-01T00:00:00.000Z",
- "initialArrivalDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "localTimeOffset": -3
}, - "newArrivalDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "localTimeOffset": -3
}
}
], - "initialCarrierEta": "2021-01-01T00:00:00Z"
}, - "portOfLoading": {
- "port": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "name": "Piraeus Container terminal",
- "smdg": null,
- "operator": null
}
}, - "departureDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "status": "actual",
- "localTimeOffset": -3
}, - "loadingVessel": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "name": "Madrid Maersk",
- "imo": 9778791,
- "mmsi": 219836000
}, - "voyageNumber": "123A"
}, - "portsOfTransshipment": [
- {
- "port": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "name": "Piraeus Container terminal",
- "smdg": null,
- "operator": null
}
}, - "arrivalDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "status": "actual",
- "localTimeOffset": -3
}, - "departureDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "status": "actual",
- "localTimeOffset": -3
}, - "loadingVessel": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "name": "Madrid Maersk",
- "imo": 9778791,
- "mmsi": 219836000
}, - "voyageNumber": "123A",
- "sequenceNumber": 1
}
], - "portOfDischarge": {
- "port": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "name": "Piraeus Container terminal",
- "smdg": null,
- "operator": null
}
}, - "arrivalDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "status": "actual",
- "localTimeOffset": -3
}
}, - "currentVessel": {
- "operationalStatus": "slow_steaming_open_sea",
- "latestPosition": {
- "lat": 12.3456,
- "lon": 78.9012,
- "geographicalArea": "Mediterranean",
- "heading": 90,
- "speed": 12.5
}, - "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "name": "Madrid Maersk",
- "imo": 9778791,
- "mmsi": 219836000
}, - "tags": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "label": "Tag one"
}
], - "owned": true,
- "updated": "2024-01-01T00:00:00.000Z",
- "created": "2024-01-01T00:00:00.000Z"
}, - "relationships": {
- "trackingRequest": {
- "data": {
- "type": "tracking_request",
- "trackingRequestId": "01hkz69f0m9vxcmgpyrq50dfsg"
}, - "links": {
}
}
},
}, - "meta": {
}
}
Retrieve all milestones, locations and vessels associated with a specific shipment.
successful operation
Bad request
Shipment not found
Unable to process request
Internal Server Error
const request = require('request'); const options = { method: 'GET', url: 'https://api.kpler.com/v1/logistics/containers/shipments/%7BshipmentId%7D/transportation-timeline', headers: {'X-Container-API-Key': 'REPLACE_KEY_VALUE'} }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(body); });
{- "data": {
- "type": "transportation-timeline",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa",
- "attributes": {
- "containers": [
- {
- "id": "01hnahef5ym5x2jfndgma4kc6q",
- "number": "HLXU1234567",
- "isoCode": "22G1",
- "type": "General purpose container",
- "size": {
- "length": 20,
- "height": 8.6
}
}
], - "equipmentEvents": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "equipmentEventTypeName": "load",
- "eventClassifierCode": "actual",
- "equipmentReference": [
- "01hnahef5ym5x2jfndgma4kc6q"
], - "eventDateTime": "2024-01-01T00:00:00.000Z",
- "locationId": "01hkz69f0m9vxcmgpyrq50dfsg",
- "vesselId": "01hkz69f0m9vxcmgpyrq50dfsg",
- "modeOfTransport": "maritime_transport",
- "equipmentEmptyIndicator": "laden",
- "eventOrder": 1
}
], - "locations": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "type": "port_of_Loading",
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "localTimeOffset": -3,
- "terminal": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "name": "Piraeus Container terminal",
- "smdg": null,
- "operator": null
}
}
], - "transportEvents": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "transportEventTypeName": "departure",
- "eventClassifierCode": "actual",
- "eventDateTime": "2024-01-01T00:00:00.000Z",
- "locationId": "01hkz69f0m9vxcmgpyrq50dfsg",
- "vesselId": "01hkz69f0m9vxcmgpyrq50dfsg",
- "modeOfTransport": "maritime_transport",
- "eventOrder": 1
}
], - "vessels": [
- {
- "voyageNumber": "123A",
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "name": "Madrid Maersk",
- "imo": 9778791,
- "mmsi": 219836000
}
]
},
}, - "meta": {
}
}
successful operation
Bad request
Shipment not found
Unable to process request
Internal Server Error
{- "data": [
- {
- "type": "tag",
- "attributes": {
- "name": "tag 1"
}
}
]
}
{- "data": {
- "shipmentTags": [
- {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa",
- "attributes": {
- "name": "tag 1"
}
}
]
}
}
successful operation
Bad request
Shipment not found
Unable to process request
Internal Server Error
{- "data": [
- {
- "type": "tag",
- "attributes": {
- "name": "tag 1"
}
}
]
}
{- "data": {
- "shipmentTags": [
- {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa",
- "attributes": {
- "name": "tag 1"
}
}
]
}
}
successful operation
Bad request
Shipment not found
Unable to process request
Internal Server Error
{- "data": [
- {
- "type": "tag",
- "attributes": {
- "name": "tag 1"
}
}
]
}
{- "data": {
- "shipmentTags": [
- {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa",
- "attributes": {
- "name": "tag 1"
}
}
]
}
}
The Webhook API enables your system to subscribe to specific container tracking events and receive realtime updates about them. The current version supports the following events:
To begin using the Webhook API, follow these steps:
Important: Only one URL is supported per user in the current version, and all events will be pushed to this URL.
To ensure that the events you receive are from the Webhook API and not from unauthorized sources, we recommend the following security measures:
In the event that your system cannot process a webhook request, ensure your endpoint responds with a 500
HTTP status code.
The system will attempt a limited number of retries in case of failures.
The event is triggered when the shipment has been updated.
The webhook includes the new version of the shipment.
required | object |
required | Array of objects (Shipment) |
Return a 200 status to indicate that the data was received successfully.
Return a 500 status to indicate that the data was not received successfully.
{- "data": {
- "type": "webhook_event",
- "id": "01j7k957597bmt6x9t6v4nh1gk",
- "attributes": {
- "eventType": "shipment_updated",
- "status": "success",
- "createdAt": "2024-09-13T12:10:00Z"
}, - "relationships": {
- "trackingRequest": {
- "data": {
- "type": "tracking_request",
- "id": "01j7k957597bmt6x9t6v4nh1gc"
},
}, - "shipment": {
- "data": {
- "type": "shipment",
- "id": "01j7k95jfkft4bkd6adnf8hwtp"
}, - "links": {
}
}
}
}, - "included": [
- {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa",
- "attributes": {
- "referenceNumberType": "container",
- "referenceNumber": "MEDUPE268513",
- "carrier": {
- "scac": "MEDU",
- "name": "Maersk Line"
}, - "transportationStatus": "booked",
- "containers": [
- {
- "id": "01hnahef5ym5x2jfndgma4kc6q",
- "number": "HLXU1234567",
- "isoCode": "22G1",
- "type": "General purpose container",
- "size": {
- "length": 20,
- "height": 8.6
}
}
], - "insights": {
- "arrivalDelayDays": 3,
- "rollover": [
- {
- "initialVessel": {
- "id": null,
- "mtId": null,
- "name": null,
- "imo": null,
- "mmsi": null
}, - "newVessel": {
- "id": null,
- "mtId": null,
- "name": null,
- "imo": null,
- "mmsi": null
}, - "atPort": {
- "id": null,
- "mtId": null,
- "unlocode": null,
- "name": null,
- "country": null,
- "lat": null,
- "lon": null,
- "terminal": null
}, - "detectedAt": "2024-01-01T00:00:00.000Z",
- "initialDepartureDate": {
- "timestamp": null,
- "localTimeOffset": null
}, - "newDepartureDate": {
- "timestamp": null,
- "localTimeOffset": null
}
}
], - "portOfLoadingChange": [
- {
- "initialPort": {
- "id": null,
- "mtId": null,
- "unlocode": null,
- "name": null,
- "country": null,
- "lat": null,
- "lon": null,
- "terminal": null
}, - "newPort": {
- "id": null,
- "mtId": null,
- "unlocode": null,
- "name": null,
- "country": null,
- "lat": null,
- "lon": null,
- "terminal": null
}, - "detectedAt": "2024-01-01T00:00:00.000Z",
- "initialDepartureDate": {
- "timestamp": null,
- "localTimeOffset": null
}, - "newDepartureDate": {
- "timestamp": null,
- "localTimeOffset": null
}
}
], - "portOfDischargeChange": [
- {
- "initialPort": {
- "id": null,
- "mtId": null,
- "unlocode": null,
- "name": null,
- "country": null,
- "lat": null,
- "lon": null,
- "terminal": null
}, - "newPort": {
- "id": null,
- "mtId": null,
- "unlocode": null,
- "name": null,
- "country": null,
- "lat": null,
- "lon": null,
- "terminal": null
}, - "detectedAt": "2024-01-01T00:00:00.000Z",
- "initialArrivalDate": {
- "timestamp": null,
- "localTimeOffset": null
}, - "newArrivalDate": {
- "timestamp": null,
- "localTimeOffset": null
}
}
], - "initialCarrierEta": "2021-01-01T00:00:00Z"
}, - "portOfLoading": {
- "port": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "name": "Piraeus Container terminal",
- "smdg": null,
- "operator": null
}
}, - "departureDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "status": "actual",
- "localTimeOffset": -3
}, - "loadingVessel": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "name": "Madrid Maersk",
- "imo": 9778791,
- "mmsi": 219836000
}, - "voyageNumber": "123A"
}, - "portsOfTransshipment": [
- {
- "port": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": null,
- "name": null,
- "smdg": null,
- "operator": null
}
}, - "arrivalDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "status": "actual",
- "localTimeOffset": -3
}, - "departureDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "status": "actual",
- "localTimeOffset": -3
}, - "loadingVessel": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "name": "Madrid Maersk",
- "imo": 9778791,
- "mmsi": 219836000
}, - "voyageNumber": "123A",
- "sequenceNumber": 1
}
], - "portOfDischarge": {
- "port": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "unlocode": "GRPIR",
- "name": "Piraeus",
- "country": "Greece",
- "lat": -19.88327,
- "lon": 5.713717,
- "terminal": {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "name": "Piraeus Container terminal",
- "smdg": null,
- "operator": null
}
}, - "arrivalDate": {
- "timestamp": "2024-01-01T00:00:00.000Z",
- "status": "actual",
- "localTimeOffset": -3
}
}, - "currentVessel": {
- "operationalStatus": "slow_steaming_open_sea",
- "latestPosition": {
- "lat": 12.3456,
- "lon": 78.9012,
- "geographicalArea": "Mediterranean",
- "heading": 90,
- "speed": 12.5
}, - "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "mtId": 12345,
- "name": "Madrid Maersk",
- "imo": 9778791,
- "mmsi": 219836000
}, - "tags": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "label": "Tag one"
}
], - "owned": true,
- "updated": "2024-01-01T00:00:00.000Z",
- "created": "2024-01-01T00:00:00.000Z"
}, - "relationships": {
- "trackingRequest": {
- "data": {
- "type": "tracking_request",
- "trackingRequestId": "01hkz69f0m9vxcmgpyrq50dfsg"
}, - "links": {
}
}
},
}
]
}
The event is triggered when your tracking request has been successfully processed and the underlying shipment has been successfully created.
required | object |
required | Array of objects (TrackingRequest) |
Return a 200 status to indicate that the data was received successfully.
Return a 500 status to indicate that the data was not received successfully.
{- "data": {
- "type": "webhook_event",
- "id": "01j7k957597bmt6x9t6v4nh1gk",
- "attributes": {
- "eventType": "tracking_request_succeeded",
- "status": "success",
- "createdAt": "2024-09-13T12:10:00Z"
}, - "relationships": {
- "trackingRequest": {
- "data": {
- "type": "tracking_request",
- "id": "01j7k957597bmt6x9t6v4nh1gc"
},
}, - "shipment": {
- "data": {
- "type": "shipment",
- "id": "01j7k95jfkft4bkd6adnf8hwtp"
}, - "links": {
}
}
}
}, - "included": [
- {
- "type": "tracking_request",
- "trackingRequestId": "01hkz69f0m9vxcmgpyrq50dfsg",
- "attributes": {
- "referenceNumberType": "container",
- "referenceNumber": "MEDUPE268513",
- "carrier": {
- "scac": "MEDU",
- "name": "Maersk Line"
}, - "status": "success",
- "failed_reason": null,
- "tags": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "label": "Tag one"
}
], - "owned": true,
- "created": "2024-01-01T00:00:00.000Z"
}, - "relationships": {
- "shipment": {
- "data": {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa"
}, - "links": {
}
}
}
}
]
}
The event is triggered when your tracking request has failed. It contains details about the failing reason.
required | object |
required | Array of objects (TrackingRequest) |
Return a 200 status to indicate that the data was received successfully.
Return a 500 status to indicate that the data was not received successfully.
{- "data": {
- "type": "webhook_event",
- "id": "01j7k957597bmt6x9t6v4nh1gk",
- "attributes": {
- "eventType": "tracking_request_failed",
- "status": "failed",
- "createdAt": "2024-09-13T12:10:00Z"
}, - "relationships": {
- "trackingRequest": {
- "data": {
- "type": "tracking_request",
- "id": "01j7k957597bmt6x9t6v4nh1gc"
},
}
}
}, - "included": [
- {
- "type": "tracking_request",
- "trackingRequestId": "01hkz69f0m9vxcmgpyrq50dfsg",
- "attributes": {
- "referenceNumberType": "container",
- "referenceNumber": "MEDUPE268513",
- "carrier": {
- "scac": "MEDU",
- "name": "Maersk Line"
}, - "status": "success",
- "failed_reason": null,
- "tags": [
- {
- "id": "01hkz69f0m9vxcmgpyrq50dfsg",
- "label": "Tag one"
}
], - "owned": true,
- "created": "2024-01-01T00:00:00.000Z"
}, - "relationships": {
- "shipment": {
- "data": {
- "type": "shipment",
- "shipmentId": "01j0qv3jmyete3zwe08nn2dzpa"
}, - "links": {
}
}
}
}
]
}
GET /terminal-congestions
to get insights on terminal congestion.DEVELOPER NOTICE | CODEGEN IMPACT
This documentation update may impact generated client libraries.
Please regenerate your SDKs to ensure compatibility.
shipping/schedule-events
endpoint.DEVELOPER NOTICE | CODEGEN IMPACT
This documentation fix may impact generated client libraries.
Please regenerate your SDKs to ensure compatibility.
equipmentEventTypeName
enum: customs_released
, customs_selected_for_inspection
, customs_selected_for_scan
, inspected
, received
.filter[unlocode]
example for the shipping/schedule-events
endpoint.DEVELOPER NOTICE | CODEGEN IMPACT
This documentation fix may impact generated client libraries.
Please regenerate your SDKs to ensure compatibility.
shipping/schedule-events
endpoint.included
attribute in the shipping/schedule-events
endpoint.Reset documentation version to 1.0.0 to align with the API version (/v1/). No change in functionality.
DEVELOPER NOTICE | CODEGEN IMPACT
This documentation fix may impact generated client libraries.
Please regenerate your SDKs to ensure compatibility.
portOfTranshipment
to portsOfTransshipment
in the GET /shipments/{shipmentId}
endpoint to match the actual API response.https://api.kpler.com/v1/logistics/containers
GET /shipping/schedule-events
https://api.kpler.com/v1/logistics/containers
X-Container-API-Key
The following items are deprecated.
https://api.kpler.com/v1/logistics/container-tracking
X-Container-Tracking-API-Key
IMPORTANT | MIRATION ACTION REQUIRED We encourage you to migrate to the new server URL and API key header defined above as soon as possible. The old server URL and API key header remain functional. We have not set a removal date yet.