When to use this
/v1/geocode answers “where is this address.” This
endpoint answers a different question: “what are the canonical join keys for
this place, and how confident should I be?” Use /v1/lookup when the input
might be ambiguous, when you want a parcel attached, or when the input could
be a coordinate or an APN instead of a clean address.disposition is
one of:
resolved— a coordinate, plus a parcel when the geocode cleared parcel-quality accuracy.clarify— the input is genuinely ambiguous: multiple plausible matches at comparable confidence. You getcandidates, never a silent pick.no_match— an honest failure, with areason.
Request shape
Example: a clean, parcel-quality match
Area, hazard, and market context
Everyresolved response carries free context beyond the coordinate and
parcel, gathered concurrently with the parcel lookup (not after it — a
slow enrichment call never adds to the parcel leg’s latency):
- Jurisdiction codes, from the same Census Geocoder call as
county_fips/county/tract_geoid:state_fips,state,block_group_geoid,block_geoid,congressional_district(e.g."TX-27"),cbsa_name/cbsa_code(the metro or micro market, e.g."Austin-Round Rock-San Marcos, TX Metro Area"). - Elevation and flood risk:
elevation_m,fema_flood_zone,within_floodplain,coastal_high_hazard— the same catalog sources/v1/fetchuses (3DEP/EPQS elevation, FEMA NFHL). - County market context:
county_marketbundles ten metrics from five federal sources (Census PEP/BPS/ACS, FHFA, BLS QCEW) — population and its 1-year growth, net domestic migration, building permits (total, single-family, YoY %), home-price YoY %, employment (total, YoY %), and median household income. - Opportunity Zone status:
in_opportunity_zone(a federal tax-incentive designation) andopportunity_zone_tract_geoidwhen applicable. - Timezone:
timezone, the IANA zone name (e.g."America/Chicago").
null on its own failure —
none of them can turn an otherwise-successful resolved into anything else.
Same guarantee parcel_unavailable already makes for the parcel leg, applied
to enrichment too.
Example: genuine ambiguity — never a silent pick
Example: a lone winner in the wrong town is a no_match, never silent
Some inputs name a city Geocodio only has ONE plausible match for — but the wrong one, in a different town that happens to share the same street name and number. There’s no second candidate to offer, so this isn’tclarify;
it’s an honest no_match, same governing rule as everywhere else on this
page:
Saint/St.,
Mount/Mt., Fort/Ft. — so a legitimately-abbreviated city is never a
false positive). It only fires when the input actually names a city; a
street-only input has nothing to contradict.
Example: a parcel-lookup failure never demotes a good geocode
If the parcel vendor is unavailable — including a plan/quota issue on our end — the geocode still comes back honestly, just without a parcel:disposition away from
resolved. The geocode succeeded; only the parcel attempt didn’t, and the
response says exactly why.
A coarse geocode never gets a parcel
Below parcel-quality accuracy,resolved still returns the coordinate
honestly — the parcel lookup is never even attempted. This is the same
mechanism that protects /v1/geocode: a range_interpolation-grade match can
be off by up to ~2,872 m in rural areas, which is easily a different parcel.
Swapped coordinates are a hard error, never a nearest-match
APN-only lookup is not supported yet
Regrid’s only wired integration here is a point (lat/lng) lookup — there is no attribute-search-by-APN path. An APN-shaped input returns a cleanno_match:
Response shape
Errors
Input-validation failures specific to this endpoint:
A propagated address-leg failure (input that resolved to nothing at all, or
hit a geocoder-level problem) shares
/v1/geocode’s error
taxonomy exactly: address_form_unsupported,
geocode_unconfigured, geocode_forbidden, geocode_timeout,
geocode_upstream_error. A parcel-leg failure is never one of these — see
above, it degrades the response instead.
Limits
- One input per request. No batching in V1; loop client-side.
- 256 characters maximum, rejected rather than truncated.
- Address-leg caching follows
/v1/geocode’s rules: successful geocodes cache 30 days, negatives 24 hours, form-only normalization (case/whitespace/ punctuation) — see/v1/geocode’s Limits for the full detail, since the same cache backs both. - US only, same envelope as the rest of the API.
- Parcel data depends on Regrid. There is no free parcel tier — a parcel
is attached only when Regrid succeeds and the match is close enough to
trust; every other case is an honest
parcel_unavailable, not an error.
What we keep
Same retention as/v1/geocode: the
input you send (when it’s an address) is recorded alongside the coordinate it
resolved to, for 30 days, so a result can be audited later. If your use case
cannot accommodate this, resolve client-side and call /v1/fetch or
/v1/ask with lat/lng instead.