Skip to content
← Docs / API Reference

API Reference

41 routes. Every endpoint documented with parameters, request/response examples, and copy-paste code. Base URL: https://api.revaddress.com

Address validation, city/state lookup, and rate shopping work free — no API key needed. Just hit the endpoint.

Authentication

Free Tier

No API key required. IP-rate-limited: 30 req/10s. Address validation, rates, locations, service standards.

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

Hit the real USPS API right now. No API key, no signup — free tier, live data.

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
Full scan history with status categories
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. Free tier — no API key needed.

Rates

Free Tier

Domestic and international shipping rate quotes. Free tier.

Tracking

USPS package tracking by tracking number.

Labels

Create, download, list, and void USPS shipping labels.

Workflows

Durable label creation workflows with charge-approval gate.

Pickup

Schedule and manage free USPS carrier pickups.

Locations & Standards

Free Tier

USPS drop-off locations and delivery time standards. Free tier.

BYOK

Bring your own USPS Developer Portal credentials. AES-GCM encrypted at rest.

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_required401Add X-API-Key header
invalid_api_key401Check key prefix (rv_live_ or rv_test_)
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

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