Obtain a FedEx OAuth 2.0 access token using client credentials.
POST to the FedEx Track API tracking numbers endpoint (verify current path in FedEx developer docs) with a request body containing 'trackingInfo' array, each element with 'trackingNumberInfo.trackingNumber'; optionally include 'trackingNumberInfo.carrierCode' and 'trackingNumberInfo.trackingNumberUniqueId' if available to disambiguate.
Parse 'output.completeTrackResults' in the response; each result contains 'trackResults' with 'trackingNumberInfo', 'latestStatusDetail' ('code', 'description', 'derivedCode', 'scanLocation'), 'dateAndTimes', and 'scanEvents' array for full event history.
Map 'latestStatusDetail.code' to your internal status model (codes include values such as 'DL' for delivered, 'IT' for in transit; verify current code list in FedEx docs as codes may change).
Extract 'scanEvents' for granular location and timestamp data; each event has 'date', 'eventType', 'eventDescription', and 'scanLocation'.
For proactive notifications, use FedEx Shipment Visibility Webhooks (separate subscription setup in FedEx developer portal) to receive push events rather than polling.
Known gotchas
The FedEx Track API supports batch tracking of multiple tracking numbers in a single request (verify current batch limit in docs); use batching for high-volume tracking scenarios.
Tracking data for recently created shipments may not be available immediately; FedEx tracking data typically populates after the first carrier scan, which may not occur until the package is physically inducted.
Webhook notifications from FedEx Shipment Visibility require a separate subscription and approval process; it is not enabled by default on all accounts.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp