POST to https://apis.fedex.com/oauth/token with grant_type=client_credentials and your FedEx developer portal client_id and client_secret to obtain a Bearer token valid for 60 minutes
POST to /rate/v1/rates/quotes with the Bearer token in Authorization header; include shipper and recipient addresses, package weight and dimensions, and set 'rateRequestType' to 'LIST' or 'ACCOUNT' depending on whether you want published or negotiated rates
Parse the ratedShipmentDetails array in the response; each element contains serviceType, totalNetCharge, and estimated transit days
Filter or sort results by deliveryTimestamp and totalNetCharge to implement rate shopping logic
Re-request a token before expiry (tokens last 60 minutes); build a token refresh function that checks expiry and refreshes proactively
Known gotchas
FedEx legacy SOAP APIs were permanently disabled June 1 2026; all integrations must use the REST API at apis.fedex.com
OAuth token requests are rate-limited to 5 requests/second and 1,000/day; cache the token and refresh only when within 5 minutes of expiry
To get account-specific negotiated rates, set 'rateRequestType': 'ACCOUNT' and include the account number in the request; LIST returns published rates that will differ from contracted rates
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