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

Census standardization, geocoding and address extraction are free within limits. Paid provider operations need a funded account, and USPS verification takes 10 purchased credits ($0.01) per address on top of a paid plan. BYOK does not bypass access controls.

Free tier
  • Census address standardization and extraction
  • Street-level geocoding and the ACS demographics demo
  • Free operations use Census and local reference data only
  • No paid USPS or AI provider calls

USPS verification needs a paid plan and purchased credits. A Census answer is not a USPS DPV confirmation.

Paid plan and funding
  • Package tracking
  • Batch validation and the checkout widget
  • Dashboard and webhooks
  • Pickup scheduling

Paid workflows need a current payment. USPS verification also takes 10 purchased credits ($0.01) per address, and credits never top up automatically.

Higher volume
  • Increased throughput
  • Enterprise onboarding
  • Custom integrations

Talk to us when volume or licensing needs go past the published plans.

Census address standardization, geocoding, address extract, and the intelligence demo work free, with no API key or USPS license. USPS operations require paid access and funding; platform DPV additionally uses 10 purchased credits ($0.01) per address. An API key alone does not grant paid access. Labels remain disabled.

Authentication

Free tier

Free Census standardization, geocoding and local address extraction are IP-rate-limited. USPS shipping tools require a scoped API key and an active paid software plan; BYOK does not bypass paid access.

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 here, with no API key or signup. Keyless calls return Census standardization with coordinates; USPS DPV requires a paid plan and purchased funding. A keyless Census response must not be interpreted as a USPS delivery-point verdict.

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

Quickstart 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
Starter+
curl -s "https://api.revaddress.com/api/rates" \
  -H "X-API-Key: rv_live_YOUR_KEY" \
  -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, with no API key or license. USPS operations require current paid access and funding; platform DPV uses 10 purchased credits ($0.01) per address.

Rates

Domestic and international shipping rate quotes. Paid, funded account required; BYOK uses your USPS license where enabled.

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

USPS drop-off locations and delivery time standards. Paid, funded account required; BYOK uses your USPS license where enabled.

Admin Diagnostics

Admin-only diagnostics for protected operator use.

BYOK

Supported paid accounts can connect their own USPS app credentials for enabled integrations. Charges on that USPS license remain the account holder's responsibility. Connecting credentials does not bypass RevAddress paid access, request limits or funding controls. Guided form: /dashboard/#byok. Credentials are AES-GCM encrypted at rest; the account token manager handles OAuth refresh, retries and 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 code HTTP status Retryable Action
api_key_required401—Add X-API-Key header
invalid_api_key401—Check that you're using the right live or free-evaluation key for this environment
api_key_revoked401—Generate 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_required403—Upgrade plan (batch requires Growth+)
usps_validation_error422NoFix input address data
usps_auth_failed401YesToken refreshes automatically; 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

Software credits and provider funding are separate. One purchased credit is $0.001. Platform USPS verification requires a current paid plan and 10 purchased credits ($0.01) per address, additional to the software allowance. Signup and bonus credits cannot fund it. 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. 1Eligible software operations use your plan allowance first. The allowance does not pay for a new platform USPS verification.
  2. 2Purchased credits fund platform USPS verification before every upstream call. Other eligible software operations use credits after their allowance is exhausted.
  3. 3When paid entitlement or purchased funding is unavailable, the provider call stops. At zero a funded 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","terms_accepted":true,"terms_version":"2026-10-01"}'

Free on signup

1,000 promotional credits, good for 30 days, for eligible Census and Census data operations only. They cannot fund paid provider calls.

Expiry

Credits you paid for last 12 months. Bonus credits last 90 days and apply only to eligible software operations; they cannot fund USPS or another paid provider.

Bring your own USPS license

BYOK uses your own provider account where enabled. It does not bypass current paid access or funding checks. Charges on your USPS license remain your responsibility.

SDKs

Python v1.0.0
pip install usps-v3
Node.js v1.0.0
npm install usps-v3
PHP v1.0.0
composer require revaddress/usps-v3-php