Address validation API for clean, deliverable US addresses
One REST call validates and standardizes the address, adds ZIP+4 and county, corrects typos, and returns a deliverable status. Built for developers.
Got a whole list? Upload the file and clean every row →
What comes back
Each lookup returns the standardized address split into clean components, plus the checks you need to trust it.
What it corrects
Users type addresses badly. Here is what verification cleans up, with real examples.
Misspelled streets and cities
Missing state or ZIP
Abbreviations and unit types
Out-of-order lines
Measured, not claimed: on 26,943 corrupted real US addresses (August 2026 benchmark) the right address was recovered 96.2% of the time on single typos or dropped fields and 99.9% on formatting-only damage, and inputs with a house number that does not exist got no answer 99.9% of the time. Full results by damage type in the accuracy benchmark; the test method is published so you can run it on any vendor.
Common use cases
A single GET request
Send an address, get structured JSON back. No SDK required.
# messy input, one call curl "https://api.sthan.io/v2/address-verification/usa/speculative/6000%20j%20st%20sacramento%20ca%2095819" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"inputAddress": "6000 j st sacramento ca 95819",
"fullAddress": "6000 J St, Sacramento, CA 95819-2605",
"addressLine1": "6000 J St",
"addressLine2": "Sacramento, CA 95819-2605",
"unitType": null,
"unitNumber": null,
"city": "Sacramento",
"stateCode": "CA",
"county": "Sacramento",
"zipCode": "95819",
"zip4": "2605",
"carrierRoute": "C007",
"deliveryPoint": "00",
"checkDigit": "5",
"cmar": "N",
"elot": "0041",
"elotIndicator": "A",
"recordType": "S",
"dpvConfirmation": "Y",
"defaultInd": "E",
"deliverableStatus": "Confirmed",
"lastVerifiedDate": "2025-10-27T12:41:13",
"matchMode": "Speculative",
"matchTier": "Exact",
"confidence": 1,
"matchCode": {
"houseNumber": "Matched",
"street": "Matched",
"unit": "NotApplicable",
"city": "Matched",
"state": "Matched",
"zipCode": "Matched",
"zip4": "Inferred"
},
"matchedFromCache": false,
"isError": false
}
Start free, scale when you need to
Monthly plans, billed by request volume. Annual saves up to 50%.
Higher volumes and annual discounts (up to 50%) on the plans page.
Questions developers ask
How fast is a lookup?
Complete addresses typically return in 1 to 5 seconds. Partial or ambiguous input can take longer while the API applies deeper recovery, so you get a cleaned result instead of an empty one.
Is address validation the same as address verification?
Yes, the two terms are used for the same job. The sthan.io API checks a US address against postal records, standardizes it, adds ZIP+4 and returns a deliverable status, whichever name you search for.
What does it correct?
Misspelled street and city names, missing state and ZIP codes, abbreviations (St, Ave, Blvd), unit types (Apt, Suite, #), and out-of-order components restructured into standard postal format.
Is it CASS-certified?
No. sthan.io is not CASS-certified. The API standardizes US addresses, corrects errors, adds ZIP+4, and returns a deliverable status. If you need CASS certification for presort-mail discounts, use a CASS-certified provider.
What do I need to get started?
An email address. Sign up, grab your API key, and send your first request. The free tier gives you 3,000 requests a month (up to 100 a day) with no card on file.
Clean your first address in two minutes
Sign up, copy your key, make the call. 3,000 requests a month, free.
Get your free API key