Skip to content

List bookings

GET /api/bookings/v4

Returns bookings for the authenticated member. Quotes (status new) are excluded — only bookings that have progressed past quote are listed. Results are limited to 100 rows.

ParameterTypeRequiredDescription
sincestringNoReturn bookings created on or after this datetime (ISO 8601 accepted). A value that cannot be parsed returns 400 with an errors.since message.
sortstringNoColumn name to order by ascending (e.g. booking_time, id). Default is booking_time descending. Do not pass asc/desc as the value — that is not how this parameter works. An unrecognised column is ignored and the default ordering is used.
Terminal window
curl -X GET \
-H "Api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
"https://www.transdirect.com.au/api/bookings/v4?since=2025-08-01T00:00:00%2B1000"

Each element is a full booking object from the same serializer as get a booking (not a reduced projection):

[
{
"id": 12345678,
"status": "Confirmed",
"created_at": "2025-08-15T10:30:00+1000",
"courier": "allied",
"connote": "ALD123456789",
"cost": 79.24,
"sender": {
"postcode": "2000",
"suburb": "SYDNEY",
"type": "business",
"country": "AU"
},
"receiver": {
"postcode": "3000",
"suburb": "MELBOURNE",
"type": "business",
"country": "AU"
},
"items": [
{
"weight": 5,
"height": 25,
"width": 35,
"length": 40,
"quantity": 1,
"description": "carton"
}
]
}
]

Successful responses may include caching headers (ETag, Cache-Control: private, max-age=30). Sending a matching If-None-Match can return 304 Not Modified.

See get a booking for the full field list. Note:

  • Status values on non-quote bookings are typically human labels (e.g. "Confirmed").
  • Quotes (new) never appear in this list — create/get them via POST / GET by id instead.

Use the since parameter to retrieve only recent bookings when syncing with your system.

Terminal window
# Get bookings since 1 August 2025
curl -H "Api-key: YOUR_API_KEY" \
"https://www.transdirect.com.au/api/bookings/v4?since=2025-08-01T00:00:00%2B1000"
Status codeDescription
401Unauthorised — invalid or missing credentials.
404No bookings found for the filter.
304Not modified — your If-None-Match matches the current ETag.