What an Address Verification API Returns, Field by Field
One real response, every field explained, and the same answers under five vendors' field names.
A US address verification API returns three things that matter most: the address in standard postal form, the ZIP+4, and a deliverability status that says whether the address is a known delivery point. Postal-focused APIs usually also return the carrier route, county, delivery point code, record type and flags such as private mailbox, plus a note of which parts of your input were changed. Field names differ by vendor. The core postal fields (ZIP+4, DPV code, carrier route, delivery point) are derived from postal data, and each vendor adds its own matching logic and data on top.
One real response, field by field
Input: 1255 University Ave Apt 142, Sacramento, CA 95825, sent to the sthan.io verification API on October 3, 2026. The left column is the field name sthan.io uses; other vendors use different names for the same data (see the vendor table below).
| Field | Value returned | What it means |
|---|---|---|
addressLine1 | 1255 University Ave APT 142 | Street line in standard postal form: abbreviations, unit designator and spacing normalized |
city, stateCode, zipCode | Sacramento, CA, 95825 | Last line, standardized |
zip4 | 6836 | The 4-digit add-on to the ZIP Code, part of the full ZIP+4 |
county | Sacramento | County the address sits in |
carrierRoute | C037 | The postal route that delivers it: a letter (C city, R rural, H highway contract, B PO box section, G general delivery) and three digits |
deliveryPoint, checkDigit | 42, 2 | With the ZIP Code and ZIP+4, the two-digit delivery point makes an 11-digit delivery point number; adding the check digit gives the 12-digit delivery point barcode. For a high-rise record the two digits stand for the unit (secondary) information at that address |
recordType | H | Kind of postal record matched: S street, H high-rise (building with units), P PO box, R rural route, F firm, G general delivery |
cmar | N | Not a commercial mail receiving agency (a private mailbox store) |
elot, elotIndicator | 0133, A | Enhanced line of travel: the order the carrier reaches this address, used to sort bulk mail |
dpvConfirmation | Y | Delivery Point Validation code: the street number and the unit are both confirmed |
deliverableStatus | Confirmed | The DPV code in words (see the next table) |
matchCode | street Matched, unit Matched, zip4 Inferred | What happened to each part of the input: matched as typed, corrected, or filled in. The ZIP+4 was not typed, so it is Inferred |
matchTier, confidence | Exact, 1 | How closely the input matched the stored address |
footnotes | (none) | Plain-language notes when something was corrected or could not be confirmed |
lastVerifiedDate | 2026-10-02 | When sthan.io last confirmed this address record against postal data (or first stored it, if it has not been re-checked since) |
Deliverability status: what each code means
For US postal verification, deliverability is usually judged with Delivery Point Validation (DPV). The definitions below are from Google's Address Validation reference. Google, Smarty and Lob return these codes under different field names; Lob also turns them into its own deliverability values. EasyPost reports its delivery check through success, errors and details rather than a DPV code.
| DPV code | Meaning | sthan.io deliverableStatus | What to do |
|---|---|---|---|
| Y | Primary number and any unit number confirmed | Confirmed | Accept the standardized address |
| D | Primary number confirmed; the unit number is missing | ConfirmedPrimaryOnly | Ask for the apartment or suite number |
| S | Primary number confirmed; the unit number given was not confirmed | ConfirmedPrimaryOnly | Ask the customer to check the unit number |
| N | Primary and any unit number not confirmed | NotDeliverable | Ask the customer to correct the address |
| (empty) | No DPV result for this address | Unknown | Accept with a flag, or review before shipping |
A Y does not mean anyone lives there. Some APIs, including Smarty and Google, also return vacant and no-stat flags. Smarty advises checking that dpv_vacant is N before treating a Y address as deliverable, and dpv_no_stat too, with caution, because the no-stat list can be months out of date. sthan.io does not return a vacant flag.
The same answers under five vendors' field names
Read from each vendor's API reference on October 3, 2026. "Not returned" means the field is not in that vendor's documented response.
| Question | sthan.io | Smarty | Google Address Validation | Lob | EasyPost |
|---|---|---|---|---|---|
| Is it deliverable? | deliverableStatus, dpvConfirmation | analysis.dpv_match_code | uspsData.dpvConfirmation | deliverability (deliverable, deliverable_missing_unit, deliverable_incorrect_unit, deliverable_unnecessary_unit, undeliverable), deliverability_analysis.dpv_confirmation | verifications.delivery.success |
| ZIP+4 add-on | zip4 | components.plus4_code | uspsData.standardizedAddress.zipCodeExtension | components.zip_code_plus_4 | verifications.zip4 checks and sets it |
| What changed? | matchCode per field, footnotes | analysis.footnotes | verdict.hasReplacedComponents, hasInferredComponents, hasSpellCorrectedComponents | Not returned as flags | Corrections applied; errors listed |
| Next step (returned by the API, or derived by you) | Derive from deliverableStatus | Derive from dpv_match_code | verdict.possibleNextAction (FIX, CONFIRM_ADD_SUBPREMISES, CONFIRM, ACCEPT) | Derive from deliverability | Derive from success and errors |
| Residential or business | Not returned | metadata.rdi | metadata.residential, business | components.address_type | residential |
| Vacant | Not returned | analysis.dpv_vacant | uspsData.dpvVacant | deliverability_analysis.dpv_vacant | Not returned |
| Private mailbox (CMRA) | cmar | analysis.dpv_cmra | uspsData.dpvCmra | deliverability_analysis.dpv_cmra | Not returned |
| Carrier route, county | carrierRoute, county | metadata.carrier_route, county_name | uspsData.carrierRoute, county | components.carrier_route, county | Not returned |
| Match quality per field | matchCode (Matched, Corrected, Inferred) | Not returned per field | addressComponents[].confirmationLevel | lob_confidence_score (one score) | Not returned |
Lob also returns valid_address, which checks a wider dataset (postal data, open mapping data and Lob's own delivery data), so an address can be valid but not deliverable. Lob's and EasyPost's references list more fields than this table shows; the rows cover the questions a form or a mailing list has to answer. Prices for each are in how address verification APIs are priced.
Where sthan.io fits. sthan.io returns the standardized address, ZIP+4, county, carrier route, delivery point, record type, private mailbox flag, DPV code, a deliverability status in words and a per-field match code, as in the response above. It does not return residential or vacant flags, and it is not CASS-certified. 100 verifications a month are free; paid plans start at $12 for 10,000.
Frequently Asked Questions
Sources
All read October 3, 2026, and re-checked October 5, 2026: live sthan.io verification responses for the address shown; Google Address Validation API reference (validateAddress, Verdict, UspsData, PossibleNextAction) and "Understand the response"; Smarty US Street API documentation (output field definitions); Lob API documentation (US verification deliverability values); EasyPost Addresses documentation (verifications object).
See the full response for your own address
100 free verifications a month, no credit card. Standardized address, ZIP+4 and deliverability status on every call.