Skip to content
Migrating off Web Tools or per-label tax? Start with the free proof surface.

USPS Web Tools retired.
Your address + rates layer is ready.

Start with the free proof surface: smart address validation, address extract, ZIP+4 precision, city/state lookup, and rate shopping. Expand into protected label workflows, managed tracking routes, and BYOK as account setup catches up. RevAddress keeps the first proof path free, then expands into protected USPS workflows through one cleaner interface. USPS-approved app: REVASSEROSSHIP.

No card required. Start with the free proof path, then expand into protected workflows when you are ready.

USPS App: REVASSEROSSHIP
CI-backed coverage
Free proof path live
SDKs on PyPI + npm + Packagist
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
// Response
{
  "street": "1600 PENNSYLVANIA AVE NW",
  "city": "WASHINGTON",
  "state": "DC",
  "zip": "20500-0005",
  "dpv": "Y",
  "vacant": false
}

Infrastructure, not a middleman.

Start with the free USPS proof surface: validation, ZIP+4, and rate shopping. Expand into protected label workflows, BYOK, and managed tracking routes without changing the core API shape or reopening your validation/rates integration.

$0
per label fee
CI
backed coverage
BYOK
your keys, our infra
api.revaddress.com
200 OK • 38ms
GET /api/address/validate
  ?streetAddress=1600+Pennsylvania+Ave
  &city=Washington&state=DC
{
  "streetAddress": "1600 PENNSYLVANIA AVE NW",  ← corrected
  "city":          "WASHINGTON",
  "state":         "DC",
  "ZIPCode":       "20500",
  "ZIPPlus4":      "0005",                  ← +4 resolved
  "DPVConfirmation": "Y",                  ← deliverable
  "deliveryPoint": "99",
  "business":      "N",
  "vacant":        "N"
}
DPV Confirmed Residential Not Vacant CASS Certified

Real response structure. Address standardized, ZIP+4 resolved, delivery point verified, and missing-unit cases handled as guided recovery instead of opaque failure.

42ms
Response Time
ZIP+4
Precision surfaced
CI
Backed coverage
USPS v3
Workflow surface
3
SDKs (MIT)

Deprecated USPS packages still see meaningful monthly downloads (usps-api, usps-webtools). RevAddress is the modern replacement — one managed USPS layer, OAuth 2.0, and type-safe SDKs.

Python SDK on PyPI Node.js SDK on npm PHP SDK on Packagist Open Source on GitHub USPS-approved · Cloudflare Workers · D1 + R2 + Durable Objects

One offer, three stages

Validate messy addresses, recover missing-unit cases, resolve ZIP+4, and keep USPS precision visible without pushing raw upstream ambiguity onto the user. Protected workflows stay behind plan-gated access, and pickup remains request-access until its own live proof lane closes.

Free now
  • Address validation + extract
  • ZIP+4 + city/state lookup
  • Domestic + international rate shopping
  • Service standards, shipping options, and locations

Use the free tier to prove the integration with live USPS-backed responses before you commit to protected workflow access. No API key required.

API key required
  • Tracking route access
  • Labels + batch validation
  • Dashboard + BYOK
  • Pickup request access

Protected workflows unlock after signup and plan/account setup, with public claim depth still gated by route-specific proof.

Higher-volume access
  • Managed throughput
  • Enterprise onboarding
  • Licensing-dependent workflows

Use account setup and support when label volume, routing depth, or licensing needs exceed the default path.

Why developers switch to RevAddress

USPS retired XML Web Tools. v3 is operationally hostile. Middlemen tax every label. RevAddress removes the ugly parts.

Managed USPS layer

RevAddress handles OAuth, caching, ZIP+4 normalization, and workflow plumbing so your integration can stay focused on business logic instead of USPS operational edge cases.

Flat Monthly Pricing

EasyPost charges $0.08/label. Shippo adds monthly fees plus label costs. Once you move into paid protected workflows, RevAddress stays flat instead of taxing every shipment.

See the full comparison →

Usable Throughput

The free tier is for proof. Paid and account-gated workflows add the throughput shaping, batching, and token management needed once USPS traffic becomes operational.

Read the architecture guide →

BYOK Support

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

CI-backed coverage. USPS workflow surface.

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

Drop-in SDKs

Open-source Python and Node.js SDKs. Swap your XML endpoint for REST in one afternoon. Full endpoint mapping and migration guide included.

Read the migration guide →

Migrate in three steps

Replace your USPS Web Tools XML integration with a modern USPS-focused REST layer. Most developers are shipping within an hour.

1

Get your API key

Grab a free API key to prove validation and rate shopping first, or pick a plan when you need protected production workflows.

2

Swap your endpoint

Replace secure.shippingapis.com with api.revaddress.com. XML becomes JSON. Our endpoint mapping covers the USPS routes most teams actually migrate first.

3

Ship

Prove validation, ZIP+4, guided recovery, and rate shopping first. Then move into protected label, tracking, and ops workflows with the same API surface.

The real cost of shipping APIs

Platform Monthly Base Per Label 1,000 Labels/mo BYOK
EasyPost $0 $0.08 $80/mo No
Shippo $19 $0.05 $69/mo No
USPS native $0 $0 Ops burden N/A
RevAddress $29 $0 $29/mo flat Yes

USPS APIs. One expansion path.

Start with free validation, ZIP+4, and rate shopping. Add an API key when you are ready to expand into tracking, protected label workflows, BYOK, and deeper operator control.

GET /api/address/validate
POST /api/batch/validate
GET /api/tracking/{trackingNumber}
POST /api/labels
POST /api/rates
GET /api/service-standards
# Validate an address (free tier)
curl "https://api.revaddress.com/api/address/validate\
?streetAddress=1600+Pennsylvania+Ave&city=Washington&state=DC&ZIPCode=20500" \

# 200 OK — 42ms
{
  "streetAddress": "1600 PENNSYLVANIA AVE NW",
  "ZIPCode": "20500",
  "DPVConfirmation": "Y"
}

Guides & resources

Everything you need to prove the integration quickly, migrate off legacy USPS surfaces, and expand into protected workflows.

Migration guide

EasyPost migration options

Pricing breakdown, migration code, and a flat-rate USPS-native alternative.

Magento

Magento AC-15210 Fix

Fix broken USPS shipping after the AC-15210 patch. OAuth caching, carrier module.

WooCommerce

WooCommerce USPS Migration

Fix broken USPS shipping. PHP shipping method, rate shopping, RevAddress drop-in.

Troubleshooting

OAuth 401 Error Guide

Fix USPS API authentication errors. Token flow, common causes, debugging checklist.

Setup Guide

CRID & MID Enrollment

Register CRID, MID, and EPA for USPS label creation. COP claims walkthrough.

Migration Guide

USPS Web Tools to v3 REST

Step-by-step migration with OAuth setup, endpoint mapping, and code samples.

Python Tutorial

Python SDK Quickstart

Validate addresses, track packages, and compare rates in minutes with Python.

Node.js Tutorial

Node.js SDK Quickstart

TypeScript-first, zero deps. Address validation, tracking, and USPS workflow integration in minutes.

PHP Tutorial

PHP SDK Quickstart

Zero deps, PHP 8.1+. Drop-in for Magento, WooCommerce, Laravel. 59 tests.

Comparison

EasyPost vs RevAddress

Per-label vs flat pricing math. When each wins. Factual comparison.

Comparison

Shippo vs RevAddress

Pricing at every volume tier. Multi-carrier vs USPS-native depth.

Comparison

ShipEngine vs RevAddress

200+ carriers vs USPS depth. When single-carrier wins.

Migration

Web Tools Migration Checklist

Every step to migrate from USPS XML to v3 REST. Endpoint mapping included.

Architecture

Handling 60 req/hr in Production

Caching, batching, queue architecture, and BYOK for production workloads.

Reference

Complete Endpoint Mapping

Every USPS Web Tools XML endpoint mapped to its v3 REST equivalent.

Comparison

Shipping API Comparison 2026

EasyPost vs Shippo vs ShipEngine vs RevAddress. Pricing, features, code.

Tutorial

Batch Address Validation

Validate 50 addresses in one call. 24hr caching. $0.003/validation.

Docs

Full API Reference

16 endpoint sections, route table, SDKs, BYOK, and error codes.

Start shipping in 5 minutes

Get your API key, validate an address, resolve ZIP+4, compare rates, and then expand into protected USPS workflows when you are ready.