Obtain a bearer token via the UPS OAuth token endpoint (https://onlinetools.ups.com/security/v1/oauth/token) using client credentials
POST to https://onlinetools.ups.com/api/pickup/v1/pickups with a JSON body specifying pickupDateInfo (date, readyTime, closeTime), pickupAddress, and packageDetails (number of packages, total weight)
Extract the prn (Pickup Request Number) from the response and store it for future reference or cancellation
To modify or cancel, POST to https://onlinetools.ups.com/api/pickup/v1/pickups/cancel with the prn and required transaction identifiers
To look up available service center locations for drop-off alternatives, GET https://onlinetools.ups.com/api/pickup/v1/servicecenterlocations with origin address parameters
For testing, use the sandbox base URL https://wwwcie.ups.com/api/pickup/v1/
Known gotchas
Pickups must be requested before the carrier's daily cutoff time for the requested date; requests submitted after cutoff return an error — query available time windows before presenting options to users
The prn (Pickup Request Number) is required for cancellations; if it is not persisted after scheduling, there is no lookup endpoint to retrieve it later
On-demand pickup fees may apply depending on the account contract; the API does not return a fee estimate before scheduling, so users should be informed of potential charges
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