
Address Verification APIs: USPS, Google, and SmartyStreets Compared
Bad addresses cause failed deliveries and wasted money. I tested three address verification APIs with 500 real addresses to see which one actually catches errors.

Address Verification APIs: USPS, Google, and SmartyStreets Compared
I pulled 500 shipping addresses from a real ecommerce store's order history. 500 addresses that real customers typed into a checkout form. Then I ran every single one through three address verification APIs: USPS Address API, Google Address Validation, and SmartyStreets (now Smarty).
47 of those 500 addresses had problems. Wrong ZIP codes, misspelled street names, missing apartment numbers, non-existent addresses. That's 9.4% — roughly one in every ten orders.
What happens when you ship to a bad address? The carrier returns it. You pay for shipping both ways. The customer gets annoyed. Maybe they don't reorder. At an average return shipping cost of $8-12 per package, those 47 bad addresses from just 500 orders would cost $376-564 in wasted shipping alone.
Address verification catches these problems before you print the label.
What Address Verification Does
An address verification API takes a raw address (what the customer typed) and does three things:
Example
Input (what customer typed): > 123 Main St, Apt B, San Franciso, CA 94102
Output (after verification): > 123 MAIN ST APT B, SAN FRANCISCO, CA 94102-3456
The API caught the misspelling of "Francisco" and added the ZIP+4 extension. Minor fix, but it prevents a potential delivery delay.
The Three APIs I Tested
1. USPS Address Validation API
USPS offers a free address validation API through their Web Tools suite. Since USPS maintains the official database of US delivery points, this is the authoritative source.
| Feature | Details |
|---|---|
| Cost | Free (registration required) |
| Coverage | US addresses only |
| Rate limit | No published limit (reasonable use) |
| Response time | 100-300ms |
| Authentication | Username/password (XML API) |
| Format | XML (old school) |
Cons: US-only, XML API feels ancient, no batch endpoint (one address per request), residential/commercial classification not included in free tier.
2. Google Address Validation API
Google launched their Address Validation API as part of Google Maps Platform. It uses Google's address data plus USPS data for US addresses.
| Feature | Details |
|---|---|
| Cost | $0.005 per request (first $200/month free) |
| Coverage | Global (40+ countries) |
| Rate limit | 6,000 requests/minute |
| Response time | 50-200ms |
| Authentication | API key |
| Format | JSON (REST) |
Cons: Costs money after free tier, can be overly permissive (accepts addresses that aren't actually deliverable), requires Google Cloud account setup.
3. SmartyStreets (Smarty) US Street API
Smarty (formerly SmartyStreets) is the most popular commercial address verification service for US shipping. They license USPS data and add their own intelligence layer.
| Feature | Details |
|---|---|
| Cost | $0.001-0.004 per lookup (volume pricing) |
| Coverage | US + international |
| Rate limit | Varies by plan |
| Response time | 30-100ms |
| Authentication | Auth ID + Auth Token |
| Format | JSON (REST) |
Cons: Not free (though cheaper per lookup than Google), requires subscription.
The 500-Address Test
I categorized my 500 test addresses into groups and tracked how each API handled them.
Test Results Summary
| Category | Count | USPS Correct | Google Correct | Smarty Correct |
|---|---|---|---|---|
| Valid, well-formatted | 362 | 362 (100%) | 362 (100%) | 362 (100%) |
| Valid, minor typos | 58 | 56 (96.6%) | 57 (98.3%) | 58 (100%) |
| Valid, wrong ZIP | 24 | 24 (100%) | 24 (100%) | 24 (100%) |
| Valid, missing unit/apt | 15 | 14 (93.3%) | 11 (73.3%) | 15 (100%) |
| Invalid/non-existent | 22 | 20 (90.9%) | 16 (72.7%) | 21 (95.5%) |
| PO Box addresses | 12 | 12 (100%) | 10 (83.3%) | 12 (100%) |
| Military (APO/FPO) | 7 | 7 (100%) | 5 (71.4%) | 7 (100%) |
| Total accuracy | 500 | 495 (99.0%) | 485 (97.0%) | 499 (99.8%) |
Key Findings
Smarty was the most accurate overall at 99.8%. It caught virtually everything, including tricky cases like missing apartment numbers and non-existent street numbers.
USPS was a close second at 99.0%. As the authoritative source for US addresses, it's extremely reliable for validation. Its main misses were on addresses with complex unit designations.
Google was the weakest for shipping-specific validation at 97.0%. Google tends to accept addresses that are plausible but not necessarily deliverable. It's great for geocoding and mapping, but for shipping validation, it's too permissive. It accepted 6 addresses that USPS and Smarty both flagged as undeliverable.
The Missing Apartment Problem
This is the trickiest category. When a customer types "123 Main St" but the address is actually "123 Main St Apt 4B", some APIs catch it and some don't.
| Scenario | USPS | Smarty | |
|---|---|---|---|
| "123 Main" is a single-family home | All three: valid | ||
| "123 Main" is a multi-unit building, no unit given | Warns "unit missing" | Accepts as valid | Warns "unit missing, possible units: 1A-4B" |
| "123 Main Apt 5" but unit 5 doesn't exist | Warns "invalid unit" | Accepts as valid | Warns "invalid unit, valid units: 1A-4B" |
Cost Comparison
Let's compare costs at different volume levels:
| Monthly Lookups | USPS | Smarty | |
|---|---|---|---|
| 1,000 | Free | Free (within $200 credit) | $4 |
| 5,000 | Free | Free (within $200 credit) | $15 |
| 10,000 | Free | $25 | $25 |
| 50,000 | Free | $225 | $75 |
| 100,000 | Free | $475 | $125 |
| 500,000 | Free | $2,475 | $500 |
At high volumes, Smarty is significantly cheaper than Google while being more accurate for shipping use cases.
Integration Complexity
| Factor | USPS | Smarty | |
|---|---|---|---|
| Account setup | Register at USPS Web Tools | Create Google Cloud project, enable API, billing | Sign up, get API keys |
| Setup time | 30-60 minutes | 45-90 minutes | 15-30 minutes |
| API format | XML (SOAP-like) | JSON REST | JSON REST |
| SDK availability | None official, community libs | Official SDKs for 10+ languages | Official SDKs for 8+ languages |
| Documentation quality | Adequate but dated | Good | Excellent |
| Batch support | No | No | Yes (100/request) |
| Integration effort | 4-8 hours | 2-4 hours | 1-3 hours |
Code Comparison
USPS (XML request):
// Requires XML building and parsing
// No official SDK
// Request format is verbose XML
Google (REST):
// POST to addressvalidation.googleapis.com
// Clean JSON request/response
// Good but some shipping-specific fields buried in response
Smarty (REST):
// GET with query parameters
// Simplest request format
// Response includes shipping-specific fields at top level
When to Use Each API
Use USPS When:
- Budget is zero and you can deal with XML
- You only ship within the US
- You need authoritative USPS validation for CASS compliance
- Volume is low enough that one-at-a-time requests are fine
Use Google When:
- You ship internationally and need global coverage
- You also need geocoding or place autocomplete
- You're already in the Google Maps Platform ecosystem
- Shipping address accuracy is secondary to general address quality
Use Smarty When:
- Shipping accuracy is your primary concern
- You need batch processing for order imports
- You want residential/commercial classification (affects shipping rates)
- You need fast response times for real-time checkout validation
- You want the best documentation and developer experience
The Residential vs Commercial Distinction
Here's a bonus that matters for shipping costs: residential deliveries cost more than commercial deliveries at UPS and FedEx.
| Carrier | Residential Surcharge (2026) |
|---|---|
| UPS Ground | $4.25 per package |
| FedEx Ground | $4.15 per package |
| USPS | No surcharge (same rate) |
| API | Residential/Commercial Classification |
|---|---|
| USPS (free) | Not included |
| USPS (CASS certified) | Available through certified providers |
| Available but sometimes inaccurate | |
| Smarty | Included in standard response, highly accurate |
dpv_footnotes field and rdi (Residential Delivery Indicator) with every lookup. This alone can justify the cost of the API if you ship via UPS or FedEx.Implementation Strategy
Here's what I recommend for most ecommerce stores:
For Checkout (Real-Time)
Use Smarty or Google for real-time validation as the customer types. Show suggestions, catch typos, and warn about missing apartment numbers before the order is placed.For Order Import (Batch)
Use Smarty's batch API to validate addresses when importing orders from marketplaces. Flag problematic addresses before printing labels.For Label Creation (Final Check)
Use USPS validation as a final check before printing USPS labels. This ensures CASS compliance and catches any remaining issues.The Dual-API Approach
Some high-volume shippers use two APIs: Smarty for the primary validation (fast, accurate, batch capable) and USPS as a secondary check for edge cases. The cost of running addresses through two APIs is minimal compared to the cost of returned packages.ROI Calculation
Let's do the math on whether address verification pays for itself:
| Metric | Without Verification | With Verification |
|---|---|---|
| Orders per month | 5,000 | 5,000 |
| Bad address rate | 9.4% (470 orders) | 1.5% (75 orders)* |
| Return shipping cost | $10 avg | $10 avg |
| Monthly return cost | $4,700 | $750 |
| Verification API cost | $0 | $15-25 |
| Net monthly savings | $3,925-3,935 |
You're spending $15-25/month to save nearly $4,000/month. The ROI is absurd. Even at the most generous estimates, address verification pays for itself within the first day of each month.
One Last Thing
Address verification isn't glamorous. Nobody tweets about their address validation pipeline. But it's one of the highest-ROI improvements you can make to your shipping operation. A 9.4% bad address rate dropping to 1.5% means fewer returns, fewer angry customers, fewer customer service tickets, and a lot less wasted money.
Pick an API. Integrate it. Watch your return rate drop. It's that straightforward.
Ready to save on shipping?
Get started with Atoship for free and access discounted USPS, UPS, and FedEx rates. No monthly fees, no contracts.
Create Free Account



