USPS Web Tools → v3 REST Migration Window Open

Ship with USPS.
No middleman.

Direct USPS v3 REST API access. Flat monthly pricing instead of per-label fees. 162 tests. 29 routes. USPS-approved. Built for developers who ship.

USPS App: REVASSEROSSHIP
162 tests passing
Production since 2026
USPS Web Tools (Legacy XML)
<AddressValidateRequest USERID="...">
  <Address>
    <Address1>Suite 100</Address1>
    <Address2>1600 Pennsylvania Ave</Address2>
    <City>Washington</City>
    <State>DC</State>
    <Zip5>20500</Zip5>
  </Address>
</AddressValidateRequest>
RevAddress v3 REST
200 OK • 42ms
GET /api/address/validate
X-API-Key: rv_live_a1b2c3...

// Response
{
  "street": "1600 PENNSYLVANIA AVE NW",
  "city": "WASHINGTON",
  "state": "DC",
  "zip": "20500-0005",
  "dpv": "Y",
  "vacant": false
}

Why developers switch to RevAddress

USPS retired XML Web Tools. The v3 REST API has a 60 req/hr rate limit. Middlemen charge per-label. We fixed all three.

Direct USPS Access

Your requests hit USPS servers. No proxy markup. No data harvesting. Your credentials, your relationship, our infrastructure.

Flat Monthly Pricing

EasyPost charges $0.05/label. Shippo adds $19/mo + fees. We charge a flat monthly rate. Ship 10 labels or 10,000 — same price.

Rate Limit Solved

USPS caps direct access at 60 req/hr. Our intelligent caching, request batching, and token management give you up to 600 req/min.

BYOK Support

Bring Your Own Keys. Use your USPS Developer Portal credentials with our infrastructure. AES-GCM encrypted. Your data stays yours.

162 Tests. 29 Routes.

Not a wrapper around a wrapper. Production-grade Cloudflare Worker with D1, R2, Durable Objects, Queues, and real test coverage.

Drop-in Migration

WooCommerce, Magento, osCommerce modules. Python + Node.js SDKs. Swap your XML endpoint for REST in one afternoon.

The real cost of shipping APIs

Platform Monthly Base Per Label 1,000 Labels/mo BYOK
EasyPost $0 $0.05 $50/mo No
Shippo $19 $0.05 $69/mo No
Direct USPS $0 $0 60 req/hr cap N/A
RevAddress $29 $0 $29/mo flat Yes

29 routes. One API key.

Address validation, tracking, labels, prices, service standards, locations, and more. Every USPS v3 endpoint, wrapped in a clean REST interface with proper error handling.

GET /api/address/validate
GET /api/tracking/{trackingNumber}
POST /api/labels/create
GET /api/prices/domestic
GET /api/service-standards
Quick Start — 3 lines to validate
# Install
pip install usps-v3

# Validate an address
from usps_v3 import Client

client = Client("your_api_key")
result = client.addresses.validate(
    street="1600 Pennsylvania Ave",
    city="Washington",
    state="DC",
    zip_code="20500"
)

print(result.zip)  # "20500-0005"
print(result.dpv)  # "Y" (deliverable)

Start shipping in 5 minutes

Get your API key, validate an address, create a label. Flat pricing, no surprises, no middleman fees.