Tracking — entry 006 of 9
UPS
UPS's REST APIs cover package tracking, rating, address validation, and label creation, authenticated via OAuth 2.0 client-credentials bearer tokens issued by the developer portal — the legacy Access Key scheme was retired for all UPS REST APIs in 2024. Calls carry no separate API fee: access is free for UPS account holders, who instead pay UPS directly for the shipments and services the calls represent.
AuthenticationOAuthRequires an OAuth flow; expect app registration.
HTTPSSupportedTraffic is encrypted in transit.
CORSDisabledBrowser calls need a server-side proxy.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.
GreatAPIs Score
Score77
Authentication8/25OAuth flow required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months
Auth quickstart
- Register an app / run the OAuth flow to obtain a bearer token.
- Send it as an Authorization header
Authorization: Bearer <token>
Stored keyNo key stored
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Tracking3
GET/track/v1/details/{inquiryNumber}Tracking
Parameters
| Name | In | Required | Type |
|---|---|---|---|
inquiryNumber | path | yes | string |
locale | query | no | string |
returnSignature | query | no | string |
returnMilestones | query | no | string |
returnPOD | query | no | string |
transId | header | yes | string |
transactionSrc | header | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Tracking Information found | TrackApiResponse |
400 | Invalid request | Response |
403 | Blocked Merchant | Response |
404 | Tracking number information not found | Response |
500 | Internal server error | Response |
503 | Resource is not available | Response |
GET/track/v1/reference/details/{referenceNumber}Track by Reference Number
Parameters
| Name | In | Required | Type |
|---|---|---|---|
referenceNumber | path | yes | string |
locale | query | no | string |
fromPickUpDate | query | no | string |
toPickUpDate | query | no | string |
destCountry | query | no | string |
destZip | query | no | string |
shipperNum | query | no | string |
refNumType | query | no | string |
transId | header | yes | string |
transactionSrc | header | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Tracking Information found | TrackApiResponse |
400 | Invalid request | Response |
403 | Blocked Merchant | Response |
404 | Tracking number information not found | Response |
500 | Internal server error | Response |
503 | Resource is not available | Response |
GET/track/v1/shipment/details/{inquiryNumber}Track Each Package in Shipment
Parameters
| Name | In | Required | Type |
|---|---|---|---|
inquiryNumber | path | yes | string |
locale | query | no | string |
offset | query | no | string |
count | query | no | string |
transId | header | yes | string |
transactionSrc | header | yes | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | Tracking Information found | TrackApiResponse |
400 | Invalid request | Response |
403 | Blocked Merchant | Response |
404 | Tracking number information not found | Response |
500 | Internal server error | Response |
503 | Resource is not available | Response |
Try it
Developer reference
Base URL
https://onlinetools.ups.com/apiKey endpoints
- GET/track/v1/details/{inquiryNumber}
- GET/track/v1/reference/details/{referenceNumber}
- GET/track/v1/shipment/details/{inquiryNumber}