Understand pickup API availability: FedEx, UPS, DHL Express, and USPS all offer pickup scheduling via their REST APIs; EasyPost also provides a Pickup object that wraps carrier pickup APIs. Choose the appropriate integration path based on your carrier mix.
For EasyPost Pickup: POST to the pickups endpoint with 'address' (pickup location), 'shipments' (array of shipment IDs to be picked up), 'min_datetime' and 'max_datetime' (desired pickup window), and 'is_account_address' (boolean); receive a 'Pickup' object with 'pickup_rates' per carrier; buy the pickup by POSTing to the pickup's buy sub-resource.
For UPS Pickup REST API: POST to the UPS Pickup endpoint (verify current path in docs) with 'PickupCreationRequest' containing 'RatePickupIndicator', 'Shipper' (account number and address), 'PickupDateInfo' (pickup date and earliest/latest ready times), and 'PickupAddress'; the response includes a 'PRN' (Pickup Request Number) for confirmation.
For FedEx Pickup REST API: POST to the FedEx Pickup endpoint (verify current path in docs) with 'associatedAccountNumber', 'originDetail' (pickup address and ready/company close times), 'packageCount', 'totalWeight', and 'serviceCategory'; receive a 'pickupConfirmationCode'.
Store the pickup confirmation number or PRN and surface it to the shipper; this number is needed to cancel or modify the pickup if plans change.
Cancel pickups via the respective carrier's cancel pickup endpoint if the shipment is not ready; failure to cancel and missing repeated pickups may result in carrier fees or restrictions.
Known gotchas
Pickup availability is time-sensitive; most carrier APIs require same-day pickup requests to be submitted before a cutoff time (often midday local time); verify current cutoffs per carrier.
Scheduled pickups incur fees for some carriers and service levels; confirm whether your account includes free pickups or if each scheduled pickup is billed separately.
Carrier pickup APIs may have different eligibility requirements by service level; for example, some USPS pickup services are only available for packages with postage already affixed.
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