Skip to content
USPS Web Tools died Jan 25, 2026

The USPS API
you wish existed.

Clean SDKs for USPS rates, tracking, and standardization — plus license-clean DPV verification on your own key, and the address intelligence USPS never shipped. Flat pricing, because you bring the license and we bring the infrastructure.

XML Web Tools

410 Gone

Deprecated Jan 25

RevAddress v3

200 OK · 42ms

JSON over HTTPS · api.revaddress.com

No credit card. 1,000 calls/month on the free tier. Why Web Tools died →

Not a developer? Upload a CSV instead — free diagnosis, from $47 to fix →

api.revaddress.com
200 OK • 42ms
GET /api/address/validate
// Response — exact match
{
  "streetAddress": "1600 PENNSYLVANIA AVE NW",
  "city":          "WASHINGTON",
  "state":         "DC",
  "ZIPCode":       "20500",
  "ZIPPlus4":      "0005",
  "DPVConfirmation": "Y",
  "deliveryPoint": "99",
  "business":      "N",
  "vacant":        "N"
}
DPV ConfirmedResidentialZIP+4 Resolved

01Resilience

Every request gets an answer

DPV verification when the USPS lane is up. Census standardization — clearly labeled — when it isn't. Your integration never sees a raw upstream fault.

USPS DPVyour key · verified record
GET /api/address/validate
// USPS DPV — authoritative delivery-point record
{
  "streetAddress": "1600 PENNSYLVANIA AVE NW",
  "ZIPCode":       "20500",
  "ZIPPlus4":      "0005",
  "DPVConfirmation": "Y",
  "resolution":    "deliverable_exact"
}
Census referenceautomatic fallback · no key
GET /api/address/validate
// Census standardization — automatic fallback, labeled
{
  "streetAddress": "2214 SE MORRISON ST",
  "city":          "PORTLAND",
  "coordinates":   { "lat": 45.5169, "lng": -122.6434 },
  "resolution":    "standardized_unverified",
  "degraded":      true
}

Both shapes captured from the live API. Degraded responses carry degraded: true and an explicit notice — never a silent swap.

02Live demo

Try it — validate any address

No signup. No API key. Free tier, live responses.

api.revaddress.com

Free tier: validation, rates, ZIP+4, and address extract.Get an API key for higher limits.

03Why RevAddress

Flat pricing, no per-lookup surcharges

SmartyStreets charges per lookup. EasyPost adds per-label fees. RevAddress is a flat monthly rate — your 1,000th validation costs the same as your first: $0.

See the full comparison →

Drop-in SDKs

Open-source Python, Node.js, and PHP SDKs. Install, pass your API key, call validate(). Replace XML endpoints with REST in one afternoon.

Your keys, our infrastructure

Bring your own USPS Developer Portal credentials. We handle OAuth token lifecycle, rate limits, and encrypted storage. Your data stays yours, AES-GCM encrypted at rest.

04Migration

Migrate in three steps

Replace your USPS Web Tools XML integration with a modern REST API. Most developers ship within an hour.

1

Get your API key

Sign up free — no credit card needed. Start calling validation and rate endpoints immediately.

2

Install the SDK

pip install usps-v3 or npm install usps-v3. Replace secure.shippingapis.com XML calls with typed REST methods.

3

Ship

Validate addresses, compare rates, and create labels. Add tracking, batch validation, and BYOK when you need them.

05Quickstart

Working USPS validation in under 60 seconds

cURL first — switch to Python, Node, or PHP with one click. Same shape, same response, drop-in SDKs.

# 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"
}

06Get started

Start shipping in 5 minutes

Free tier for validation and rates. Flat monthly pricing when you need more.

Works against the official USPS v3 endpoint. Not a scrape.