Package Tracking
Track by Number
- Determine carrier and tracking number. Carrier must be a lowercase Shippo token (e.g.,
usps, ups, fedex, dhl_express). See shippo/references/carrier-guide.md for tracking number format hints per carrier. If uncertain, ask the user.
- Call
GetTrack with carrier and tracking_number.
- Key response fields:
tracking_status (status, status_details, status_date, location), tracking_history, eta.
- Each tracking event includes a
substatus object with code, text, and action_required (boolean). Include substatus details when presenting tracking history -- these provide more specific information about what happened at each step.
- Present: current status, location, ETA, substatus details, and chronological event history (most recent first).
Status Values
See shippo/references/carrier-guide.md for carrier-specific status nuances. Standard values:
| Status |
Meaning |
| PRE_TRANSIT |
Label created, carrier has not received the package |
| TRANSIT |
Package is in transit |
| DELIVERED |
Delivered |
| RETURNED |
Being returned or returned to sender |
| FAILURE |
Delivery failed |
| UNKNOWN |
No tracking information from carrier |
The eta field is provided by most major carriers (USPS, UPS, FedEx, DHL Express) but availability is carrier-dependent, it may be null for regional carriers or for shipments before the carrier has finalized routing. Treat absence as informational, not as an error condition.
Find Trackable Packages
Call ListTransactions. Filter for object_status: SUCCESS. Each successful transaction has tracking_number and carrier info. Then call GetTrack for selected items.
Register a Tracking Webhook
- Get the user's HTTPS webhook URL.
- Call
createWebhook with url and event: track_updated.
- Optionally call
CreateTrack with carrier and tracking number to register a specific shipment for push updates.
Quick Reference
Track a package:
GetTrack with carrier + tracking number
Find past shipment tracking:
ListTransactions -> filter SUCCESS -> GetTrack
1---2name: tracking3description: Track packages across carriers, view tracking history, and set up tracking webhooks via the Shippo API4---56# Package Tracking78## Track by Number9101. Determine carrier and tracking number. Carrier must be a lowercase Shippo token (e.g., `usps`, `ups`, `fedex`, `dhl_express`). See `shippo/references/carrier-guide.md` for tracking number format hints per carrier. If uncertain, ask the user.112. Call `GetTrack` with `carrier` and `tracking_number`.123. Key response fields: `tracking_status` (status, status_details, status_date, location), `tracking_history`, `eta`.134. Each tracking event includes a `substatus` object with `code`, `text`, and `action_required` (boolean). Include substatus details when presenting tracking history -- these provide more specific information about what happened at each step.145. Present: current status, location, ETA, substatus details, and chronological event history (most recent first).1516---1718## Status Values1920See `shippo/references/carrier-guide.md` for carrier-specific status nuances. Standard values:2122| Status | Meaning |23|---|---|24| PRE_TRANSIT | Label created, carrier has not received the package |25| TRANSIT | Package is in transit |26| DELIVERED | Delivered |27| RETURNED | Being returned or returned to sender |28| FAILURE | Delivery failed |29| UNKNOWN | No tracking information from carrier |3031The `eta` field is provided by most major carriers (USPS, UPS, FedEx, DHL Express) but availability is carrier-dependent, it may be `null` for regional carriers or for shipments before the carrier has finalized routing. Treat absence as informational, not as an error condition.3233---3435## Find Trackable Packages3637Call `ListTransactions`. Filter for `object_status: SUCCESS`. Each successful transaction has `tracking_number` and carrier info. Then call `GetTrack` for selected items.3839---4041## Register a Tracking Webhook42431. Get the user's HTTPS webhook URL.442. Call `createWebhook` with `url` and `event: track_updated`.453. Optionally call `CreateTrack` with carrier and tracking number to register a specific shipment for push updates.4647---4849## Quick Reference5051**Track a package:**52`GetTrack` with carrier + tracking number5354**Find past shipment tracking:**55`ListTransactions` -> filter SUCCESS -> `GetTrack`