Skip to content
All Posts
Technical Analysis

USPS API Access Control: What April 1, 2026 Actually Changed

·Updated ·9 min read·By RevAddress·Technical Analysis

On April 1, 2026, USPS changed how tracking data is reached. Package tracking had always been possession-based: hold a valid tracking number and an API key, get the events. Access Control replaced that with an identity-based model, where the calling application has to be registered and authorized for the Mailer ID that owns the shipment.

USPS announced the initiative months ahead with a portal banner naming the month and nothing else. No scope names, no enrollment steps, no endpoint list. The specifics arrived with the switch.

This page records what landed, who it reached, and how the same governance program produced the Addresses API license that took effect on August 1.

The model shift, in one line

Before: you have the tracking number, you get the data. After: your application is authorized for the Mailer ID that owns the shipment, or you do not.

Everything else follows from that sentence. MID linking is how authorization is proven. The service-provider classification exists because the two sides of that line behave differently. Bulk feed restrictions exist because a bulk feed is the possession model at scale.

What each endpoint got

Endpoint Before April 2026 After
GET /addresses/v3/address OAuth only Unchanged by Access Control. Separately moved to a signed license on August 1, 2026
GET /tracking/v3/tracking/{id} OAuth only Mailer ID authorization enforced
POST /prices/v3/total-rates/search OAuth only Unchanged
POST /labels/v3/label OAuth plus payment authorization Unchanged by Access Control; still requires USPS Ship enrollment and an Enterprise Payment Account
GET /service-standards/v3/estimates OAuth only Unchanged
Bulk tracking feeds and webhook subscriptions Available New authorization requirements

The pattern in that table is worth naming: Access Control was a tracking rule, not an API-wide one. Teams that only validate addresses and buy labels saw nothing change on April 1. Their disruption came four months later, from a different USPS office and a different mechanism.

Who it reached

Restricted. Third-party logistics and fulfillment providers tracking on behalf of merchants. Software platforms (Shopify apps, warehouse systems, shipping aggregators) pulling tracking through the API. Data aggregators extracting events in bulk. Any integration tracking across Mailer IDs it does not own.

Untouched. Direct shippers tracking shipments they mailed themselves. Consumers on usps.com. Address validation, pricing, service standards, and label creation.

The dividing question is short: does your application read tracking for packages mailed by someone other than the credential holder? Yes puts you on the restricted side. No leaves you where you were.

The open questions, answered

The March 2026 version of this page listed what USPS had not published. Those questions have answers now, and the answers are the useful part of this record.

Open question, March 2026 What happened
Exact enforcement date April 1, 2026
What the authorization model becomes Possession-based to identity-based, keyed on the Mailer ID that owns the shipment
Whether bulk feeds are restricted differently Yes. Bulk extracts and webhook subscriptions picked up their own authorization requirements
Whether a grace period applies None was published. The switch landed on the announced month’s first day
Whether direct shippers are affected They were not. The direct-shipper and service-provider split held as described

One further change arrived alongside the initiative and gets less attention than it deserves: application configuration moved into the Customer Onboarding Portal. Every onboarding step USPS documents today routes through COP: creating the business account, creating the app, retrieving the consumer key and secret. If your mental model of the Developer Portal predates April, it is out of date, and the app you configured under the old flow is not necessarily configured under the new one.

A practical corollary. The portal’s own app badge is a summary, and a summary can disagree with the gateway. The test that settles it is a token request: if the OAuth endpoint returns a token for your consumer key, the app works. If it returns app_not_approved, the app does not work, whatever the badge says. Check the endpoint, not the badge.

Where this led

Access Control was not a one-off tracking rule. It was the visible front of a governance program, and the office that ran it, USPS’s Addressing Access Control team, is the same office that started issuing Addresses API license notices two weeks later.

The sequence, as it played out:

Jan 25, 2026   Web Tools XML retired. v3 REST + OAuth 2.0 required.
Apr  1, 2026   API Access Control. Tracking moves to Mailer ID authorization.
               App configuration moves into the Customer Onboarding Portal.
Apr 15, 2026   First notices: the current Addresses API is discontinued
               July 12 unless you accept new terms, sign a license
               agreement, and pay a consumption fee.
Jul 15, 2026   Cutover postponed to August 1. Signed licenses take effect
               that day.
Aug  1, 2026   Addresses API fee schedule in force. Access requires a
               signed license and a funded Enterprise Payment Account.

Read as a series, the direction is unambiguous: USPS is moving every API surface from open access to per-identity, per-credential, metered access. Tracking went first because tracking data was the security argument. Addresses went second because addresses were the volume. The fee curve, the license terms, and the enrollment sequence are covered in what the USPS API actually costs.

What identity-based access means for platform builders

If authorization is keyed to the Mailer ID that owns a shipment, then the credential a request travels on determines what that request can read. That makes credential architecture a product decision rather than a deployment detail.

Running every merchant’s traffic through one platform credential means one application must be authorized for every Mailer ID it touches, and the platform carries the service-provider classification. Running each merchant on their own USPS credentials means each merchant is authorized for their own Mailer IDs, and each is a direct shipper from the Postal Service’s point of view.

That second shape is BYOK, and it is how RevAddress works at every plan. The credential payload carries the fields the regime actually asks about:

POST https://api.revaddress.com/api/byok/credentials
X-API-Key: rv_live_your_key_here
Content-Type: application/json

{
  "client_id":     "merchant-usps-consumer-key",
  "client_secret": "merchant-usps-consumer-secret",
  "crid":          "merchant CRID",
  "master_mid":    "merchant master Mailer ID",
  "label_mid":     "merchant label Mailer ID",
  "epa_account":   "merchant Enterprise Payment Account"
}

→ 201 Created
{
  "merchant_id":        "...",
  "status":             "verified",
  "has_payment_fields": true,
  "message": "Credentials verified — your USPS tokens are now managed separately."
}

Credentials are encrypted at rest with AES-GCM under per-merchant derived keys, and each merchant gets an isolated token lifecycle, their own rate-limit budget, and their own Mailer ID scope. A stored credential that fails its OAuth check comes back as pending_verification rather than silently appearing to work. Check GET /api/byok/status before you route production traffic through it.

The other lever is the one nobody enjoys: the 60-requests-per-hour default is shared across every endpoint your app calls. Authorization overhead does not get its own budget. The rate limit guide covers caching, queue smoothing, and how to ask USPS for more.

Start here

Sources

  • USPS, Getting Started, checked August 23, 2026. The Customer Onboarding Portal flow, the default product list including Tracking, the Labels enrollment requirement, and the quota-increase route are published there.
  • John M. Kuchta, “USPS Access Control: How (Not) to Deprecate a Public API”, April 2, 2026 — the April 1 switch date, the possession-to-identity framing, and the affected-party breakdown.
  • USPS, Addresses API Tech Sheet, fee schedule effective August 1, 2026, published August 13, 2026.

Questions

When did USPS API Access Control take effect?
April 1, 2026. USPS had announced only the month in advance; the switch landed on the first of the month, and tracking endpoints began enforcing Mailer ID authorization from that date.
What did Access Control actually change?
It moved tracking data from a possession-based model to an identity-based one. Previously, a valid tracking number plus an API key returned the data. Since April 1, 2026 the calling application must be registered and authorized for the Mailer ID that owns the shipment. Bulk data feeds and webhook subscriptions picked up new authorization requirements at the same time.
Does Access Control affect address validation or label creation?
No. The initiative targeted tracking. Address validation, pricing, service standards, and label creation were not part of it. Those endpoints did change later for a different reason: the Addresses API moved onto a signed license and a consumption fee schedule on August 1, 2026.
Am I affected if I only track my own packages?
No. Direct shippers tracking shipments they mailed themselves, and consumers using usps.com, were explicitly out of scope. The restrictions land on service providers, aggregators, and platforms that track packages on behalf of other merchants across many Mailer IDs.
Is tracking still part of the default USPS API product?
Yes. As of August 2026 the USPS Developer Portal lists Tracking in the default product alongside OAuth, Addresses, Domestic and International Pricing, Locations, Service Standards, Shipping Options, and UserInfo. Being in the default product is not the same as being unrestricted. The Mailer ID authorization rules still govern which shipments a token can read.