Shipping Carrier APIs: UPS, FedEx, USPS, DHL and More
RocketShipIt is one API in front of every major shipping carrier. You send one request shape for rating, labels, tracking or address validation; RocketShipIt translates it into whatever UPS, FedEx, USPS, DHL or a regional carrier actually wants, calls that carrier directly, and translates the answer back into one response shape.
The rest of this page is a reference for the underlying carrier APIs — their endpoints, quirks and support contacts — for when you need to know what is happening beneath that translation.
Is there a REST API for tracking packages on FedEx and UPS?#
Yes, and you do not need two of them.
Both carriers now offer OAuth-secured REST APIs of their own: FedEx has replaced its SOAP web services, and UPS has replaced the XML Developer Kit. RocketShipIt speaks both (fedex-rest and ups-rest), plus the legacy SOAP/XML versions still in service on older accounts. It also speaks USPS, DHL, Canada Post, Purolator, OnTrac, Amazon and 30+ others.
The point is that they all look the same from your side. Tracking a FedEx package and tracking a UPS package is the same request with a different carrier value:
{
"carrier": "FedEx-REST",
"action": "Track",
"params": {
"key": "YOUR_KEY",
"tracking_number": "794657326789"
}
}
{
"carrier": "UPS-REST",
"action": "Track",
"params": {
"key": "YOUR_KEY",
"tracking_number": "1Z9A556W0301224626"
}
}
Both come back with the same fields: a normalized status, a delivery date, the full scan history, and the carrier's own raw codes when you need them. See Tracking for the response format and status codes for the per-carrier code tables.
The same holds for the rest of the operations. One rating request shape across carriers, one label request shape, one address validation request shape.
One API for many carriers, without an aggregator#
There are two ways to reach a dozen carriers from one integration, and they are not the same thing.
A tracking or shipping aggregator sits between you and the carrier. You send requests to the aggregator's servers; it holds the carrier relationships, or resells rates off its own accounts, and returns you its own view of the data. It is quick to start with. It also means every shipment, address and customer record passes through a third party, your rates are whatever that party negotiated, pricing scales per shipment or per tracking event, and when the aggregator is down you are down.
RocketShipIt is not an aggregator. It is a library and a server that you point at your own carrier accounts, using your own credentials and your own negotiated rates. You self-host it — a single binary, no dependencies, running inside your infrastructure — or let us host it for you if you would rather not. Either way the carrier relationship stays yours.
| Aggregator | RocketShipIt | |
|---|---|---|
| Carrier account | Theirs, or yours via them | Yours, directly |
| Rates | Their negotiated rates, or yours passed through | Your own negotiated rates |
| Where the data goes | Through their servers | Your server, straight to the carrier |
| Pricing | Typically per shipment or per tracking event | Flat subscription, unmetered |
| If they have an outage | You stop shipping | Self-hosted: unaffected |
| New carrier coverage | Whatever they support | 30+ carriers, plus the carrier's own API underneath |
The trade-off is real and worth naming: an aggregator will also do the carrier onboarding for you, and if you have no carrier accounts at all and no intention of getting any, that is a genuine advantage. If you already ship — if you have a UPS account number and a FedEx meter and rates you negotiated — then routing all of it through someone else's servers costs you money, speed and control for nothing.
What you can do with it#
| Rating | Compare services and prices across carriers in one call |
| Shipping labels | Create labels, including return labels and thermal formats |
| Tracking | Normalized status and scan history for every carrier |
| Address validation | Correct and verify addresses before you print |
| Pickups and locations | Schedule pickups, find drop-off points |
| Customs | International documents, paperless customs upload |
New to it? Start with Getting Started. For credentials, see carrier authentication.
Carrier API reference#
Below is reference information on the carrier APIs RocketShipIt talks to underneath.
UPS#
Developer site: https://www.ups.com/upsdeveloperkit
Tips#
- The UPS Developer Kit APIs are updated in January and July each year.
- Changelog - https://www.ups.com/us/en/help-center/technology-integration/olt/anc.page
- UPS no longer requires certification to create production shipping labels.
- Your UPS Access Key is the same for dev/test and production
- [email protected] is the UPS developer support email
- Although UPS supports JSON, it is an afterthought and not a first-class citizen. We (unfortunately) recommend integrating with XML/SOAP.
Endpoints#
(All API URIs are case sensitive)
XML/SOAP
Base URL
- https://wwwcie.ups.com/webservices (test)
- https://onlinetools.ups.com/webservices (production)
Services:
/Rate/Ship/Track/FreightRate/Void/TimeInTransit/LBRecoveryLabel Recovery/Pickup/XAVAddress Validation/DangerousGoodsUtility/PreNotification/PaperlessDocumentAPI(production: https://filexfer.ups.com/webservices/PaperlessDocumentAPI)/DeniedParty(TradeAbility)/FreightShip
Quantum View and Locator have a different base URL:
- https://wwwcie.ups.com/ups.app/xml/QVEvents (test)
- https://onlinetools.ups.com/ups.app/xml/QVEvents (production)
Services:
/QVEvents/Locator
JSON:
- https://wwwcie.ups.com/rest/API (test)
- https://onlinetools.ups.com/rest/API (production)
APIs#
Shipping/Rating
- Address Validation - City, State, ZIP Verify the city, state, and ZIP or postal code information is valid.
- Address Validation - Street Level Verify the street address, city, state, and ZIP or postal code information is valid.
- Dangerous Goods - Validate Air, Ground, and International Dangerous Goods (hazardous materials) shipments are acceptable to UPS.
- Locator - Global - Find a UPS location or The UPS Store nearest to you.
- Pickup - Request a pickup for you or for one of your customers.
- Pre-Notification - Notify UPS of Dangerous Goods shipments after shipment processing.
- Rating - Compare delivery services and shipping rates to determine the best option for your customers.
- Shipping - Validate addresses, compare rates, and print labels for your internal business processes.
- Time in Transit - Compare shipping transit times of UPS services.
Visibility#
- Quantum View - Stream Quantum View Data via XML over the Web and into internal applications.
- Tracking - Provide accurate package status information to your customers.
- Tracking - UPS Signature Tracking Automate Proof of Delivery for your shipments.
International Trade#
- Paperless Documents - Upload document images and link to your international shipments.
- UPS TradeAbility - Generate cost estimates for duties, taxes, and transportation for international shipments; locate compliance and licensing information, and identify restricted trading parties.
FedEx#
Developer site: http://www.fedex.com/us/developer/
Tips#
- Changelog - http://www.fedex.com/us/developer/announcements.html
- Support email: [email protected]
- "Can I ship multiple packages with a single request?" No. Each package requires a ship transaction. However you are able to tie packages together with a master tracking number
- Phone support: 1.877.339.2774 (When prompted, please say "FedEx Web Services.")
Endpoints#
Base URL:
- https://wsbeta.fedex.com:443/web-services (test)
- https://ws.fedex.com:443/web-services (production)
Services:
/locs/close/pickup/rate/ship/ValidationAvailabilityAndCommitment/ship(void)/async/cntyCountryService/dgdsDangerous Goods/dgldDangerous Goods/ifssInFlightShipmentService/addressvalidation/locsLocationsService/openshipOpenShip/uploaddocumentUploadDocumentService
APIs#
- Rate
- Service Availability
- Validate Postal Codes
- Track
- Signature Proof of Delivery
- Notification
- Search Locations
- Create Shipment
- Shipment Validation
- Return Tag
- Cancel Return Tag
- ETD/Upload Service
- Pickup
- Cancel Pickup
- Pickup Availability
- Express Tag Availability
- SmartPost Close
- Close Shipment (Ground Only)
- Reprint Close Report
- Create Email Label
- Cancel Email Label
- Add Packages
- Delete Packages
- Create Open Shipment
- Delete Open Shipment
- Modify Open Shipment
- Validate Open Shipment
- Confirm Open Shipment
- Retrieve Open Shipment
- Upload Dangerous Goods Commodity Data (DGDS)
- Retrieve Dangerous Goods Shipments (DGLD)
- Address Validation
- In-Flight Shipment Service
FedEx Freight#
Developer site: https://developer.fedexfreight.com/
FedEx Freight became an independent LTL carrier on June 1, 2026 and publishes
its own REST APIs (LTL Rates, Ship, Pickup and Track) on its own portal, with
its own OAuth server and credentials. The RocketShipIt carrier is
fedex-freight; see FedEx Freight.
Tips#
- Create an integration on the portal to get a Client ID and Client Secret; the portal also lists sandbox test accounts (shipper and bill-to).
- Every API is limited to 5 calls per second per integration.
- OAuth tokens live 60 minutes and cannot be refreshed; a 401 means request a new one.
- Technical support: 1.800.435.7949
Endpoints#
OAuth token (POST /am/oauth2/access_token, scope fxf-api):
- https://auth-qa.fedexfreight.com (sandbox)
- https://auth.fedexfreight.com (production)
API base URL:
- https://api-preprod.ltl.tech (sandbox, gateway path segment
fxfgw-preprod) - https://api.ltl.tech (production, gateway path segment
fxfgw)
Services (production paths):
/fxf-external-rate-auth0/fxfgw/rate/getRateQuote/fxf-external-rate-auth0/fxfgw/rate/specialServiceOptions/fxf-external-ship-auth0/fxfgw/route/freight/shipment/fxf-external-pickup-auth0/fxfgw/pickup/availability/fxf-external-pickup-auth0/fxfgw/pickup/create/fxf-external-pickup-auth0/fxfgw/pickup/cancel/fxf-external-tracking-auth0/fxfgw/route/track/v1/trackingnumbers/fxf-external-tracking-auth0/fxfgw/route/track/v1/referencenumbers/fxf-external-tracking-auth0/fxfgw/route/track/v1/trackingdocument
USPS#
RocketShipIt supports both the legacy USPS webtools API and newer REST base API: https://developer.usps.com
Developer site: https://www.usps.com/business/web-tools-apis/welcome.htm
Tips#
- "We do not currently offer the ability to pay for postage directly to USPS through Web Tools APIs." You must use Stamps.com or other provider to create postage paid labels.
- USPS does offer postage paid labels through eVS and ePostage which RocketShipIt fully supports but there are volume requirements.
- Permissions for creating shipping labels without postage are added separately. To get permission, contact [email protected] and include "Web Tools API Access" in the subject line.
- Changelog: https://www.usps.com/business/web-tools-apis/welcome.htm
APIs#
Address APIs
- Address Validation/Standardization
- City and State Lookup
- Zip Code Lookup
Tracking & Delivery Information APIs
- Tracking
- Tracking by Email
- Proof of Delivery
- Restore Archived Tracking
- Return Receipt Electronic
Price Calculator APIs
- Domestic Price Calculator
- International Price Calculator
Shipping Label APIs: Domestic
- Domestic Shipping Labels (Priority Mail, Standard Post, First Class Package Service)
- Priority Mail Express Labels
- eVS Labels
- Hold For Pickup Labels
- Merchandise Return Service Labels
- Merchandise Return Service Bulk Labels
- Open and Distribute™ Labels
- Scan Form
Shipping Label APIs: International
- Priority Mail Express International
- Priority Mail International
- First-Class Mail International and First-Class Package International Service
- eVS International Labels API
Package Pickup APIs
- Check pickup availability
- Schedule a pickup
- Cancel a pickup request
- Update a pickup request
Service Standards & Commitments APIs
- Domestic Mail Service Standards
- Service Delivery Calculator
DHL#
Developer site: https://xmlportal.dhl.com/login
OnTrac#
Legacy XML API (ontrac) developer site: https://www.ontrac.com/onlineShipAPI.asp
WS V3 JSON API (ontrac-rest) documentation: https://ws.ontrac.com/. OnTrac issues the WSID and WSKey by email; see OnTrac REST.
FlavorCloud#
Developer site: https://docs.flavorcloud.com/. FlavorCloud issues the AppID and RestApiKey in its admin console; see FlavorCloud.
Veho#
Developer site: https://docs.api.shipveho.com/. Veho issues one API key for its sandbox and one for production; see Veho.
Estes Express Lines#
Developer portal: https://developer.estes-express.com/. Estes issues a client id and secret per environment by email from [email protected]; you generate the API key from them, and every call also takes a MyEstes login. See Estes.
Amazon Buy Shipping#
Developer site: https://developer-docs.shipping.amazon.com/. Register an SP-API application with the Amazon Shipping role in Seller Central (Apps & Services, Develop Apps) and self-authorize it for the refresh token; see Amazon Buy Shipping.
Purolator#
Developer site: https://eship.purolator.com/site/en/default.aspx
Stamps.com#
Developer site: https://developer.stamps.com/
Golden State Overnight#
Developer site: https://www.gls-us.com/solutions/technology