Educational

Address Validation for Real Estate and Property Data

Listings, tax rolls and CRMs each write the same property address their own way. Here is what one standard address form looks like, tested live on a landmark and an office building, and where address verification stops and property data begins.

Sofia Marquez
October 16, 2026 · 6 min read · Last reviewed

An address validation API for real estate and property data checks US property addresses against postal data and standardizes the ones it matches into one form: street, unit, city, state, ZIP+4 and county. You then use that form to find listings, tax records and CRM entries that may be the same property. It does not tell you who owns the property or what it is worth; property data APIs such as ATTOM and BatchData sell that.

Why property records need one address form

A listing feed may say "525 South Winchester Boulevard". A tax record may say "525 S Winchester Blvd". A plain text match treats them as two properties. In our test the long form came back as "525 S Winchester Blvd, San Jose, CA 95128-2537", so both records now share the same street line and show up as a candidate match.

Four parts of the address do most of the work when you match records:

  • Street line. Abbreviations, directions and suffixes written one way ("S", "Blvd").
  • Unit. Returned as its own fields (unit type and unit number). In our test, "#900" came back as unit type "STE" and unit number "900".
  • ZIP+4. The four digits after the ZIP Code. In our test, a suite and its building got different ZIP+4 codes (see below).
  • County. Useful when you join to county-level records. Verification returns the county name, for example "Santa Clara". Geocoding returns "Santa Clara County" plus a numeric county code, "06085". Pick one form before you join.

Live test: a landmark and an office building

We sent three addresses to the sthan.io verification API on October 16, 2026: a landmark in San Jose with no units, one suite in a San Francisco office building, and the same building with no suite. Each answered in under 2 seconds.

What we typedStandardized addressUnit fieldsCountyRecord typedeliverableStatus
525 South Winchester Boulevard, San Jose CA525 S Winchester Blvd, San Jose, CA 95128-2537noneSanta ClaraS (street)Confirmed
1355 Market Street #900, San Francisco CA 941031355 Market St STE 900, San Francisco, CA 94103-1337STE / 900San FranciscoH (highrise)Confirmed
1355 Market St, San Francisco, CA 94103 (answer returned at 8:32 a.m. Pacific)1355 Market St, San Francisco, CA 94103-1307noneSan FranciscoS (street)ConfirmedPrimaryOnly

Four things stand out. The San Jose input had no ZIP Code; the response filled in 95128-2537 and marked both the ZIP Code and the ZIP+4 as inferred. The "#900" came back split into unit type "STE" and unit number "900". The building without a suite came back ConfirmedPrimaryOnly, which sthan.io's documentation defines as "primary OK but secondary unit missing or invalid", with a different ZIP+4 (1307) from the suite (1337). And that building record had record type S, while the suite had H, so the record type alone does not tell you a building has units.

Find duplicates on the standardized address

The building result above is the trap. If one record has the suite and another does not, they get different ZIP+4 codes, so a key built on ZIP+4 splits them, and a key built on street and 5-digit ZIP alone lumps every suite in the building together. A shared address also does not prove that two listings, sales or parcel records are the same property.

Our suggested workflow: use the standardized street, unit and ZIP to find candidate matches, then confirm the property or parcel identifier and the record type before you merge.

SituationKey for finding candidatesSuggested next step
Status Confirmed, unit fields emptyStandardized street line + 5-digit ZIPCandidate match. Confirm the parcel identifier and record type before merging.
Status Confirmed, unit fields filledStandardized street line including unit + 5-digit ZIPCandidate match only when the unit matches too. Then confirm the parcel identifier.
Status ConfirmedPrimaryOnlyStreet line without unit + 5-digit ZIPDo not merge into a unit record. Find the unit first.
Status NotDeliverable or UnknownNone yetHold for review instead of merging.

Coordinates do not settle it either. In our geocoding test below, the suite and the building came back as two points 39.2 meters apart, so do not merge records on latitude and longitude.

For a property file in a spreadsheet, the same logic applies: verify each row once, store the standardized fields next to the original, and look for candidate duplicates on the stored fields. sthan.io's Address Cleaner takes an Excel, .csv or .tsv file of up to 100,000 rows and gives back your original columns plus the cleaned address, ZIP+4, county and a status for every row. It costs $1.20 per 1,000 rows found in postal records; rows that need review or are not found are free, and your first 100 rows each day are free.

Geocode for maps

Maps and radius searches need coordinates, which come from a geocoding API, a separate product from verification. sthan.io's forward geocoding endpoint is /Geocoding/USA/Forward/{address} and the reverse endpoint is /Geocoding/USA/Reverse/{lat}/{lon}. Here is what they returned on October 16, 2026:

RequestResultaccuracy.typeconfidenceCounty
Forward: 525 S Winchester Blvd, San Jose, CA 9512837.3189377, -121.9507648; 525 S Winchester Blvd, San Jose, CA 95128-2537address_point0.84Santa Clara County (06085)
Reverse: 37.3189377, -121.9507648525 S Winchester Blvd, San Jose, CA 95128, distance 0address_point0.95Santa Clara County (06085)
Forward: 1355 Market St Ste 900, San Francisco, CA 9410337.776548, -122.416795; 1355 Market St STE 900, San Francisco, CA 94103-1337address_point0.83San Francisco County (06075)
Forward: 1355 Market St, San Francisco, CA 9410337.776740, -122.416422; 1355 Market St, San Francisco, CA 94103rooftop0.9San Francisco County (06075)

The reverse lookup on the San Jose point came back to the same address. All four answers carried a county, written with the word "County" and a numeric code, which differs from the verification response. Forward and reverse geocoding are included together in the same plan: 3,000 free requests a month (up to 100 a day), then from $5 a month for 10,000.

A geocoder tells you where an address sits on the map. It is not a deliverability check, so run verification first if you also need the standardized postal address.

Address verification and property data APIs answer different questions

sthan.io's address verification and property data APIs such as ATTOM and BatchData are different products. They answer different questions, so their prices are not comparable.

Address verification (sthan.io)Property data APIs (for example ATTOM, BatchData)
Question it answersIs this a real, deliverable address, and what is its standard form?What is known about the property at this address?
What comes backStandardized address, unit, city, state, ZIP+4, county, record type, deliverability statusATTOM's Property API: "property characteristics, ownership, transactions, and valuation metrics". BatchData lists "1,000+ data points across 155 million properties", including owner names, automated valuation models (AVM) and mortgage and lien data
Owner, value, tax fieldsNone in sthan.io's responseYes
Typical useClean and match addresses before they enter your systemsEnrich a property record once its address is known

The two work together: standardize the address first, then look it up in a property data source.

Where sthan.io fits. sthan.io verifies US property addresses and standardizes the ones it matches: street line, separate unit fields, ZIP+4, county name and a deliverability status, plus geocoding for maps and Address Cleaner for whole spreadsheets. Verification is free for 3,000 lookups a month (up to 100 a day) with no credit card; paid plans start at $12 a month for 10,000. Its responses carry no owner, value or tax fields. sthan.io is not CASS-certified.

Frequently Asked Questions

It checks each property address against postal data and standardizes the ones it matches into one form (street, unit, city, state, ZIP+4 and county). Listings, tax records and CRM entries that spell the same address differently then line up on the same standardized text, so you can find candidate matches and confirm them.
In our October 16, 2026 test, the same San Francisco office building returned ZIP+4 94103-1307 without a suite (answer returned at 8:32 a.m. Pacific) and 94103-1337 with STE 900, and the record without a suite came back ConfirmedPrimaryOnly. Match on the standardized street line including the unit, not on ZIP+4 alone.
No. sthan.io's verification response includes the standardized address, unit, county, ZIP+4, record type and a deliverability status, and no owner, value or tax fields, so get those from a property data source. ATTOM and BatchData, for example, sell ownership, valuation and mortgage information.
Yes, with a geocoding API. On October 16, 2026 sthan.io's geocoding returned latitude 37.3189 and longitude -121.9508 for 525 S Winchester Blvd, San Jose, with accuracy type address_point and Santa Clara County. Forward and reverse geocoding are in one plan.
3,000 verifications a month are free with no credit card, at up to 100 a day and 10 a minute. Paid plans start at $12 a month for 10,000 verifications. sthan.io is not CASS-certified.

Sources

All read October 16, 2026: live sthan.io API calls to /v2/address-verification/usa/ (three addresses above), /Geocoding/USA/Forward/ (three addresses above) and /Geocoding/USA/Reverse/ (the San Jose point); sthan.io/docs (deliverableStatus and recordType definitions, geocoding paths, free-tier limits); sthan.io/products/address-verification-usa; sthan.io/products/geocoding-usa; sthan.io/products/reverse-geocoding-usa; sthan.io/address-cleaner; api.developer.attomdata.com/docs; attomdata.com/data/property-data/; batchdata.io. Prices change; check the vendor page before you buy.

Standardize your property addresses free

3,000 verifications a month, no credit card. Street line, unit, ZIP+4, county and deliverability status with each successful match.

Sofia Marquez
Written by Sofia Marquez

Sofia Marquez writes about geocoding, reverse geocoding and IP geolocation for developers.

More from Sofia Marquez