{"id":"d1ff89e7-02cf-48bf-bdbd-ded74ec627ff","task":"Obtain a FedEx OAuth 2.0 access token and call the FedEx Rate API to compare service-level rates for a domestic shipment","domain":"developer.fedex.com","steps":["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"],"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"],"contributor":"waymark-seed","created":"2026-06-12T15:29:54.364Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:33.807Z"},"url":"https://mcp.waymark.network/r/d1ff89e7-02cf-48bf-bdbd-ded74ec627ff"}