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, avgStayTimecongestionIndex, vesselsWaitingid, smdgCodeid, unlocodeResults 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
}
}
]
}Retrieve a list of shipping calls with vessel call data including waiting times, arrival and departure details.
The list can be filtered using the following filter groups:
statuswaitingTime, stayTimewaitingStart.timestampUtcarrival.timestampUtcdeparture.timestampUtcid, imo, mmsi, name, teuCapacityid, name, smdgCodeid, unlocode, nameResults are paginated with 50 entries per page.
A list of shipping call data
Validation error
Internal Server Error
const axios = require('axios'); const API_KEY = 'API_KEY'; const params = { 'filter[status]': 'ongoing', 'filter[metrics.waitingTime][gte]': 10, 'filter[metrics.stayTime][lte]': 50, 'filter[vessel.name][contains]': 'EMPIRE', 'filter[port.unlocode]': ['DEHAM', 'BEANR'], include: 'vessels,ports,terminals' }; axios.get('https://api.kpler.com/v1/logistics/containers/shipping/calls', { 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": "call",
- "id": "01K85HN2P605KHDZCG95NG25GG",
- "attributes": {
- "status": "ongoing",
- "metrics": {
- "waitingTime": 12.3,
- "stayTime": 24.6
}, - "waitingStart": {
- "timestampUtc": "2025-01-01T00:00:00Z",
- "timestampLocal": "2025-01-01T00:01:00+01:00"
}, - "arrival": {
- "status": "PLANNED",
- "timestampUtc": "2025-01-01T00:00:00Z",
- "timestampLocal": "2025-01-01T00:01:00+01:00",
- "services": [
- {
- "code": "JSX",
- "carrierScac": "CMDU"
}
]
}, - "departure": {
- "status": "PLANNED",
- "timestampUtc": "2025-01-01T00:00:00Z",
- "timestampLocal": "2025-01-01T00:01:00+01:00",
- "services": [
- {
- "code": "JSX",
- "carrierScac": "CMDU"
}
]
}, - "lastUpdatedAt": "2025-01-01T00:00:00Z"
}, - "relationships": {
- "vessel": {
- "data": {
- "type": "vessel",
- "id": 123
}
}, - "terminal": {
- "data": {
- "type": "terminal",
- "id": 123
}
}, - "port": {
- "data": {
- "type": "port",
- "id": 456
}
}
}
}
], - "links": {
}, - "included": [
- {
- "type": "vessel",
- "id": 4838690,
- "attributes": {
- "imo": "9778791",
- "name": "Madrid Maersk",
- "mmsi": 219836000,
- "teuCapacity": 1400,
- "latestPosition": {
- "lat": 53.5076,
- "lon": 9.9373,
- "heading": 357,
- "speed": 0,
- "geographicalArea": "Elbe River",
- "lastUpdatedAt": "2025-10-22T01:41:37Z"
}
}
}
]
}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 /shipping/calls to get insights about container vessel calls./shipping/schedule-events - it will remain in operation for a while, but going forward using /shipping/calls is advised.DEVELOPER NOTICE | CODEGEN IMPACT
This documentation fix may impact generated client libraries.
Please regenerate your SDKs to ensure compatibility.
VesselResource object.invalid_date from the TerminalCongestionsValidationErrorResponse object.utc_date_time_format_invalid to the TerminalCongestionsValidationErrorResponse object.filter[terminal.name] to the /terminal-congestions endpoint.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/containersGET /shipping/schedule-eventshttps://api.kpler.com/v1/logistics/containersX-Container-API-KeyThe following items are deprecated.
https://api.kpler.com/v1/logistics/container-trackingX-Container-Tracking-API-KeyIMPORTANT | 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.