Obtain an OAuth 2.0 bearer token from the FedEx authorization endpoint using your client_id and client_secret.
Call the FedEx Pickup Availability endpoint (part of the Pickup Request API at developer.fedex.com/api/en-us/catalog/pickup.html) with the pickup address, postal details, desired pickup date, and carrier type (Express or Ground) to confirm a pickup window is available.
POST a pickup request to the schedule pickup endpoint supplying the FedEx account number to be invoiced, origin address and contact, pickup date and ready time, close time, package count and total weight, and service type (Express or Ground).
Receive the confirmation number from the response and store it against your shipment records; this number is required to cancel or modify the pickup.
To cancel a pickup, POST to the cancel pickup endpoint with the confirmation number before the carrier's cutoff time for the scheduled date.
For same-day pickup requests, check the carrier's same-day cutoff time for the pickup postal code via the availability endpoint before attempting to schedule — late requests are silently declined by some carrier systems.
Known gotchas
FedEx Express and FedEx Ground pickups use the same Pickup Request API but the carrier_type parameter must match the service type on the labels being picked up — specifying Express for Ground packages results in no pickup.
The FedEx account number in the pickup request must be an active, billing-enabled account; a test or suspended account returns success but no courier is dispatched in production.
FedEx may redirect to a drop-off recommendation instead of dispatching a courier if the pickup volume or address type does not meet their pickup threshold — always surface the confirmation number to the user rather than assuming a courier will appear.
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