Get Shipment Information
Our Shipment Tracking APIs are designed to be used in an asynchronous manner. This means that a behavior or functionality may not be immediately available upon submission to our API because our system processes data asynchronously.
For more information about how to use the specific endpoints and features, please consult our user guide and API Reference documentation.
Get Events Data for a Shipment
Get information about shipment milestones (events) that have occurred and are planned to occur.
Requirements
Have the following information available:
- Master Shipment ID (this is the
id
returned in the200 OK
response during shipment creation).
Workflow
Complete these steps:
Prepare a
GET
request to /api/v4/shipments/{shipmentId}/eventhistory and include the Master Shipment ID. For example:GET /api/v4/shipments/93294f58-f87a-48e0-9f68-7d3f6e0aaa2f/eventhistory
.To return stop information in the response, include the includeRouteInfo query parameter in your request. For example,
GET /api/v4/shipments/sample-p44-id-11111/eventhistory?includeRouteInfo=true
Send the request.
Expected System Response
The request is successfully submitted and confirmed when a 200 OK
response is received.
{ "shipment": { "id": "dafa148e-32b4-4722-9edf-43b540424042", "createdDateTime": "2025-07-07T16:55:07+0000", "identifiers": [ { "type": "FLIGHT_NUMBER", "value": "QR8405" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "FLIGHT_NUMBER", "value": "QR8201" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "CARRIER_IATA", "value": "QR" }, { "type": "CARRIER_ICAO", "value": "QTR" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" } ], "attributes": [ { "name": "Parent Carrier Name", "values": [ "TCI TRUCKING", "WILSON" ] }, { "name": "Master Air Waybill", "values": [ "152-12345678" ] }, { "name": "Mode", "values": [ "AIR" ] }, { "name": "Parent Carrier/Polaris Carrier Code", "values": [ "WSOG" ] } ], "shipmentShareLink": "https://movement.project44.com/share/ac19a0c4-11df-4c1f-9f5b-eaa54b105413", "lastModifiedDateTime": "2025-07-10T06:59:12+0000", "plan": { "expectedTransportationModes": [ "AIR" ] }, "routeInfo": { "stops": [ { "id": "c7946844-12ce-4f87-b033-8008b8c44b94", "type": "ORIGIN", "location": { "id": "245d0c7f-1c96-4581-ad20-065c7e6dcd7d", "name": "Hong Kong International Airport", "identifiers": [ { "type": "NAME", "value": "Hong Kong International Airport" }, { "type": "AIRPORT_ICAO", "value": "VHHH" }, { "type": "AIRPORT_IATA", "value": "HKG" } ], "address": { "addressLines": [ "Hong Kong International Airport" ], "city": "Hong Kong", "country": "HK" }, "coordinates": { "latitude": 22.3089, "longitude": 113.915 }, "timeZone": "Asia/Hong_Kong", "masterLocationId": "70f9bf1a-2aa5-46ce-9854-910aac3774cf" } }, { "id": "fe972955-2783-4ab7-982e-466eb2f198a0", "type": "AIRPORT", "location": { "id": "bcfee4c6-cd3f-47de-9d7a-694d35be06a5", "name": "Hamad International Airport", "identifiers": [ { "type": "NAME", "value": "Hamad International Airport" }, { "type": "AIRPORT_ICAO", "value": "OTHH" }, { "type": "AIRPORT_IATA", "value": "DOH" } ], "address": { "addressLines": [ "Hamad International Airport" ], "city": "Doha", "country": "QA" }, "coordinates": { "latitude": 25.273056, "longitude": 51.608055 }, "timeZone": "Asia/Qatar" } }, { "id": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "type": "DESTINATION", "location": { "id": "f6520258-2240-430c-a111-2b7eb8c12e82", "name": "Amsterdam Airport Schiphol", "identifiers": [ { "type": "NAME", "value": "Amsterdam Airport Schiphol" }, { "type": "AIRPORT_IATA", "value": "AMS" }, { "type": "AIRPORT_ICAO", "value": "EHAM" } ], "address": { "addressLines": [ "Amsterdam Airport Schiphol" ], "city": "Amsterdam", "country": "NL" }, "coordinates": { "latitude": 52.3086, "longitude": 4.76389 }, "timeZone": "Europe/Amsterdam" } } ], "routeSegments": [ { "id": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "fromStopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "toStopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "transportationMode": "AIR", "identifiers": [ { "type": "AIRCRAFT_ICAO", "value": "B772" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "FLIGHT_NUMBER", "value": "QR8405" } ], "emissions": { "distance": { "value": 6290.44, "unit": "KM" } } }, { "id": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "fromStopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "toStopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "transportationMode": "AIR", "identifiers": [ { "type": "AIRCRAFT_ICAO", "value": "B772" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "FLIGHT_NUMBER", "value": "QR8201" } ], "emissions": { "distance": { "value": 4924.53, "unit": "KM" } } } ] }, "states": [ { "type": "SCHEDULED", "startDateTime": "2025-07-07T16:55:07+0000", "endDateTime": "2025-07-07T17:58:00+0000" }, { "type": "AT_STOP", "startDateTime": "2025-07-07T17:58:00+0000", "endDateTime": "2025-07-08T04:57:00+0000", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4" }, { "type": "IN_TRANSIT", "startDateTime": "2025-07-08T05:37:00+0000", "endDateTime": "2025-07-08T05:39:00+0000", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4" }, { "type": "AT_STOP", "startDateTime": "2025-07-08T05:39:00+0000", "endDateTime": "2025-07-08T10:55:00+0000", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94" }, { "type": "AT_STOP", "startDateTime": "2025-07-08T10:55:00+0000", "endDateTime": "2025-07-08T13:25:00+0000", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0" }, { "type": "AT_STOP", "startDateTime": "2025-07-08T13:25:00+0000", "endDateTime": "2025-07-08T18:37:00+0000", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4" }, { "type": "AT_STOP", "startDateTime": "2025-07-08T18:37:00+0000", "endDateTime": "2025-07-09T07:18:00+0000", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884" }, { "type": "IN_TRANSIT", "startDateTime": "2025-07-09T07:18:00+0000", "endDateTime": "2025-07-09T13:39:00+0000", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884" }, { "type": "AT_STOP", "startDateTime": "2025-07-09T13:39:00+0000", "endDateTime": "2025-07-10T06:18:00+0000", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884" }, { "type": "COMPLETED", "startDateTime": "2025-07-10T06:18:00+0000", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884" } ], "events": [ { "dateTime": "2025-07-07T16:55:07+0000", "receivedDateTime": "2025-07-07T16:55:07+0000", "id": "e4698d80-645a-4822-8900-38454de2efe9", "type": "TRACKING_INITIATE", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-07T16:55:07+0000", "lastModifiedDateTime": "2025-07-07T16:55:07+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-07T16:55:51+0000", "receivedDateTime": "2025-07-07T16:55:51+0000", "id": "f8573140-46a6-4c85-8a94-0aaf636e53e4", "type": "TRACKING_START", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-07T16:55:51+0000", "lastModifiedDateTime": "2025-07-07T16:55:51+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-07T17:58:00+0000", "receivedDateTime": "2025-07-07T18:59:32+0000", "id": "1d245e55-81c1-4500-a5c6-57496de194d7", "type": "READY_FOR_CARRIAGE", "description": "Freight approved as ready for carriage at origin airport HKG", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-07T17:58:00+0000", "lastModifiedDateTime": "2025-07-07T18:59:32+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T04:57:00+0000", "receivedDateTime": "2025-07-07T16:55:51+0000", "id": "ebf817d4-9600-4d72-b67c-0678d01ee600", "type": "FLIGHT_BOOKING", "description": "Booking on flight QR8405 from HKG to DOH", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T04:57:00+0000", "lastModifiedDateTime": "2025-07-07T16:55:51+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T05:28:00+0000", "receivedDateTime": "2025-07-07T16:55:51+0000", "id": "703c77a7-07bb-4b14-b1c6-4abbec0bbed9", "type": "FLIGHT_BOOKING", "description": "Booking on flight QR8201 from DOH to AMS", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T05:28:00+0000", "lastModifiedDateTime": "2025-07-07T16:55:51+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T05:37:00+0000", "receivedDateTime": "2025-07-08T05:45:43+0000", "id": "41de371a-66f5-45df-9722-6d0dde928f38", "type": "DEPARTURE_FROM_STOP", "description": "Departure from airport HKG on flight QR8405", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "plannedDateTime": "2025-07-08T05:37:00+0000", "dateTimes": [ { "type": "PLANNED", "dateTime": "2025-07-08T05:37:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:43+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ACTUAL", "dateTime": "2025-07-08T05:37:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:43+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T05:39:00+0000", "receivedDateTime": "2025-07-07T16:55:51+0000", "id": "e0c8f705-ee5c-4272-88dc-15068078acc9", "type": "ISSUE_FREIGHT_BILL", "description": "Electric shipment information received correctly by airline", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T05:39:00+0000", "lastModifiedDateTime": "2025-07-07T16:55:51+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T10:55:00+0000", "receivedDateTime": "2025-07-08T10:46:48+0000", "id": "d9b9d2e8-8624-494c-996c-738597216556", "type": "ISSUE_FREIGHT_BILL", "description": "Electric shipment information received correctly by airline", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T10:55:00+0000", "lastModifiedDateTime": "2025-07-08T10:46:48+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T13:25:00+0000", "receivedDateTime": "2025-07-08T06:47:24+0000", "id": "dc719839-a029-4c9e-b8c7-5893a330d0e7", "type": "ARRIVAL_AT_STOP", "description": "Arrival at airport DOH on flight QR8405", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "plannedDateTime": "2025-07-08T13:29:00+0000", "dateTimes": [ { "type": "PLANNED", "dateTime": "2025-07-08T13:29:00+0000", "lastModifiedDateTime": "2025-07-08T06:47:24+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ACTUAL", "dateTime": "2025-07-08T13:25:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:43+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T15:06:00+0000", "receivedDateTime": "2025-07-08T15:14:13+0000", "id": "f9e32a5a-c8fc-490e-a260-cd166904d9e4", "type": "RECEIVE_FROM_CARRIER", "description": "Freight check into warehouse at destination airport DOH", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T15:06:00+0000", "lastModifiedDateTime": "2025-07-08T15:14:13+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T18:37:00+0000", "receivedDateTime": "2025-07-08T20:02:36+0000", "id": "3c62bb21-a325-451f-8af8-08b742d8eda6", "type": "MANIFEST", "description": "Freight requested by airline to be loaded by ground-handler at airport DOH", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T18:37:00+0000", "lastModifiedDateTime": "2025-07-08T20:02:36+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T07:18:00+0000", "receivedDateTime": "2025-07-08T05:45:42+0000", "id": "7cb73cb0-eba7-4f76-becc-725971a451a2", "type": "DEPARTURE_FROM_STOP", "description": "Departure from airport DOH on flight QR8201", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "estimateDateTime": "2025-07-09T07:15:04+0000", "estimateLastCalculatedDateTime": "2025-07-08T05:45:42+0000", "plannedDateTime": "2025-07-09T07:15:00+0000", "dateTimes": [ { "type": "PLANNED", "dateTime": "2025-07-09T07:15:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:42+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ACTUAL", "dateTime": "2025-07-09T07:18:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:42+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ESTIMATE", "dateTime": "2025-07-09T07:15:04+0000", "lastModifiedDateTime": "2025-07-08T05:45:42+0000", "source": "P44", "sourceIdentifiers": [ { "type": "REFERENCE_NUMBER", "value": "4" } ], "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T13:39:00+0000", "receivedDateTime": "2025-07-09T22:09:23+0000", "id": "22b9d5df-9af0-4b06-b5ee-df74adc17799", "type": "ARRIVAL_AT_STOP", "description": "Arrival at airport AMS on flight QR8201", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-09T13:39:00+0000", "lastModifiedDateTime": "2025-07-09T22:09:23+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T14:57:42+0000", "receivedDateTime": "2025-07-09T14:57:43+0000", "id": "97f60e96-77b6-490b-8a9c-5707219b88e4", "type": "INFO", "description": "Stopped Position Tracking of FLIGHT_NUMBER QR8201 after 24 hours.", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-09T13:39:00+0000", "lastModifiedDateTime": "2025-07-09T14:57:43+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T21:16:00+0000", "receivedDateTime": "2025-07-09T22:09:24+0000", "id": "50434fec-23e0-4322-8360-e3d4b13ce9e2", "type": "RECEIVE_FROM_CARRIER", "description": "Freight check into warehouse at destination airport AMS", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-09T21:16:00+0000", "lastModifiedDateTime": "2025-07-09T22:09:24+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T21:16:00+0000", "receivedDateTime": "2025-07-09T22:09:24+0000", "id": "3f27d7e6-3fed-4075-be6f-379b0f2b3294", "type": "CONSIGNEE_NOTIFY", "description": "Consignee advise of arrival at destination airport AMS", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-09T21:16:00+0000", "lastModifiedDateTime": "2025-07-09T22:09:24+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-10T06:18:00+0000", "receivedDateTime": "2025-07-10T06:59:11+0000", "id": "d7cab7c2-c008-4914-b651-f0fb274ebdf7", "type": "DELIVERY", "description": "Freight collected from carrier at destination airport AMS", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "estimateDateTime": "2025-07-09T13:51:04+0000", "estimateLastCalculatedDateTime": "2025-07-08T05:45:42+0000", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-10T06:18:00+0000", "lastModifiedDateTime": "2025-07-10T06:59:11+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ESTIMATE", "dateTime": "2025-07-09T13:51:04+0000", "lastModifiedDateTime": "2025-07-08T05:45:42+0000", "source": "P44", "sourceIdentifiers": [ { "type": "REFERENCE_NUMBER", "value": "4" } ], "selected": true, "sequence": 1 } ] } ], "exceptions": [ { "definitionId": "e147dfbd-5559-456a-8898-0eea4874e036", "transportationMode": "AIR", "namespace": "ROOT_CAUSE_ANALYSIS", "category": "VISIBILITY_GEOPOSITION_AGGREGATOR", "reason": "NO_POSITION_DATA_FOR_FLIGHT", "status": "RESOLVED", "timeline": [ { "id": "e785f74a-a7d6-4af1-833c-85d723174499", "startDateTime": "2025-07-08T20:57:42+0000", "endDateTime": "2025-07-08T06:47:25+0000", "description": "No position data is available for this flight from the geoposition provider. Affected flight number(s): QR8201", "detail": { "airFlightDetails": { "flightDetails": [ { "flightNumber": "QR8201" } ] } } } ] } ] } }
This is an example of what could be returned in the response. Null fields will not show up in the response. Please refer to the reference data for more information on required and potential null fields.
See the Appendix for descriptions of the Air Shipment Event Types, Air Shipment Expiry Event Types, Air Shipment State Types, and Air Shipment Stop Types returned by this endpoint.
Errors
If there was a problem with your request, you will receive one of the following error codes
400 Invalid request
401 Invalid or missing credentials
403 User not authorized to perform this operation
404 Not Found
See Error Response Codes in the Appendix for more information on the meaning of these error codes.
Field and Objects
The table below describes only the minimum relevant fields returned in the 200 OK response from the GET: Fetch the event history for a shipment endpoint including the includeRouteInfo query parameter.
Field | Description |
---|---|
routeInfo | An overview of the shipment route includes all the necessary IDs for mapping each event to the correct stop and segment of the journey. |
routeInfo.stops | A stop is a set point of the journey that can be an airport or warehouse or hub. Several data fields are used to describe an array of stops as defined in the API. |
routeInfo.stops.id | project44 ID of the stop the event is related to (referenced to as stopId in events payload). |
routeInfo.stops.type | The type of the stop. For descriptions of specific stop types, see Air Stop Types. |
routeInfo.stops.location | An object that consists of the location name, identifiers, and coordinates. |
routeInfo.stops.location.name | The name of the location (e.g. Sydney International Airport) – received by shipping line (no input from customer required). |
routeInfo.stops.location.identifiers | A type:value pair – airports populate with IATA code. |
routeInfo.stops.location.coordinates | The latitude and longitude of the location. |
routeInfo.routeSegments | An array that describes the journey between two stops. |
routeInfo.routeSegments.id | project44 ID of the route segment the event is related to (referenced to as routeSegmentId in events and positions payload) |
routeInfo.routeSegments.fromStopId | project44 ID of where the route segment originates. |
routeInfo.routeSegments.toStopId | project44 ID of where the route segment terminates. |
routeInfo.routeSegments.transportationMode | The mode of transport used for the route segment. |
routeInfo.routeSegments.identifiers | An array that consists of type:value pairs. See Route Segment Identifiers for valid IDs and descriptions. |
events | An array of all events related to the shipment. |
events.dateTime | The time at which the event took place (actual). This will be returned in UTC. |
events.estimateDateTime | project44’s latest estimated time for the event. This will be returned in UTC. |
events.plannedDateTime | The carrier’s latest scheduled time for the event. NOTE: Timestamps related to an event do not currently include contracted time or initial planned time by carrier. This will be returned in UTC. |
events.type | The type of event that occurs. See Air Shipment Event Types and Air Shipment Expiry Event Types for a full list of supported event types and descriptions. |
events.description | A description of the event that occurs (not available for all events) |
events.stopId | The project44 ID of the stop the event is related to. |
events.routeSegmentsId | The project44 ID of the route segment the stop is related to. See Route Segment Identifiers for more information on the specific identifier types. |
events.receivedDateTime | The last time information about event was modified. |
events.estimatedLastCalculatedDateTime | The last time the estimate date time was modified. This will be returned in UTC. |
states | An array of all states the shipment was or currently is in. |
states.type | The specific type of state the shipment was in. Valid values include "UNKNOWN" , "AT_STOP" , "IN_TRANSIT" , "COMPLETED" , "SCHEDULED" . See Air Shipment State Types for a full list of the supported state types and their descriptions. |
states.startDateTime | The time this state began. This will be returned in UTC. |
states.endDateTime | The time that this state ended. May not be populated if the shipment is still in this state. This will be returned in UTC. |
states.stopId | The ID of the related stop.routeSegmentId: the route segment ID this state occurred along. |
Get Position Data for a Shipment
Get information about an air shipment's position history.
Requirements
Have the following information available:
- Master Shipment ID (this is the
id
returned in the200 OK
response during shipment creation).
Workflow
Complete the following steps.
Prepare a
GET
request to /api/v4/shipments/{shipmentId}/positionhistory using the shipment ID. For example,GET /api/v4/shipments/3294f58-f87a-48e0-9f68-7d3f6e0aaa2f/positionhistory
.To return stop information in the response, include the includeRouteInfo query parameter in your request. For example,
GET /api/v4/shipments/sample-p44-id-11111/positionhistory?includeRouteInfo=true
Send the request.
Expected System Response
You have successfully submitted the request when you receive a 200 OK
response.
{ "shipment": { "id": "dafa148e-32b4-4722-9edf-43b540424042", "createdDateTime": "2025-07-07T16:55:07+0000", "identifiers": [ { "type": "FLIGHT_NUMBER", "value": "QR8405" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "FLIGHT_NUMBER", "value": "QR8201" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "CARRIER_IATA", "value": "QR" }, { "type": "CARRIER_ICAO", "value": "QTR" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" } ], "attributes": [ { "name": "Parent Carrier Name", "values": [ "TCI TRUCKING", "WILSON" ] }, { "name": "Master Air Waybill", "values": [ "152-12345678" ] }, { "name": "Mode", "values": [ "AIR" ] }, { "name": "Parent Carrier/Polaris Carrier Code", "values": [ "WSOG" ] } ], "shipmentShareLink": "https://movement.project44.com/share/ac19a0c4-11df-4c1f-9f5b-eaa54b105413", "lastModifiedDateTime": "2025-07-10T06:59:12+0000", "plan": { "expectedTransportationModes": [ "AIR" ] } }, "positions": [ { "dateTime": "2025-07-08T05:58:20+0000", "receivedDateTime": "2025-07-08T06:47:25+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.31085, "longitude": 113.89761 }, { "dateTime": "2025-07-08T06:00:40+0000", "receivedDateTime": "2025-07-08T06:47:25+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.26696, "longitude": 113.76185 }, { "dateTime": "2025-07-08T06:02:08+0000", "receivedDateTime": "2025-07-08T07:21:04+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.18629, "longitude": 113.72063 }, { "dateTime": "2025-07-08T06:02:24+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.16673, "longitude": 113.7295 }, { "dateTime": "2025-07-08T06:04:45+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.04008, "longitude": 113.91769 }, { "dateTime": "2025-07-08T06:06:32+0000", "receivedDateTime": "2025-07-08T07:21:04+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 21.89324, "longitude": 114.04149 }, { "dateTime": "2025-07-08T06:07:34+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 21.77966, "longitude": 114.06315 }, { "dateTime": "2025-07-08T06:10:27+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 21.4414, "longitude": 114.03112 }, { "dateTime": "2025-07-08T06:11:53+0000", "receivedDateTime": "2025-07-08T07:21:05+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 21.29015, "longitude": 113.92955 }, { "dateTime": "2025-07-08T06:14:42+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 21.04376, "longitude": 113.65556 }, { "dateTime": "2025-07-08T06:18:02+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 20.91927, "longitude": 113.18355 }, { "dateTime": "2025-07-08T06:19:22+0000", "receivedDateTime": "2025-07-08T07:21:05+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 20.91015, "longitude": 112.9822 }, { "dateTime": "2025-07-08T06:21:53+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 20.89427, "longitude": 112.60702 }, { "dateTime": "2025-07-08T06:31:33+0000", "receivedDateTime": "2025-07-08T07:21:05+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 20.75182, "longitude": 111.15712 }, { "dateTime": "2025-07-08T06:46:07+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 19.71729, "longitude": 109.2838 }, { "dateTime": "2025-07-08T06:46:07+0000", "receivedDateTime": "2025-07-08T06:47:37+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 19.71729, "longitude": 109.2838 }, { "dateTime": "2025-07-08T06:49:53+0000", "receivedDateTime": "2025-07-08T07:21:05+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 19.38075, "longitude": 108.84572 }, { "dateTime": "2025-07-08T07:02:38+0000", "receivedDateTime": "2025-07-08T07:21:05+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 18.51769, "longitude": 107.31211 } ] }
This is an example of what could be returned in the response. Null fields will not show up in the response. Please refer to the reference data for more information on required and potential null fields.
See the Appendix for descriptions of the Air Shipment Stop Types and Route Segment Identifiers.
Error
If there was a problem with your request, you will receive one of the following error codes
400 Invalid request
401 Invalid or missing credentials
403 User not authorized to perform this operation
404 Not Found
See Error Response Codes in the Appendix for more information on the meaning of these error codes.
Fields and Objects
The table below describes fields returned in the response 200 OK
from the GET: Fetch the position history for a shipment endpoint.
Field | Description |
---|---|
routeInfo | An overview of the shipment route includes all the necessary IDs for mapping each event to the correct stop and segment of the journey. |
routeInfo.stops | A stop is a set point of the journey that can be an airport or warehouse or hub. Several data fields are used to describe an array of stops as defined in the API. |
routeInfo.stops.id | project44 ID of the stop the event is related to (referenced to as stopId in events payload). |
routeInfo.stops.type | The type of the stop. For descriptions of specific stop types, see Air Stop Types. |
routeInfo.stops.location | An object that consists of the location name, identifiers, and coordinates. |
routeInfo.stops.location.name | The name of the location (e.g. Sydney International Airport) – received by shipping line (no input from customer required). |
routeInfo.stops.location.identifiers | A type:value pair – airports populate with IATA code . |
routeInfo.stops.location.coordinates | The latitude and longitude of the location. |
routeInfo.routeSegments | An array that describes the journey between two stops. |
routeInfo.routeSegments.id | project44 ID of the route segment the event is related to (referenced to as routeSegmentId in events and positions payload) |
routeInfo.routeSegments.fromStopId | project44 ID of where the route segment originates. |
routeInfo.routeSegments.toStopId | project44 ID of where the route segment terminates. |
routeInfo.routeSegments.transportatioinMode | The mode of transport used for the route segment. |
routeInfo.routeSegments.identifiers | An array that consists of type:value pairs. See Route Segment Identifiers for valid IDs and descriptions. |
positions | An array of all geo-positions related to the shipment. |
positions.dateTime | The time the recorded position. This will be returned in UTC. |
positions.receivedDateTime | The time the position was received by project44. This will be returned in UTC. |
positions.routeSegmentId | The ID of the route segment the stop is related to. |
positions.latitude | The geographic latitude of the shipment position. |
positions.longitude | The geographic longitude of the shipment position. |
Get a Shipment’s Route History
Get route information (stops and route segments) for an air shipment.
Requirements
Have the following information available:
- Master Shipment ID (this is the
id
returned in the200 OK
response during shipment creation).
Workflow
Complete the following steps.
Prepare a
GET
request to /api/v4/shipments/{shipmentId}/tracking using the Master Shipment ID. For example,GET /api/v4/shipments/93294f58-f87a-48e0-9f68-7d3f6e0aaa2f/tracking
.Send the request.
Expected System Response
You have successfully submitted the request when you receive a 200 OK
response. Here is a sample of the response schema:
{ "id": "dafa148e-32b4-4722-9edf-43b540424042", "createdDateTime": "2025-07-07T16:55:07+0000", "identifiers": [ { "type": "FLIGHT_NUMBER", "value": "QR8405" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "FLIGHT_NUMBER", "value": "QR8201" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "CARRIER_IATA", "value": "QR" }, { "type": "CARRIER_ICAO", "value": "QTR" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" } ], "attributes": [ { "name": "Parent Carrier Name", "values": [ "TCI TRUCKING", "WILSON" ] }, { "name": "Master Air Waybill", "values": [ "152-12345678" ] }, { "name": "Mode", "values": [ "AIR" ] }, { "name": "Parent Carrier/Polaris Carrier Code", "values": [ "WSOG" ] }, { "name": "HAWB", "values": [ "APPHK3028422/2", "APPHK3028425/1", "APPHK3028422", "APPHK3028422/1" ] }, { "name": "Shipment ID", "values": [ "QBC1392773", "QBC1392774", "QBC1465562", "QBC1488211", "QBC1488212", "QBC1479379" ] } ], "shipmentShareLink": "https://movement.project44.com/share/ac19a0c4-11df-4c1f-9f5b-eaa54b105413", "lastModifiedDateTime": "2025-07-10T06:59:12+0000", "plan": { "expectedTransportationModes": [ "AIR" ] }, "routeInfo": { "stops": [ { "id": "c7946844-12ce-4f87-b033-8008b8c44b94", "type": "ORIGIN", "location": { "id": "245d0c7f-1c96-4581-ad20-065c7e6dcd7d", "name": "Hong Kong International Airport", "identifiers": [ { "type": "NAME", "value": "Hong Kong International Airport" }, { "type": "AIRPORT_ICAO", "value": "VHHH" }, { "type": "AIRPORT_IATA", "value": "HKG" } ], "address": { "addressLines": [ "Hong Kong International Airport" ], "city": "Hong Kong", "country": "HK" }, "coordinates": { "latitude": 22.3089, "longitude": 113.915 }, "timeZone": "Asia/Hong_Kong", "masterLocationId": "70f9bf1a-2aa5-46ce-9854-910aac3774cf" } }, { "id": "fe972955-2783-4ab7-982e-466eb2f198a0", "type": "AIRPORT", "location": { "id": "bcfee4c6-cd3f-47de-9d7a-694d35be06a5", "name": "Hamad International Airport", "identifiers": [ { "type": "NAME", "value": "Hamad International Airport" }, { "type": "AIRPORT_ICAO", "value": "OTHH" }, { "type": "AIRPORT_IATA", "value": "DOH" } ], "address": { "addressLines": [ "Hamad International Airport" ], "city": "Doha", "country": "QA" }, "coordinates": { "latitude": 25.273056, "longitude": 51.608055 }, "timeZone": "Asia/Qatar" } }, { "id": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "type": "DESTINATION", "location": { "id": "f6520258-2240-430c-a111-2b7eb8c12e82", "name": "Amsterdam Airport Schiphol", "identifiers": [ { "type": "NAME", "value": "Amsterdam Airport Schiphol" }, { "type": "AIRPORT_IATA", "value": "AMS" }, { "type": "AIRPORT_ICAO", "value": "EHAM" } ], "address": { "addressLines": [ "Amsterdam Airport Schiphol" ], "city": "Amsterdam", "country": "NL" }, "coordinates": { "latitude": 52.3086, "longitude": 4.76389 }, "timeZone": "Europe/Amsterdam" } } ], "routeSegments": [ { "id": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "fromStopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "toStopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "transportationMode": "AIR", "identifiers": [ { "type": "AIRCRAFT_ICAO", "value": "B772" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "FLIGHT_NUMBER", "value": "QR8405" } ], "emissions": { "distance": { "value": 6290.44, "unit": "KM" } } }, { "id": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "fromStopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "toStopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "transportationMode": "AIR", "identifiers": [ { "type": "AIRCRAFT_ICAO", "value": "B772" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "FLIGHT_NUMBER", "value": "QR8201" } ], "emissions": { "distance": { "value": 4924.53, "unit": "KM" } } } ] } }
This is an example of what could be returned in the response. Null fields will not show up in the response. Please refer to the reference data for more information on required and potential null fields.
See the Appendix for descriptions of the Air Shipment Stop Types and Route Segment Identifiers.
Error
If there was a problem with your request, you will receive one of the following error codes
400 Invalid request
401 Invalid or missing credentials
403 User not authorized to perform this operation
404 Not Found
See Error Response Codes in the Appendix for more information on the meaning of these error codes.
Fields and Objects
The table below describes fields returned in the response 200 OK
from the GET: Fetch the position history for a shipment endpoint.
Field | Description |
---|---|
routeInfo | An overview of the shipment route includes all the necessary IDs for mapping each event to the correct stop and segment of the journey. |
routeInfo.stops | A stop is a set point of the journey that can be an airport or warehouse or hub. Several data fields are used to describe an array of stops as defined in the API. |
routeInfo.stops.id | project44 ID of the stop the event is related to (referenced to as stopId in events payload). |
routeInfo.stops.type | The type of the stop. For descriptions of specific stop types, see Air Stop Types. |
routeInfo.stops.location | An object that consists of the location name, identifiers, and coordinates. |
routeInfo.stops.location.name | The name of the location (e.g. Sydney International Airport) – received by shipping line (no input from customer required). |
routeInfo.stops.location.identifiers | A type:value pair – airports populate with IATA code. |
routeInfo.stops.location.coordinates | The latitude and longitude of the location. |
routeInfo.routeSegments | An array that describes the journey between two stops. |
routeInfo.routeSegments.id | project44 ID of the route segment the event is related to (referenced to as routeSegmentId in events and positions payload) |
routeInfo.routeSegments.fromStopId | project44 ID of where the route segment originates. |
routeInfo.routeSegments.toStopId | project44 ID of where the route segment terminates. |
routeInfo.routeSegments.transportatioinMode | The mode of transport used for the route segment. |
routeInfo.routeSegments.identifiers | An array that consists of type:value pairs. See Route Segment Identifiers for valid IDs and descriptions. |
Get Full Shipment History
Get an air shipment's full tracking history including route information and stops, states, events, and positions.
Requirements
Have the following information available:
- Master Shipment ID (this is the id returned in the
200 OK
response during shipment creation).
Workflow
Complete the following steps.
- Prepare a
GET
request to /api/v4/shipments/{shipmentId}/tracking/history using the Master Shipment ID. For example,GET /api/v4/shipments/93294f58-f87a-48e0-9f68-7d3f6e0aaa2f/tracking/history
. - Send the request.
Expected System Response
You have successfully submitted the request when you receive a 200 OK
response. Here is a sample of the response schema:
The request is successfully submitted and confirmed when a 200 OK
response is received.
{ "shipment": { "id": "dafa148e-32b4-4722-9edf-43b540424042", "createdDateTime": "2025-07-07T16:55:07+0000", "identifiers": [ { "type": "FLIGHT_NUMBER", "value": "QR8405" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "FLIGHT_NUMBER", "value": "QR8201" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "CARRIER_IATA", "value": "QR" }, { "type": "CARRIER_ICAO", "value": "QTR" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" } ], "attributes": [ { "name": "Parent Carrier Name", "values": [ "TCI TRUCKING", "WILSON" ] }, { "name": "Master Air Waybill", "values": [ "152-12345678" ] }, { "name": "Mode", "values": [ "AIR" ] }, { "name": "Parent Carrier/Polaris Carrier Code", "values": [ "WSOG" ] } ], "shipmentShareLink": "https://movement.project44.com/share/ac19a0c4-11df-4c1f-9f5b-eaa54b105413", "lastModifiedDateTime": "2025-07-10T06:59:12+0000", "plan": { "expectedTransportationModes": [ "AIR" ] }, "routeInfo": { "stops": [ { "id": "c7946844-12ce-4f87-b033-8008b8c44b94", "type": "ORIGIN", "location": { "id": "245d0c7f-1c96-4581-ad20-065c7e6dcd7d", "name": "Hong Kong International Airport", "identifiers": [ { "type": "NAME", "value": "Hong Kong International Airport" }, { "type": "AIRPORT_ICAO", "value": "VHHH" }, { "type": "AIRPORT_IATA", "value": "HKG" } ], "address": { "addressLines": [ "Hong Kong International Airport" ], "city": "Hong Kong", "country": "HK" }, "coordinates": { "latitude": 22.3089, "longitude": 113.915 }, "timeZone": "Asia/Hong_Kong", "masterLocationId": "70f9bf1a-2aa5-46ce-9854-910aac3774cf" } }, { "id": "fe972955-2783-4ab7-982e-466eb2f198a0", "type": "AIRPORT", "location": { "id": "bcfee4c6-cd3f-47de-9d7a-694d35be06a5", "name": "Hamad International Airport", "identifiers": [ { "type": "NAME", "value": "Hamad International Airport" }, { "type": "AIRPORT_ICAO", "value": "OTHH" }, { "type": "AIRPORT_IATA", "value": "DOH" } ], "address": { "addressLines": [ "Hamad International Airport" ], "city": "Doha", "country": "QA" }, "coordinates": { "latitude": 25.273056, "longitude": 51.608055 }, "timeZone": "Asia/Qatar" } }, { "id": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "type": "DESTINATION", "location": { "id": "f6520258-2240-430c-a111-2b7eb8c12e82", "name": "Amsterdam Airport Schiphol", "identifiers": [ { "type": "NAME", "value": "Amsterdam Airport Schiphol" }, { "type": "AIRPORT_IATA", "value": "AMS" }, { "type": "AIRPORT_ICAO", "value": "EHAM" } ], "address": { "addressLines": [ "Amsterdam Airport Schiphol" ], "city": "Amsterdam", "country": "NL" }, "coordinates": { "latitude": 52.3086, "longitude": 4.76389 }, "timeZone": "Europe/Amsterdam" } } ], "routeSegments": [ { "id": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "fromStopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "toStopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "transportationMode": "AIR", "identifiers": [ { "type": "AIRCRAFT_ICAO", "value": "B772" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "FLIGHT_NUMBER", "value": "QR8405" } ], "emissions": { "distance": { "value": 6290.44, "unit": "KM" } } }, { "id": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "fromStopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "toStopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "transportationMode": "AIR", "identifiers": [ { "type": "AIRCRAFT_ICAO", "value": "B772" }, { "type": "AIRLINE_NAME", "value": "Qatar Airways" }, { "type": "AIR_WAYBILL", "value": "152-12345678" }, { "type": "CARRIER_NAME", "value": "Qatar Airways" }, { "type": "FLIGHT_NUMBER", "value": "QR8201" } ], "emissions": { "distance": { "value": 4924.53, "unit": "KM" } } } ] } }, "states": [ { "type": "SCHEDULED", "startDateTime": "2025-07-07T16:55:07+0000", "endDateTime": "2025-07-07T17:58:00+0000" }, { "type": "AT_STOP", "startDateTime": "2025-07-07T17:58:00+0000", "endDateTime": "2025-07-08T04:57:00+0000", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4" }, { "type": "IN_TRANSIT", "startDateTime": "2025-07-08T05:37:00+0000", "endDateTime": "2025-07-08T05:39:00+0000", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4" }, { "type": "AT_STOP", "startDateTime": "2025-07-08T05:39:00+0000", "endDateTime": "2025-07-08T10:55:00+0000", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94" }, { "type": "AT_STOP", "startDateTime": "2025-07-08T10:55:00+0000", "endDateTime": "2025-07-08T13:25:00+0000", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0" }, { "type": "AT_STOP", "startDateTime": "2025-07-08T13:25:00+0000", "endDateTime": "2025-07-08T18:37:00+0000", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4" }, { "type": "AT_STOP", "startDateTime": "2025-07-08T18:37:00+0000", "endDateTime": "2025-07-09T07:18:00+0000", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884" }, { "type": "IN_TRANSIT", "startDateTime": "2025-07-09T07:18:00+0000", "endDateTime": "2025-07-09T13:39:00+0000", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884" }, { "type": "AT_STOP", "startDateTime": "2025-07-09T13:39:00+0000", "endDateTime": "2025-07-10T06:18:00+0000", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884" }, { "type": "COMPLETED", "startDateTime": "2025-07-10T06:18:00+0000", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884" } ], "events": [ { "dateTime": "2025-07-07T16:55:07+0000", "receivedDateTime": "2025-07-07T16:55:07+0000", "id": "e4698d80-645a-4822-8900-38454de2efe9", "type": "TRACKING_INITIATE", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-07T16:55:07+0000", "lastModifiedDateTime": "2025-07-07T16:55:07+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-07T16:55:51+0000", "receivedDateTime": "2025-07-07T16:55:51+0000", "id": "f8573140-46a6-4c85-8a94-0aaf636e53e4", "type": "TRACKING_START", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-07T16:55:51+0000", "lastModifiedDateTime": "2025-07-07T16:55:51+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-07T17:58:00+0000", "receivedDateTime": "2025-07-07T18:59:32+0000", "id": "1d245e55-81c1-4500-a5c6-57496de194d7", "type": "READY_FOR_CARRIAGE", "description": "Freight approved as ready for carriage at origin airport HKG", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-07T17:58:00+0000", "lastModifiedDateTime": "2025-07-07T18:59:32+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T04:57:00+0000", "receivedDateTime": "2025-07-07T16:55:51+0000", "id": "ebf817d4-9600-4d72-b67c-0678d01ee600", "type": "FLIGHT_BOOKING", "description": "Booking on flight QR8405 from HKG to DOH", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T04:57:00+0000", "lastModifiedDateTime": "2025-07-07T16:55:51+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T05:28:00+0000", "receivedDateTime": "2025-07-07T16:55:51+0000", "id": "703c77a7-07bb-4b14-b1c6-4abbec0bbed9", "type": "FLIGHT_BOOKING", "description": "Booking on flight QR8201 from DOH to AMS", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T05:28:00+0000", "lastModifiedDateTime": "2025-07-07T16:55:51+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T05:37:00+0000", "receivedDateTime": "2025-07-08T05:45:43+0000", "id": "41de371a-66f5-45df-9722-6d0dde928f38", "type": "DEPARTURE_FROM_STOP", "description": "Departure from airport HKG on flight QR8405", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "plannedDateTime": "2025-07-08T05:37:00+0000", "dateTimes": [ { "type": "PLANNED", "dateTime": "2025-07-08T05:37:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:43+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ACTUAL", "dateTime": "2025-07-08T05:37:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:43+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T05:39:00+0000", "receivedDateTime": "2025-07-07T16:55:51+0000", "id": "e0c8f705-ee5c-4272-88dc-15068078acc9", "type": "ISSUE_FREIGHT_BILL", "description": "Electric shipment information received correctly by airline", "stopId": "c7946844-12ce-4f87-b033-8008b8c44b94", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T05:39:00+0000", "lastModifiedDateTime": "2025-07-07T16:55:51+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T10:55:00+0000", "receivedDateTime": "2025-07-08T10:46:48+0000", "id": "d9b9d2e8-8624-494c-996c-738597216556", "type": "ISSUE_FREIGHT_BILL", "description": "Electric shipment information received correctly by airline", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T10:55:00+0000", "lastModifiedDateTime": "2025-07-08T10:46:48+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T13:25:00+0000", "receivedDateTime": "2025-07-08T06:47:24+0000", "id": "dc719839-a029-4c9e-b8c7-5893a330d0e7", "type": "ARRIVAL_AT_STOP", "description": "Arrival at airport DOH on flight QR8405", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "plannedDateTime": "2025-07-08T13:29:00+0000", "dateTimes": [ { "type": "PLANNED", "dateTime": "2025-07-08T13:29:00+0000", "lastModifiedDateTime": "2025-07-08T06:47:24+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ACTUAL", "dateTime": "2025-07-08T13:25:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:43+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T15:06:00+0000", "receivedDateTime": "2025-07-08T15:14:13+0000", "id": "f9e32a5a-c8fc-490e-a260-cd166904d9e4", "type": "RECEIVE_FROM_CARRIER", "description": "Freight check into warehouse at destination airport DOH", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T15:06:00+0000", "lastModifiedDateTime": "2025-07-08T15:14:13+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-08T18:37:00+0000", "receivedDateTime": "2025-07-08T20:02:36+0000", "id": "3c62bb21-a325-451f-8af8-08b742d8eda6", "type": "MANIFEST", "description": "Freight requested by airline to be loaded by ground-handler at airport DOH", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-08T18:37:00+0000", "lastModifiedDateTime": "2025-07-08T20:02:36+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T07:18:00+0000", "receivedDateTime": "2025-07-08T05:45:42+0000", "id": "7cb73cb0-eba7-4f76-becc-725971a451a2", "type": "DEPARTURE_FROM_STOP", "description": "Departure from airport DOH on flight QR8201", "stopId": "fe972955-2783-4ab7-982e-466eb2f198a0", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "estimateDateTime": "2025-07-09T07:15:04+0000", "estimateLastCalculatedDateTime": "2025-07-08T05:45:42+0000", "plannedDateTime": "2025-07-09T07:15:00+0000", "dateTimes": [ { "type": "PLANNED", "dateTime": "2025-07-09T07:15:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:42+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ACTUAL", "dateTime": "2025-07-09T07:18:00+0000", "lastModifiedDateTime": "2025-07-08T05:45:42+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ESTIMATE", "dateTime": "2025-07-09T07:15:04+0000", "lastModifiedDateTime": "2025-07-08T05:45:42+0000", "source": "P44", "sourceIdentifiers": [ { "type": "REFERENCE_NUMBER", "value": "4" } ], "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T13:39:00+0000", "receivedDateTime": "2025-07-09T22:09:23+0000", "id": "22b9d5df-9af0-4b06-b5ee-df74adc17799", "type": "ARRIVAL_AT_STOP", "description": "Arrival at airport AMS on flight QR8201", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-09T13:39:00+0000", "lastModifiedDateTime": "2025-07-09T22:09:23+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T14:57:42+0000", "receivedDateTime": "2025-07-09T14:57:43+0000", "id": "97f60e96-77b6-490b-8a9c-5707219b88e4", "type": "INFO", "description": "Stopped Position Tracking of FLIGHT_NUMBER QR8201 after 24 hours.", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-09T14:57:42+0000", "lastModifiedDateTime": "2025-07-09T14:57:43+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T21:16:00+0000", "receivedDateTime": "2025-07-09T22:09:24+0000", "id": "50434fec-23e0-4322-8360-e3d4b13ce9e2", "type": "RECEIVE_FROM_CARRIER", "description": "Freight check into warehouse at destination airport AMS", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-09T21:16:00+0000", "lastModifiedDateTime": "2025-07-09T22:09:24+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-09T21:16:00+0000", "receivedDateTime": "2025-07-09T22:09:24+0000", "id": "3f27d7e6-3fed-4075-be6f-379b0f2b3294", "type": "CONSIGNEE_NOTIFY", "description": "Consignee advise of arrival at destination airport AMS", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-09T21:16:00+0000", "lastModifiedDateTime": "2025-07-09T22:09:24+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 } ] }, { "dateTime": "2025-07-10T06:18:00+0000", "receivedDateTime": "2025-07-10T06:59:11+0000", "id": "d7cab7c2-c008-4914-b651-f0fb274ebdf7", "type": "DELIVERY", "description": "Freight collected from carrier at destination airport AMS", "stopId": "a99c0df6-b5f5-4ddf-9abf-d97b500a41d2", "routeSegmentId": "00f13cc0-f6b1-437c-81f7-adeaa9b5f884", "estimateDateTime": "2025-07-09T13:51:04+0000", "estimateLastCalculatedDateTime": "2025-07-08T05:45:42+0000", "dateTimes": [ { "type": "ACTUAL", "dateTime": "2025-07-10T06:18:00+0000", "lastModifiedDateTime": "2025-07-10T06:59:11+0000", "source": "UNKNOWN", "selected": true, "sequence": 1 }, { "type": "ESTIMATE", "dateTime": "2025-07-09T13:51:04+0000", "lastModifiedDateTime": "2025-07-08T05:45:42+0000", "source": "P44", "sourceIdentifiers": [ { "type": "REFERENCE_NUMBER", "value": "4" } ], "selected": true, "sequence": 1 } ] } ], "exceptions": [ { "definitionId": "e147dfbd-5559-456a-8898-0eea4874e036", "transportationMode": "AIR", "namespace": "ROOT_CAUSE_ANALYSIS", "category": "VISIBILITY_GEOPOSITION_AGGREGATOR", "reason": "NO_POSITION_DATA_FOR_FLIGHT", "status": "RESOLVED", "timeline": [ { "id": "e785f74a-a7d6-4af1-833c-85d723174499", "startDateTime": "2025-07-08T20:57:42+0000", "endDateTime": "2025-07-08T06:47:25+0000", "description": "No position data is available for this flight from the geoposition provider. Affected flight number(s): QR8201", "detail": { "airFlightDetails": { "flightDetails": [ { "flightNumber": "QR8201" } ] } } } ] } ], "positions": [ { "dateTime": "2025-07-08T05:58:20+0000", "receivedDateTime": "2025-07-08T06:47:25+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.31085, "longitude": 113.89761 }, { "dateTime": "2025-07-08T06:00:40+0000", "receivedDateTime": "2025-07-08T06:47:25+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.26696, "longitude": 113.76185 }, { "dateTime": "2025-07-08T06:02:08+0000", "receivedDateTime": "2025-07-08T07:21:04+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.18629, "longitude": 113.72063 }, { "dateTime": "2025-07-08T06:02:24+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.16673, "longitude": 113.7295 }, { "dateTime": "2025-07-08T06:04:45+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 22.04008, "longitude": 113.91769 }, { "dateTime": "2025-07-08T06:06:32+0000", "receivedDateTime": "2025-07-08T07:21:04+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 21.89324, "longitude": 114.04149 }, { "dateTime": "2025-07-08T06:07:34+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 21.77966, "longitude": 114.06315 }, { "dateTime": "2025-07-08T06:10:27+0000", "receivedDateTime": "2025-07-08T06:47:26+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 21.4414, "longitude": 114.03112 }, { "dateTime": "2025-07-08T06:11:53+0000", "receivedDateTime": "2025-07-08T07:21:05+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 21.29015, "longitude": 113.92955 }, { "dateTime": "2025-07-08T07:02:38+0000", "receivedDateTime": "2025-07-08T07:21:05+0000", "routeSegmentId": "89f473ca-f16f-44c8-8233-548c3b3b7bb4", "latitude": 18.51769, "longitude": 107.31211 } ] }
This is an example of what could be returned in the response. Null fields will not show up in the response. Please refer to the reference data for more information on required and potential null fields.
See the Appendix for descriptions of the Air Shipment Event Types, Air Shipment Expiry Event TypesAir Shipment State Types, and Air Shipment Stop Types returned by this endpoint.
Errors
If there was a problem with your request, you will receive one of the following error codes
400 Invalid request
401 Invalid or missing credentials
403 User not authorized to perform this operation
404 Not Found
See Error Response Codes in the Appendix for more information on the meaning of these error codes.
Field and Objects
The table below describes only the minimum relevant fields returned in the 200 OK response from the GET: Fetch the event history for a shipment endpoint including the includeRouteInfo query parameter.
Field | Description |
---|---|
routeInfo | An overview of the shipment route includes all the necessary IDs for mapping each event to the correct stop and segment of the journey. |
routeInfo.stops | A stop is a set point of the journey that can be an airport or warehouse or hub. Several data fields are used to describe an array of stops as defined in the API. |
routeInfo.stops.id | project44 ID of the stop the event is related to (referenced to as stopId in events payload). |
routeInfo.stops.type | The type of the stop. For descriptions of specific stop types, see Air Stop Types. |
routeInfo.stops.location | An object that consists of the location name, identifiers, and coordinates. |
routeInfo.stops.location.name | The name of the location (e.g. Sydney International Airport) – received by shipping line (no input from customer required). |
routeInfo.stops.location.identifiers | A type:value pair – airports populate with IATA code. |
routeInfo.stops.location.coordinates | The latitude and longitude of the location. |
routeInfo.routeSegments | An array that describes the journey between two stops. |
routeInfo.routeSegments.id | project44 ID of the route segment the event is related to (referenced to as routeSegmentId in events and positions payload) |
routeInfo.routeSegments.fromStopId | project44 ID of where the route segment originates. |
routeInfo.routeSegments.toStopId | project44 ID of where the route segment terminates. |
routeInfo.routeSegments.transportationMode | The mode of transport used for the route segment. |
routeInfo.routeSegments.identifiers | An array that consists of type:value pairs. See Route Segment Identifiers for valid IDs and descriptions. |
events | An array of all events related to the shipment. |
events.dateTime | The time at which the event took place (actual). This will be returned in UTC. |
events.estimateDateTime | project44’s latest estimated time for the event. This will be returned in UTC. |
events.plannedDateTime | The carrier’s latest scheduled time for the event. NOTE: Timestamps related to an event do not currently include contracted time or initial planned time by carrier. This will be returned in UTC. |
events.type | The type of event that occurs. See Air Shipment Event Types and Air Shipment Expiry Event Types for a full list of supported event types and descriptions. |
events.description | A description of the event that occurs (not available for all events) |
events.stopId | The project44 ID of the stop the event is related to. |
events.routeSegmentsId | The project44 ID of the route segment the stop is related to. See Route Segment Identifiers for more information on the specific identifier types. |
events.receivedDateTime | The last time information about event was modified. |
events.estimatedLastCalculatedDateTime | The last time the estimate date time was modified. This will be returned in UTC. |
states | An array of all states the shipment was or currently is in. |
states.type | The specific type of state the shipment was in. Valid values include "UNKNOWN" , "AT_STOP" , "IN_TRANSIT" , "COMPLETED" , "SCHEDULED" . See Air Shipment State Types for a full list of the supported state types and their descriptions. |
states.startDateTime | The time this state began. This will be returned in UTC. |
states.endDateTime | The time that this state ended. May not be populated if the shipment is still in this state. This will be returned in UTC. |
states.stopId | The ID of the related stop.routeSegmentId: the route segment ID this state occurred along. |
positions | An array of all geo-positions related to the shipment. |
positions.dateTime | The time the recorded position. This will be returned in UTC. |
positions.receivedDateTime | The time the position was received by project44. This will be returned in UTC. |
positions.routeSegmentId | The ID of the route segment the stop is related to. |
positions.latitude | The geographic latitude of the shipment position. |
positions.longitude | The geographic longitude of the shipment position. |