Educational

What an Address Verification API Returns, Field by Field

One real response, every field explained, and the same answers under five vendors' field names.

Elizabeth Parker
October 5, 2026 · 7 min read · Last reviewed

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).

FieldValue returnedWhat it means
addressLine11255 University Ave APT 142Street line in standard postal form: abbreviations, unit designator and spacing normalized
city, stateCode, zipCodeSacramento, CA, 95825Last line, standardized
zip46836The 4-digit add-on to the ZIP Code, part of the full ZIP+4
countySacramentoCounty the address sits in
carrierRouteC037The 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, checkDigit42, 2With 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
recordTypeHKind of postal record matched: S street, H high-rise (building with units), P PO box, R rural route, F firm, G general delivery
cmarNNot a commercial mail receiving agency (a private mailbox store)
elot, elotIndicator0133, AEnhanced line of travel: the order the carrier reaches this address, used to sort bulk mail
dpvConfirmationYDelivery Point Validation code: the street number and the unit are both confirmed
deliverableStatusConfirmedThe DPV code in words (see the next table)
matchCodestreet Matched, unit Matched, zip4 InferredWhat 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, confidenceExact, 1How closely the input matched the stored address
footnotes(none)Plain-language notes when something was corrected or could not be confirmed
lastVerifiedDate2026-10-02When 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 codeMeaningsthan.io deliverableStatusWhat to do
YPrimary number and any unit number confirmedConfirmedAccept the standardized address
DPrimary number confirmed; the unit number is missingConfirmedPrimaryOnlyAsk for the apartment or suite number
SPrimary number confirmed; the unit number given was not confirmedConfirmedPrimaryOnlyAsk the customer to check the unit number
NPrimary and any unit number not confirmedNotDeliverableAsk the customer to correct the address
(empty)No DPV result for this addressUnknownAccept 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.

Questionsthan.ioSmartyGoogle Address ValidationLobEasyPost
Is it deliverable?deliverableStatus, dpvConfirmationanalysis.dpv_match_codeuspsData.dpvConfirmationdeliverability (deliverable, deliverable_missing_unit, deliverable_incorrect_unit, deliverable_unnecessary_unit, undeliverable), deliverability_analysis.dpv_confirmationverifications.delivery.success
ZIP+4 add-onzip4components.plus4_codeuspsData.standardizedAddress.zipCodeExtensioncomponents.zip_code_plus_4verifications.zip4 checks and sets it
What changed?matchCode per field, footnotesanalysis.footnotesverdict.hasReplacedComponents, hasInferredComponents, hasSpellCorrectedComponentsNot returned as flagsCorrections applied; errors listed
Next step (returned by the API, or derived by you)Derive from deliverableStatusDerive from dpv_match_codeverdict.possibleNextAction (FIX, CONFIRM_ADD_SUBPREMISES, CONFIRM, ACCEPT)Derive from deliverabilityDerive from success and errors
Residential or businessNot returnedmetadata.rdimetadata.residential, businesscomponents.address_typeresidential
VacantNot returnedanalysis.dpv_vacantuspsData.dpvVacantdeliverability_analysis.dpv_vacantNot returned
Private mailbox (CMRA)cmaranalysis.dpv_cmrauspsData.dpvCmradeliverability_analysis.dpv_cmraNot returned
Carrier route, countycarrierRoute, countymetadata.carrier_route, county_nameuspsData.carrierRoute, countycomponents.carrier_route, countyNot returned
Match quality per fieldmatchCode (Matched, Corrected, Inferred)Not returned per fieldaddressComponents[].confirmationLevellob_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

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 US 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.
A code that says whether the address matched a delivery point in postal data. In the US it is based on Delivery Point Validation (DPV): Y confirmed, D confirmed but the unit number is missing, S confirmed but the unit number given was not confirmed, N not confirmed.
Y: the primary number and any unit number are confirmed. D: the primary number is confirmed and the unit number is missing. S: the primary number is confirmed and the unit number given is not confirmed. N: the primary number and any unit number failed DPV confirmation. An empty value means no DPV result was returned.
No. A Y result means the address is a known delivery point. Some APIs add two more flags: vacant means a delivery point that used to receive mail is now unoccupied and not receiving deliveries, and no-stat means postal data lists it as temporarily undeliverable (a list Smarty notes can be months out of date). Smarty's documentation advises checking that the vacant flag is N before treating a Y address as deliverable.
It is the DPV code D or S in words: the building or house number is confirmed, but the unit number is missing (D) or the unit number given was not confirmed (S). Ask the customer for the apartment or suite number.

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.

Elizabeth Parker
Written by Elizabeth Parker

Elizabeth Parker writes about how verification works, deliverability statuses, missing unit numbers, and how to measure an address API's accuracy.

More from Elizabeth Parker