Autocomplete US Locations
View all Redfin Property Data endpoints →Type-ahead resolver for US real-estate geography. Pass any free-text fragment (city, ZIP code, neighborhood, school district, building or address) and receive data.exactMatch plus data.rows, where each row carries id (the region identifier, e.g. 6_30749 for New York), type, name, subName (canonical 'New York, NY, USA' form), url (e.g. /city/30749/NY/New-York), searchType (Places, Schools, Agents or Buildings) and countryCode. Chain rows[].id into the region-search endpoints and rows[].subName into the location-search endpoints. A location that matches nothing still returns HTTP 200 with hasFakeResults=true and a sentinel row id 23_null (searchType 'Search On Map'), so check hasFakeResults before treating results as real places.
API Features
Live API Demo
🔒 Sign in to try it live
Log in to call this API with your own API key. New accounts get 100 free credits — no card required.
Log in / Sign upNo active API key found. Create one in your Dashboard, then reload this page. Dashboard →
/api/project/redfin/property-auto-complete API Response (JSON)
{} curl -X GET 'https://api.opendata-api.com/api/project/redfin/property-auto-complete?key=<API_KEY>&location=New+York'
Query Result
Use Cases
- Power a search-as-you-type location picker returning real cities, ZIPs, neighborhoods and addresses.
- Normalize user-typed place names into canonical 'City, ST, USA' strings before running listing searches.
- Extract exactMatch.id and feed it straight into a region-based for-sale, rent or sold search.
- Detect hasFakeResults=true responses to render a 'no such place' state instead of empty listings.
Frequently asked questions
Does Redfin have an official API? How do I get the data without one?
Redfin retired its public developer offering long ago. This project packages the same place, search and detail data the website uses into a stable JSON API — one authenticated call per question, with no scraper or proxy pool to maintain.
How do I turn a city name into the region ID the search endpoints need?
Send the city fragment as location, then read exactMatch.id or rows[].id — a token like 6_30749 — and pass it straight in as the regionId of the region-search endpoints.
Will an unresolvable place throw an error?
No. A no-match lookup returns HTTP 200 with hasFakeResults=true plus a sentinel row whose id is 23_null and searchType is 'Search On Map'. Check that flag before treating rows as real places.