Last updated

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 the 200 OK response during shipment creation).

Workflow

Complete these steps:

  1. 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

  2. Send the request.

Expected System Response

The request is successfully submitted and confirmed when a 200 OK response is received.

JSON
{
  "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.

FieldDescription
routeInfoAn overview of the shipment route includes all the necessary IDs for mapping each event to the correct stop and segment of the journey.
routeInfo.stopsA 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.idproject44 ID of the stop the event is related to (referenced to as stopId in events payload).
routeInfo.stops.typeThe type of the stop. For descriptions of specific stop types, see Air Stop Types.
routeInfo.stops.locationAn object that consists of the location name, identifiers, and coordinates.
routeInfo.stops.location.nameThe name of the location (e.g. Sydney International Airport) – received by shipping line (no input from customer required).
routeInfo.stops.location.identifiersA type:value pair – airports populate with IATA code.
routeInfo.stops.location.coordinatesThe latitude and longitude of the location.
routeInfo.routeSegmentsAn array that describes the journey between two stops.
routeInfo.routeSegments.idproject44 ID of the route segment the event is related to (referenced to as routeSegmentId in events and positions payload)
routeInfo.routeSegments.fromStopIdproject44 ID of where the route segment originates.
routeInfo.routeSegments.toStopIdproject44 ID of where the route segment terminates.
routeInfo.routeSegments.transportationModeThe mode of transport used for the route segment.
routeInfo.routeSegments.identifiersAn array that consists of type:value pairs. See Route Segment Identifiers for valid IDs and descriptions.
eventsAn array of all events related to the shipment.
events.dateTimeThe time at which the event took place (actual). This will be returned in UTC.
events.estimateDateTimeproject44’s latest estimated time for the event. This will be returned in UTC.
events.plannedDateTimeThe 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.typeThe 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.descriptionA description of the event that occurs (not available for all events)
events.stopIdThe project44 ID of the stop the event is related to.
events.routeSegmentsIdThe project44 ID of the route segment the stop is related to. See Route Segment Identifiers for more information on the specific identifier types.
events.receivedDateTimeThe last time information about event was modified.
events.estimatedLastCalculatedDateTimeThe last time the estimate date time was modified. This will be returned in UTC.
statesAn array of all states the shipment was or currently is in.
states.typeThe 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.startDateTimeThe time this state began. This will be returned in UTC.
states.endDateTimeThe time that this state ended. May not be populated if the shipment is still in this state. This will be returned in UTC.
states.stopIdThe 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 the 200 OK response during shipment creation).

Workflow

Complete the following steps.

  1. 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

  2. Send the request.

Expected System Response

You have successfully submitted the request when you receive a 200 OK response.

JSON
{
  "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.

FieldDescription
routeInfoAn overview of the shipment route includes all the necessary IDs for mapping each event to the correct stop and segment of the journey.
routeInfo.stopsA 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.idproject44 ID of the stop the event is related to (referenced to as stopId in events payload).
routeInfo.stops.typeThe type of the stop. For descriptions of specific stop types, see Air Stop Types.
routeInfo.stops.locationAn object that consists of the location name, identifiers, and coordinates.
routeInfo.stops.location.nameThe name of the location (e.g. Sydney International Airport) – received by shipping line (no input from customer required).
routeInfo.stops.location.identifiersA type:value pair – airports populate with IATA code .
routeInfo.stops.location.coordinatesThe latitude and longitude of the location.
routeInfo.routeSegmentsAn array that describes the journey between two stops.
routeInfo.routeSegments.idproject44 ID of the route segment the event is related to (referenced to as routeSegmentId in events and positions payload)
routeInfo.routeSegments.fromStopIdproject44 ID of where the route segment originates.
routeInfo.routeSegments.toStopIdproject44 ID of where the route segment terminates.
routeInfo.routeSegments.transportatioinModeThe mode of transport used for the route segment.
routeInfo.routeSegments.identifiersAn array that consists of type:value pairs. See Route Segment Identifiers for valid IDs and descriptions.
positionsAn array of all geo-positions related to the shipment.
positions.dateTimeThe time the recorded position. This will be returned in UTC.
positions.receivedDateTimeThe time the position was received by project44. This will be returned in UTC.
positions.routeSegmentIdThe ID of the route segment the stop is related to.
positions.latitudeThe geographic latitude of the shipment position.
positions.longitudeThe 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 the 200 OK response during shipment creation).

Workflow

Complete the following steps.

  1. 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.

  2. 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:

JSON
{
  "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.

FieldDescription
routeInfoAn overview of the shipment route includes all the necessary IDs for mapping each event to the correct stop and segment of the journey.
routeInfo.stopsA 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.idproject44 ID of the stop the event is related to (referenced to as stopId in events payload).
routeInfo.stops.typeThe type of the stop. For descriptions of specific stop types, see Air Stop Types.
routeInfo.stops.locationAn object that consists of the location name, identifiers, and coordinates.
routeInfo.stops.location.nameThe name of the location (e.g. Sydney International Airport) – received by shipping line (no input from customer required).
routeInfo.stops.location.identifiersA type:value pair – airports populate with IATA code.
routeInfo.stops.location.coordinatesThe latitude and longitude of the location.
routeInfo.routeSegmentsAn array that describes the journey between two stops.
routeInfo.routeSegments.idproject44 ID of the route segment the event is related to (referenced to as routeSegmentId in events and positions payload)
routeInfo.routeSegments.fromStopIdproject44 ID of where the route segment originates.
routeInfo.routeSegments.toStopIdproject44 ID of where the route segment terminates.
routeInfo.routeSegments.transportatioinModeThe mode of transport used for the route segment.
routeInfo.routeSegments.identifiersAn 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.

  1. 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.
  2. 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.

JSON
{
  "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.

FieldDescription
routeInfoAn overview of the shipment route includes all the necessary IDs for mapping each event to the correct stop and segment of the journey.
routeInfo.stopsA 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.idproject44 ID of the stop the event is related to (referenced to as stopId in events payload).
routeInfo.stops.typeThe type of the stop. For descriptions of specific stop types, see Air Stop Types.
routeInfo.stops.locationAn object that consists of the location name, identifiers, and coordinates.
routeInfo.stops.location.nameThe name of the location (e.g. Sydney International Airport) – received by shipping line (no input from customer required).
routeInfo.stops.location.identifiersA type:value pair – airports populate with IATA code.
routeInfo.stops.location.coordinatesThe latitude and longitude of the location.
routeInfo.routeSegmentsAn array that describes the journey between two stops.
routeInfo.routeSegments.idproject44 ID of the route segment the event is related to (referenced to as routeSegmentId in events and positions payload)
routeInfo.routeSegments.fromStopIdproject44 ID of where the route segment originates.
routeInfo.routeSegments.toStopIdproject44 ID of where the route segment terminates.
routeInfo.routeSegments.transportationModeThe mode of transport used for the route segment.
routeInfo.routeSegments.identifiersAn array that consists of type:value pairs. See Route Segment Identifiers for valid IDs and descriptions.
eventsAn array of all events related to the shipment.
events.dateTimeThe time at which the event took place (actual). This will be returned in UTC.
events.estimateDateTimeproject44’s latest estimated time for the event. This will be returned in UTC.
events.plannedDateTimeThe 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.typeThe 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.descriptionA description of the event that occurs (not available for all events)
events.stopIdThe project44 ID of the stop the event is related to.
events.routeSegmentsIdThe project44 ID of the route segment the stop is related to. See Route Segment Identifiers for more information on the specific identifier types.
events.receivedDateTimeThe last time information about event was modified.
events.estimatedLastCalculatedDateTimeThe last time the estimate date time was modified. This will be returned in UTC.
statesAn array of all states the shipment was or currently is in.
states.typeThe 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.startDateTimeThe time this state began. This will be returned in UTC.
states.endDateTimeThe time that this state ended. May not be populated if the shipment is still in this state. This will be returned in UTC.
states.stopIdThe ID of the related stop.routeSegmentId: the route segment ID this state occurred along.
positionsAn array of all geo-positions related to the shipment.
positions.dateTimeThe time the recorded position. This will be returned in UTC.
positions.receivedDateTimeThe time the position was received by project44. This will be returned in UTC.
positions.routeSegmentIdThe ID of the route segment the stop is related to.
positions.latitudeThe geographic latitude of the shipment position.
positions.longitudeThe geographic longitude of the shipment position.