Tracking
Track the status of pickup orders using AWB numbers or client order IDs.
Single Tracking
Query the status of one order at a time by passing its AWB number. The response includes the current state, timestamps for each transition, and rider details (when assigned).
Bulk Tracking
For high-volume integrations, use the bulk tracking endpoint to query up to 50 AWBs in a single request — pass them as request_ids. This is significantly more efficient than looping single-tracking calls and avoids hitting rate limits. Exceeding 50 returns 400.
Polling vs Webhooks
| Approach | When to Use |
|---|---|
| Polling | Fallback or reconciliation — query at intervals to catch missed updates |
| Webhooks | Primary method — Shadowfax pushes status changes in real time |
Prefer webhooks for real-time updates. Use polling as a daily reconciliation mechanism to catch any callbacks your system may have missed. This matters more than it might appear: a failed callback is not meaningfully retried, so an update your endpoint misses is only recoverable by polling for it.
When you read the status, match on the status code rather than the display string — see Order Lifecycle. Tracking reports both return-to-seller and return-to-warehouse completion as Returned To Client, so the display string alone won't tell you which happened.
See Track Order and Bulk Tracking in the API Reference.