Skip to content

Track a booking

GET /api/bookings/v4/track/{id}

Returns tracking information for a confirmed booking. {id} may be a booking ID or, for some couriers, a connote / tracking reference.

There is also an unversioned alias: GET /api/bookings/track/{id}.

ParameterTypeRequiredDescription
idinteger or stringYesBooking ID, or a courier connote / tracking reference where supported.
Terminal window
curl -X GET \
-H "Api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
https://www.transdirect.com.au/api/bookings/v4/track/12345678

Tracking is aggregated per connote / item label. On success the JSON body is an object keyed by connote (or item label), each value an array of event rows. Field names are consistent, but availability of each field varies by courier.

{
"ALD123456789": [
{
"date": "2025-08-18 15:30:00",
"status": "Picked up",
"description": "Shipment collected from sender",
"location": "Sydney",
"pod_url": null,
"delivery_date": null,
"track_status": "1"
},
{
"date": "2025-08-19 06:00:00",
"status": "In transit",
"description": "Arrived at Melbourne depot",
"location": "Melbourne",
"pod_url": null,
"delivery_date": null,
"track_status": "2"
}
]
}

When a proof-of-delivery URL is available it may also appear as a top-level pod_url on the response for some couriers.

FieldTypeDescription
datestring | nullEvent timestamp as reported by the courier.
statusstring | nullCourier status label for the event.
descriptionstring | nullHuman-readable description of the event.
locationstring | nullDepot or location associated with the event.
pod_urlstring | nullProof-of-delivery document URL when available.
delivery_datestring | nullDelivery date when the shipment is delivered.
track_statusstring | number | nullNormalised tracking stage when the courier provides one (see below).

When present, numeric stage codes mean:

Status codeMeaning
0Not available — not yet scanned
1Picked up
2In transit
3Out for delivery
4Delivered
-1Futile / failed delivery attempt
-2Check address
-3Damaged

Not every courier populates track_status on every event — always prefer description / status for display when the code is missing.

Status codeDescription
400No booking matched the id/reference, or tracking is not yet available. Body often includes error and/or a default message.
401Unauthorised — invalid or missing credentials (authenticated path).