Skip to content

Track a shipment

Shipments Movement data

Surface the live journey of any shipment by referencing the tracking ID, shipment ID, or booking ID you already have on hand. Each call returns the latest scan events, timestamps, and delivery ETA.

Verb

GET ยท stateless

Data freshness

Events stream in near real time

Retry guidance

Use exponential backoff when polling

Identifier options

Identifier When to use Sample
trackingId Most common; shared with customers via labels and emails. 584E3DDF
shipmentId Internal AAJ GUID used when you already have the shipment payload. bf214001-b3bb-4d49-a433-e5ef5177a732
orderId Use when you only captured the commerce booking identifier. ORD-109911

Endpoints

GET Tracking ID

`{{ url }}/api/v2/shipments/{{ trackingId }}/track`

GET Shipment ID

`{{ url }}/api/v2/shipments/{{ shipmentId }}/track`

GET booking ID

`{{ url }}/api/v2/shipments/{{ orderId }}/track`

All endpoints share the same response schema and require the standard Authorization: Bearer {{ token }} header.

Response payload

{
  "success": true,
  "message": "Shipment tracked successfully",
  "data": {
    "carrier": "AAJ",
    "serviceType": "",
    "trackingNumber": "692986D4",
    "events": [
      {
        "meta": {
          "hub": null,
          "hubId": null,
          "status": 0,
          "location": "Online Branch",
          "userName": "Faith Philz"
        },
        "user": "68d51bf76d726a7296c52dbf",
        "bagTag": "",
        "category": "",
        "dateTime": "2025-11-28T12:26:25.000000+01:00",
        "exception": null,
        "scanType": "LABEL_CREATED",
        "description": "Label documents have been created",
        "manifestId": "",
        "objectType": "SHIPMENT",
        "shipmentTrackingId": "692986D4",
        "additionalInfo": null,
        "_id": "692986e163136da39a6af133",
        "createdAt": "2025-11-28T11:26:25.775Z",
        "updatedAt": "2025-11-28T11:26:25.775Z"
      }
    ],
    "status": 0,
    "timestamp": "2025-11-28T11:26:25.777Z",
    "description": "Label documents have been created",
    "weight": 90,
    "packageDimension": {
      "length": 32,
      "width": 25,
      "height": 2,
      "unit": "KGS",
      "dimensionalWeight": 0.32,
      "actualWeight": 90
    },
    "labelCreated": "2025-11-28T11:26:25.777Z",
    "eta": {
      "numberOfDays": 3,
      "dateOfArrival": "2025-12-01T11:26:12.000000+01:00",
      "lastTrack": "2025-11-28T11:26:12.843Z"
    },
    "senderLocation": {
      "name": "Enohense Idemudia",
      "city": "iKEJA",
      "state": "LA",
      "country": "Nigeria",
      "countryCode": "NG",
      "postcode": "23949",
      "address": "",
      "location": "location"
    },
    "receiverLocation": {
      "name": "Amos Obaide",
      "city": "Ikeja",
      "state": "LA",
      "country": "Nigeria",
      "countryCode": "NG",
      "postcode": "23994",
      "address": "",
      "location": "location"
    },
    "shipmentTrackingId": "692986D4",
    "bookingSearchId": "09130967",
    "searchedBy": "692986D4",
    "acknowledgementCopy": null
  }
}

Response fields

Field Description
trackingNumber The public-facing tracking value printed on labels.
carrier The carrier handling the shipment (e.g., "AAJ").
events Chronological list of scan milestones with metadata about hub, user, and scan type.
status Integer status that maps to the shipment lifecycle (see shipment reference).
timestamp When the shipment was last updated in the network.
description Human-readable summary of the latest state.
weight Total weight of the shipment in the configured unit.
packageDimension Declared dimension + chargeable weight for billing reconciliation.
labelCreated Timestamp when the shipping label was generated.
eta Promise window, including arrival estimate and last update date.
senderLocation / receiverLocation Sanitized address data for sender and receiver contacts.
shipmentTrackingId The unique shipment tracking identifier.
bookingSearchId Alternative search ID linked to the original booking.
searchedBy The identifier used to perform this tracking lookup.

Tip: For real-time customer notifications, poll until status reaches 4 (delivered), then confirm proof-of-delivery via the single-shipment endpoint.