DEV Community

Jeffrey Inman
Jeffrey Inman

Posted on

Live USPS rates after Web Tools: the 60-calls-an-hour limit

If your WooCommerce shop quotes live USPS rates, the switch from USPS Web Tools to the new USPS APIs changed two things that don't show up until a busy day: how you get keys, and how many times an hour you're allowed to ask for a price. Here's what I found wiring a store to the new API, with real numbers.

Disclosure: I built Beacon Shipping Rates for USPS, a free WooCommerce plugin for this, with a paid add-on. Everything below applies whatever plugin you use.

What changed

USPS retired the old Web Tools APIs on January 25, 2026. Plugins that still called them stopped getting rates that day. The replacement is the USPS APIs at developers.usps.com: OAuth tokens, JSON, and a different set of endpoints for domestic and international prices.

Getting keys is simpler than it used to be. Sign in with your usps.com login, open Apps, add an app, tick Default Access, and copy the Consumer Key and Secret. The secret is shown once. You don't need a shipping account or an EPS account just to quote retail prices.

The part that bites: 60 calls an hour

Each app gets a default quota of 60 calls per hour per API. A checkout that asks USPS for a price every time a customer changes their ZIP or quantity can burn through that in a sale, and after that USPS answers 429 and your checkout shows no USPS options at all.

You can ask USPS for more through the "Email Us" page on the developer portal. Until they say yes, the fix is on your side:

  • Cache identical packages. Same origin ZIP, destination ZIP, weight and box size means the same price. Round the weight to a tenth of a pound and the dimensions to half an inch and most carts land on a cached answer. USPS prices change a few times a year, so a day is safe.
  • Count your own calls and stop just under the quota instead of waiting for the 429.
  • Keep a stale copy for when USPS is down, and serve it rather than nothing.
  • Have a fallback rate. A flat price is better than an empty shipping list.

What real prices look like

Retail prices from the new API on September 24, 2026, 2 lb in a 10×8×4 box, Beverly Hills (90210) to Manhattan (10001), zone 8:

service price
USPS Ground Advantage $19.05
Priority Mail $21.55
Priority Mail Express $72.45

A flat $12 shipping charge would have lost $7 on that order and overcharged a local one. That gap is the whole reason to quote live.

Puerto Rico, Alaska, Hawaii and APO/FPO ZIPs all come back as normal domestic rates. Flat-rate envelopes and boxes come back in the same response, but only offer them if the order actually fits the container.

One more change

Address validation moved behind a separate license. Since August 1, 2026, the Addresses API returns 403 unless you apply for it in the business portal (My Account, API Licenses). If a plugin promises address validation on the default keys, it won't work.

If you're on WooCommerce

The official USPS Shipping Method supports the new API from version 5.2.5 and costs $109 a year. Beacon Shipping Rates for USPS is free on wordpress.org and does the caching, quota guard, stale copies and fallback described above, with a setup page that tests your keys and fetches a real rate before you touch a shipping zone.

Whatever you use, turn on debug logging for a day after switching and look for 429s.

Top comments (0)