Resolve an address to its Zillow canonical URL + zpid
zillow_get_by_addressResolve an address to Zillow's canonical URL and property ID (zpid), using smart fallbacks for rural and locality-mismatched addresses.
Instructions
Resolve a free-text address (with optional city/state/zip) to its Zillow canonical homedetails URL and zpid. IMPORTANT: for rural / mountain-MLS / locality-mismatched addresses (the search-fallback rung is often the ONLY rung that hits), ALWAYS pass price_min and price_max if you have any sense of the property's price band — without them the city/state search can't disambiguate and the call returns { resolved: false }. The price params are not optional niceties; they are frequently load-bearing. Tries up to 5 rungs: (1) direct resolver hit, (2) autocomplete typeahead — Zillow's own canonical address suggestions, whole-token street-matched then resolved to a zpid (high recall), (3) bidirectional street-token swap ("Rd" <-> "Road", "Hts" <-> "Heights", "Bluebird" <-> "Blue Bird"), (4) locality remap — city-drop + locality-alias substitution when the caller-supplied city fails (real-world cases: Lake Lure <-> Rutherfordton, Beech/Sugar Mountain <-> Banner Elk), (5) city/state search fallback bounded by the price band. Returns via: "direct" | "autocomplete" | "suffix_expansion" | "locality_remap" | "search_fallback" so the caller knows how the match was made; when the locality remap fires, queried_city (what you sent) and resolved_city (what Zillow returned) are both set so the caller can see the substitution. Degrades to { resolved: false } when ALL rungs miss — does not throw. Read-only, no auth required.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | ZIP code (e.g. "28746"). | |
| city | No | City name (e.g. "Lake Lure"). | |
| state | No | Two-letter state code (e.g. "NC"). | |
| address | Yes | Street address (e.g. "126 Sleeping Bear Ln"). | |
| price_max | No | Upper bound for the search-fallback rung. Pair with `price_min` — same load-bearing role for rural/remapped-locality addresses. | |
| price_min | No | Lower bound for the search-fallback rung. Frequently load-bearing: for rural / locality-mismatched addresses this is often the only rung that hits, and without a price band it cannot disambiguate. Pass it if you have ANY sense of the price band. |