🏑

Zillow Real Estate Data APIs

Search live US and Canada listings by city, ZIP, map point or drawn polygon, resolve full property facts by ID or plain address, pull current value estimates, and browse a reviewed agent directory. The practical replacement for the discontinued official Zillow API.

Open the standalone property demo

Your first city listing search

Replace <API_KEY> with an authorized platform API key from your dashboard. The query URL contains your key; keep it out of shared links, screenshots and logs.

The example searches for-sale listings in Los Angeles, CA on page 1, a query verified live with real listings returned. Inventory changes constantly, so treat any result as a snapshot; a valid filter that happens to match nothing returns HTTP 200 with an empty data array rather than an error.

Base URL https://api.opendata-api.com

curl -X GET 'https://api.opendata-api.com/api/project/zillow/search?key=<API_KEY>&location=Los+Angeles%2C+CA&home_status=FOR_SALE&sort=DEFAULT&listing_type=BY_AGENT&page=1'
Property request basics
  • The location search accepts free text β€” a city with state (Los Angeles, CA), a county, a neighborhood or a ZIP code β€” while agent-search uses a hyphenated city-state slug such as los-angeles-ca. Unrecognized search locations fail with a precise Invalid location message rather than silently falling back to another market.
  • home_status switches between FOR_SALE, FOR_RENT and RECENTLY_SOLD inventory, and sort orders by NEWEST, price, rooms, size or lot. Price, beds, baths, sqft, lot-size, HOA and monthly-payment filters mirror a portal search form; keep ranges plausible, since absurd values such as a trillion-dollar minimum can trigger a temporary 503 instead of an empty result.
  • Detail and valuation endpoints key off the zpid found on every search card or at the tail of its detailUrl; property-details and property-zestimate also accept a pasted listing-page URL, and property-by-address needs no ID at all. Persist zpids from search rows instead of re-deriving them on every run.
  • Radius search takes numeric lat and long with a diameter in miles between 0.1 and 100 (default 1.0). Polygon search takes comma-separated coordinate pairs, longitude first then latitude with a space between (lng1 lat1,lng2 lat2,...), and closes the ring automatically when the last pair differs from the first.
  • Every response envelope carries status (OK/ERROR), a request_id, an echo of your parameters and a data array. A valid filter that matches nothing returns HTTP 200 with data:[] β€” distinguish that from failures, and walk pages with the page parameter (pages 1-100) at up to 41 listings per page.

Read status before listing fields

Check HTTP status separately from the gateway's code/message/data business status: code 200 indicates gateway business success, while HTTP 200 alone does not. Inside a successful envelope, search payloads add their own status field (OK/ERROR), a request_id and an echo of your parameters next to the data array. A plausible filter with no matches returns HTTP 200 with an empty data array, while an unrecognizable location returns a precise Invalid location error β€” do not treat the two as the same outcome.

Choose a property workflow
Search live listings

Three search shapes cover the same inventory: search takes a free-text city, county, neighborhood or ZIP; search-by-coordinates needs a numeric lat/long center with an optional 0.1-100 mile diameter; search-by-polygon needs comma-separated lng lat vertex pairs. All three share the listing-card schema and filters, and each page returns up to 41 listings.

Inspect full property facts

property-details resolves a zpid from any search card (or a pasted listing-page URL) into the deep resoFacts block; property-by-address takes one free-text street address with no prior search. Field population varies by property β€” preserve nulls instead of inventing values.

Estimate current market value

property-zestimate returns the current estimated value for a zpid or listing URL in a minimal payload, verified to match the zestimate shown on that property's search card. Search cards already carry zestimate and rentZestimate fields, so reserve point lookups for scheduled refreshes.

Find reviewed agents

agent-search takes a city-state slug such as new-york-ny plus an optional name filter and returns up to 15 agents per page with review averages, formatted sales stats and a stable encodedZuid worth persisting. The total_agents count supports market sizing before you page.

GET /api/project/zillow/search-by-coordinates

Search Listings Around a Map Point

Full docs β†’
Details

Radius search for listings around a latitude/longitude center: pass lat, long and a diameter in miles (0.1-100, default 1.0). Verified live around Santa Monica (34.01822, -118.504744), which returned real condos at the point. The response uses the same envelope and listing-card schema as the location search: status, echoed parameters, and a data array with zpid, address, price, zestimate, bedrooms, bathrooms, livingArea, latitude/longitude, homeType, imgSrc and detailUrl per listing. All listing filters from the location search (home_status, sort, price, beds, baths, sqft, lot, HOA, home type) apply here too, and each page returns up to 41 results.

Test this real-estate endpoint 2 required Β· 28 optional
ParameterInValue
query
query
query
query
query
query
query
query
Optional filters and page controls (22)
ParameterInValue
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
curl -X GET 'https://api.opendata-api.com/api/project/zillow/search-by-coordinates?key=<API_KEY>&lat=34.01822&long=-118.504744&diameter=1.0&home_status=FOR_SALE&sort=DEFAULT&listing_type=BY_AGENT&page=1'
GET /api/project/zillow/search-by-polygon

Search Listings Inside a Custom Map Polygon

Full docs β†’
Details

Draw-your-own-area search: pass polygon as comma-separated coordinate pairs, each pair longitude first then latitude with a space between (lng1 lat1,lng2 lat2,...). The shape closes automatically if the last pair differs from the first, so irregular boundaries β€” a school district, a neighborhood outline, a flood zone β€” work directly. Results follow the same envelope and listing-card schema as the other searches: status, echoed parameters, and a data array with zpid, address, price, zestimate, beds, baths, living area, geo point, photo and detailUrl per listing. All standard filters (home_status, sort, price, beds, baths, sqft, lot, HOA, home type) and pagination apply. A ready-to-use example polygon is pre-filled so you can see the format working before drawing your own.

Test this real-estate endpoint 1 required Β· 27 optional
ParameterInValue
query
query
query
query
query
query
Optional filters and page controls (22)
ParameterInValue
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
query
curl -X GET 'https://api.opendata-api.com/api/project/zillow/search-by-polygon?key=<API_KEY>&polygon=-118.50394248962402+34.02926010734425%2C+-118.5084056854248+34.02926010734425%2C+-118.51286888122559+34.028691046671696%2C+-118.51527214050293+34.02570341552858%2C+-118.51321220397949+34.02257340341831%2C+-118.51750373840332+34.0215774662657%2C+-118.51681709289551+34.017878168811684%2C+-118.51286888122559+34.016455319170184%2C+-118.51080894470215+34.013324966013194%2C+-118.50789070129395+34.010621386310234%2C+-118.50411415100098+34.008629219864694%2C+-118.49982261657715+34.008486920473%2C+-118.49570274353027+34.007063913440916%2C+-118.4919261932373+34.00891381793271%2C+-118.48849296569824+34.01119056813859%2C+-118.4860897064209+34.014463289606894%2C+-118.48471641540527+34.018020452464164%2C+-118.48042488098145+34.01858958468914%2C+-118.4780216217041+34.0215774662657%2C+-118.47939491271973+34.0249920592766%2C+-118.47681999206543+34.02797971546417%2C+-118.47493171691895+34.03125178964367%2C+-118.4721851348877+34.034381481654364%2C+-118.47733497619629+34.035377268536706%2C+-118.48231315612793+34.035377268536706%2C+-118.48677635192871+34.035377268536706%2C+-118.49141120910645+34.03495050416125%2C+-118.49604606628418+34.034096968969656%2C+-118.49621772766113+34.03054047990366%2C+-118.50033760070801+34.02926010734425%2C+-118.50239753723145+34.032532132148006%2C+-118.50394248962402+34.02926010734425&home_status=FOR_SALE&sort=DEFAULT&listing_type=BY_AGENT&page=1'

Property Lookup

GET /api/project/zillow/property-details

Get Full Property Details by ID

Full docs β†’
Details

Resolve a property ID (zpid) β€” or a full listing-page URL β€” into a comprehensive fact sheet. zpids come from any search result card or from the tail of a detailUrl. Verified live: the details for a search hit returned the same address and price as the search card, plus the deep resoFacts block. The data object includes price, streetAddress, city, state, zipcode and resoFacts with bedrooms, bathrooms (full/half breakdown), appliances, associations (HOA name, fee and phone), associationFee, atAGlanceFacts, accessibility features, parking, year-built style fields and more. Field population varies by property β€” preserve nulls instead of inventing values. This is the enrichment step after search: search for candidates, then hydrate the ones a user actually opens.

Test this real-estate endpoint 0 required Β· 2 optional
ParameterInValue
query
query
curl -X GET 'https://api.opendata-api.com/api/project/zillow/property-details?key=<API_KEY>'
GET /api/project/zillow/property-by-address

Get Property Details by Street Address

Full docs β†’
Details

Resolve a plain street address into the same comprehensive property fact sheet as the ID-based lookup β€” no zpid required. Verified live with 1443 Bellevue Ave Los Angeles, CA 90026, which returned the matching home (4 bed / 3 bath, built 1910) with its current price. The data object carries price, streetAddress, city, state, zipcode and the resoFacts block (bedrooms, bathrooms with full/half breakdown, appliances, associations, parking and more), with the same per-property field variability. Ideal when your input is an address from a form, mailing list or spreadsheet rather than an ID from a prior search.

Test this real-estate endpoint 1 required Β· 0 optional
ParameterInValue
query
curl -X GET 'https://api.opendata-api.com/api/project/zillow/property-by-address?key=<API_KEY>&address=1443+Bellevue+Ave+Los+Angeles%2C+CA+90026'

Valuation

GET /api/project/zillow/property-zestimate

Get the Current Zestimate for a Property

Full docs β†’
Details

Return the current estimated market value (Zestimate) for a property by zpid or listing-page URL. Verified live: the estimate for a search-sourced zpid exactly matched the zestimate field on that property's search card, so search snapshots and point lookups stay consistent. The response is deliberately small β€” data contains the zestimate number β€” making this the cheapest way to refresh valuations across a portfolio on a schedule. zpids come from search result cards or the tail of a detailUrl. Pair with the rentZestimate field already present on search cards when you need rental estimates too.

Test this real-estate endpoint 1 required Β· 1 optional
ParameterInValue
query
query
curl -X GET 'https://api.opendata-api.com/api/project/zillow/property-zestimate?key=<API_KEY>&zpid=<zpid>'

Real-Estate Agents

Capabilities and validation scope

Live US and Canada property data API β€” the practical replacement for the discontinued official Zillow API. Search real listings, resolve full property facts, pull current value estimates, and browse a reviewed agent directory, all as clean JSON.

  • Listing search by city, ZIP code or neighborhood: for-sale, for-rent and recently-sold inventory with price, Zestimate, beds, baths, living area, days on market and photos
  • Map-first search: radius search around a latitude/longitude point, or a custom draw-an-area polygon for non-standard boundaries
  • Property resolution by ID or plain address: beds, baths, sqft, HOA fees, year built, parking, appliances and at-a-glance facts
  • Zestimate endpoint: current market value estimate for any property, consistent with the estimate shown in search results
  • Agent directory: search reviewed agents by city with sales counts, ratings and stable agent identifiers

Every response uses a consistent envelope (status, echoed parameters, data), returns precise error messages for bad input, and returns HTTP 200 with an empty data array when a valid filter simply matches nothing. Priced per request β€” no scraper maintenance, no blocked IPs, no broken parsers.

Guides