/api-reference/lookup
POST /v1/lookup
cURL
curl --request POST \
--url https://api.example.com/v1/lookup \
--header 'Content-Type: application/json' \
--data '
{
"input": "<string>",
"include_parcel": true
}
'Resolve an address, coordinate, or APN to canonical join keys: a coordinate, resolved address, and — when it’s safe to — a parcel.
cURL
curl --request POST \
--url https://api.example.com/v1/lookup \
--header 'Content-Type: application/json' \
--data '
{
"input": "<string>",
"include_parcel": true
}
' When to use this
- 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 get candidates, never a silent pick.
- no_match — an honest failure, with a reason.
Request shape
Example: a clean, parcel-quality match
curl -s https://api.mireye.com/v1/lookup \
-H "Authorization: Bearer $MIREYE_API_TOKEN" \
-H 'content-type: application/json' \
-d '{"input": "480 Berdoll Ln, Cedar Creek TX"}' | jq Area, hazard, and market context
- 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/fetch uses (3DEP/EPQS elevation, FEMA NFHL).
- County market context: county_market bundles 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) and opportunity_zone_tract_geoid when applicable.
- Timezone: timezone, the IANA zone name (e.g. "America/Chicago").
Example: genuine ambiguity — never a silent pick
curl -s https://api.mireye.com/v1/lookup \
-H "Authorization: Bearer $MIREYE_API_TOKEN" \
-H 'content-type: application/json' \
-d '{"input": "1100 King St W, Toronto"}' | jq Example: a lone winner in the wrong town is a no_match, never silent
curl -s https://api.mireye.com/v1/lookup \
-H "Authorization: Bearer $MIREYE_API_TOKEN" \
-H 'content-type: application/json' \
-d '{"input": "100 Main St, Columbus"}' | jq Example: a parcel-lookup failure never demotes a good geocode
JSON
{
"disposition": "resolved",
"lat": 38.8977,
"lng": -77.0365,
"resolved_address": "1600 PENNSYLVANIA AVE NW, WASHINGTON, DC",
"parcel_unavailable": true,
"parcel_unavailable_reason": "regrid_quota_exhausted",
"match_method": "geocode_rooftop",
"confidence": 0.95
} A coarse geocode never gets a parcel
Swapped coordinates are a hard error, never a nearest-match
curl -s -i https://api.mireye.com/v1/lookup \
-H "Authorization: Bearer $MIREYE_API_TOKEN" \
-H 'content-type: application/json' \
-d '{"input": "-73.9,40.7"}' APN-only lookup is not supported yet
JSON
{
"disposition": "no_match",
"reason": "apn_not_supported_in_v1",
"hint": "APN-only lookup isn't supported yet -- supply an address or coordinate."
} Response shape
Errors
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
Successful Response