Skip to content
← Docs/API Reference

API Reference

Static reference for the USPS workflows RevAddress supports today: addresses, rates, service standards, locations, tracking, label workflows, BYOK, and admin diagnostics. Base URL: https://api.revaddress.com

How to evaluate and expand

Standardization, geocoding, and address extract run free with no signup. Connect your own USPS Developer Portal license — any key, Free included — and DPV, rates, service standards, city/state, and tracking run on your license through our infrastructure. Add an API key for batch operations, checkout validation, webhooks, and pickup scheduling.

Free tier
  • Address standardization + extract (US Census)
  • Street-level geocode + ACS demographics demo
  • Sandbox DPV / CMRA demo
  • DPV, rates, service standards, and city/state on your USPS license (BYOK)

Standardize and geocode live with no key. Connect your own USPS Developer Portal app — Free keys can — and the USPS suite runs on our infrastructure.

API key required
  • Package tracking
  • Batch validation + checkout widget
  • Dashboard + webhooks
  • Pickup scheduling

Paid endpoints unlock after signup. Flat monthly pricing.

Higher volume
  • Increased throughput
  • Enterprise onboarding
  • Custom integrations

Contact us when volume or licensing needs exceed standard tiers.

Census address standardization, geocoding, address extract, and the intelligence demo work free — no API key, no USPS license. DPV, ZIP+4 city/state lookup, rates, service standards, and locations run on your USPS license (BYOK). Add an API key when you move into tracking, labels, request-access pickup, batch validation, or BYOK.

Authentication

Free Tier

No API key required. IP-rate-limited: 30 req/10s. Census standardization, geocoding, address extract. Rates, locations, and service standards on your USPS license (BYOK).

Protected

X-API-Key: rv_live_...
Labels, tracking, pickup, batch validation.

Rate Limits

Starter 120/min · Growth 300/min · Pro 600/min. Headers: X-RateLimit-Limit, -Remaining, -Reset.

Try it live

Try the validate endpoint right now — no API key, no signup. Keyless calls return Census standardization with coordinates; full USPS DPV and ZIP+4 run on your own USPS license (BYOK, free key included) or on hosted verification as it comes online. Guided missing-unit recovery works on both.

Smart mode by default
Response
← Enter an address and click Validate

Quick Start Examples

The four most common first requests. Hit the live API immediately.

POST/api/address/validate
Address validation — free tier, no key needed
FREE
curl -s "https://api.revaddress.com/api/address/validate" \
  -H "Content-Type: application/json" \
  -d '{"streetAddress":"228 Park Ave S PMB 101842","city":"New York","state":"NY","ZIPCode":"10003"}'
POST/api/rates
Rate shopping across all USPS mail classes
FREE
curl -s "https://api.revaddress.com/api/rates" \
  -H "Content-Type: application/json" \
  -d '{"originZIPCode":"10003","destinationZIPCode":"90210","weight":2.5,"length":12,"width":9,"height":2}'
POST/api/batch/validate
Up to 50 addresses in one request
Growth+
curl -s "https://api.revaddress.com/api/batch/validate" \
  -H "X-API-Key: rv_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"addresses":[{"streetAddress":"228 Park Ave S","city":"New York","state":"NY","ZIPCode":"10003"},{"streetAddress":"1600 Pennsylvania Ave NW","city":"Washington","state":"DC","ZIPCode":"20500"}]}'
GET/api/tracking/:number
Tracking status with normalized categories when USPS provides events
Starter+
curl -s "https://api.revaddress.com/api/tracking/9400111899223456789012" \
  -H "X-API-Key: rv_live_your_key_here"

Addresses

Free Tier

US address validation and ZIP lookup. Census standardization + geocode free — no API key, no license. DPV and city/state run on your USPS license (BYOK).

Rates

Free Tier

Domestic and international shipping rate quotes. Free tier — runs on your USPS license (BYOK).

Tracking

USPS tracking route access with normalized status data. API key required; broader public claim strength still waits on deeper scan-backed proof.

Labels

Managed label workflows with download and void support for protected accounts.

Workflows

Durable label creation workflows with explicit charge approval and status polling.

Pickup

Pickup availability and scheduling routes for protected accounts. Request access; rolling out account by account.

Locations & Standards

Free Tier

USPS drop-off locations and delivery time standards. Free tier — runs on your USPS license (BYOK).

Admin Diagnostics

Admin-only diagnostics for protected operator use.

BYOK

Bring your own USPS Developer Portal credentials and every USPS call from your keys — DPV, rates, service standards, shipping options, city/state, tracking, pickups, international prices — runs on your license through our infrastructure. Any API key can connect, Free included (guided form: /dashboard/#byok). AES-GCM encrypted at rest; per-merchant token manager handles OAuth refresh, retries, caching.

Account

Self-service usage and key management. Scoped to your API key.

Error Reference

All errors return a consistent JSON shape with machine-readable codes.

{
  "error": "usps_auth_failed",
  "message": "OAuth token expired or invalid",
  "status": 401,
  "code": "AUTH_EXPIRED",
  "retryable": true
}
Error CodeHTTP StatusRetryableAction
api_key_required401Add X-API-Key header
invalid_api_key401Check that you're using the right live or free-evaluation key for this environment
api_key_revoked401Generate a new key
rate_limit_exceeded429YesCheck retryAfter in response, back off
monthly_limit_exceeded429Next monthUpgrade plan at /pricing
free_tier_rate_limit429YesSlow down or get a free API key
tier_required403Upgrade plan (batch requires Growth+)
usps_validation_error422NoFix input address data
usps_auth_failed401YesToken auto-refreshes — retry once
payment_token_unavailable503YesRetry after a few seconds
batch_too_large400NoSplit into batches of ≤50
credits_exhausted402After top-upBuy credits — the response carries required, balance and a top-up link

Prepaid credits

Credits are pay-as-you-go: no subscription, no invoice, no minimum. One credit is $0.001, and each endpoint debits by what its data is worth — a standardized address costs 1, a full area-intelligence report costs 15. The live table lives at GET /api/credits/pricing, which is the same map the meter charges from, so it can never quote a price you aren't billed.

Order of spend

  1. 1Your plan's monthly allowance, if you're on one. A subscriber under their cap never burns a credit.
  2. 2Credits, once the allowance is gone — or from the first call if you hold no subscription.
  3. 3Nothing. At zero the call returns 402 credits_exhausted before any work runs, so an exhausted balance costs you a millisecond, not a partial result.

Reading your balance

# Every metered response carries the balance in headers
X-Credits-Charged: 15
X-Credits-Remaining: 48210

# Full balance, expiry and burn
curl -s https://api.revaddress.com/api/my/credits \
  -H "X-API-Key: rv_live_..."

# Buy a block (returns a Stripe Checkout URL)
curl -s -X POST https://api.revaddress.com/api/my/credits/checkout \
  -H "X-API-Key: rv_live_..." \
  -H "Content-Type: application/json" \
  -d '{"block":"block_200"}'

Free on signup

1,000 credits, good for 30 days. Enough to finish an integration before you decide anything.

Expiry

Credits you paid for last 12 months. Bonus credits last 90 days and are always spent first, so a gift expiring can never cost you a dollar you paid.

Bring your own USPS license

BYOK merchants are never charged the USPS-verified surcharge — that fee lands on your own USPS invoice, not ours.

SDKs

Pythonv1.0.0
pip install usps-v3
Node.jsv1.0.0
npm install usps-v3
PHPv1.0.0
composer require revaddress/usps-v3-php