-
Notifications
You must be signed in to change notification settings - Fork 36
Description
USPS officially retired the Web Tools API on January 25, 2026. The XML endpoints at secure.shippingapis.com and production.shippingapis.com no longer respond, which means this package is non-functional for all users.
What changed:
| Web Tools (old) | v3 REST (new) | |
|---|---|---|
| Auth | API key in query string | OAuth 2.0 client_credentials |
| Format | XML | JSON |
| Endpoint | ShippingAPI.dll?API=Verify |
apis.usps.com/addresses/v3/address |
| Rate limit | Effectively unlimited | 40–60 req/hour |
| Credentials | Single user ID | Consumer Key + Secret from developer.usps.com |
The new OAuth tokens expire hourly and requesting a new token revokes the previous one, so any migration needs to handle token caching and serialized refresh.
For anyone looking for a working Node.js alternative, I maintain an MIT-licensed SDK that wraps the new v3 endpoints:
npm install usps-v3
It handles OAuth token lifecycle, endpoint mapping, and has TypeScript definitions. Source: https://github.com/revereveal/usps-v3-node
If managing USPS OAuth and rate limits isn't worth the overhead, there's also a managed proxy at https://revaddress.com that handles it behind a simple API key.
Migration guide with endpoint mapping: https://revaddress.com/blog/usps-web-tools-migration-checklist