~ / endpoints / Home Price & Sales Data API

Zillow Home Price Data Scraper API

Our Zillow home price data API takes a location, a city, a ZIP, or a neighborhood, and returns every for-sale listing with its list price, Zestimate, beds, baths, and square footage as structured JSON, so you can build price and sales data by ZIP code without a manual export.

Get a free API keyAll data types
1,000
free requests
2.6s
median response
JSON
structured output
1
call per location

Quickstart

cURL
curl "https://api.zillowscraperapi.com/api/v1/zillow/search?location=Seattle,%20WA&page=1&api_key=$API_KEY"
Python
import requests

BASE = "https://api.zillowscraperapi.com"
API_KEY = "YOUR_API_KEY"

# Pass a city, ZIP, or neighborhood. Read list price and Zestimate per home.
data = requests.get(
    f"{BASE}/api/v1/zillow/search",
    params={"location": "Seattle, WA", "page": 1, "api_key": API_KEY},
    timeout=30,
).json()

print(data["total_results"], "listings in", data["location"])
for home in data["results"]:
    gap = None
    if home["zestimate"] and home["price"]:
        gap = home["zestimate"] - home["price"]
    print(home["address_zip"], f"${home['price']:,}", "zestimate", home["zestimate"], "delta", gap)

Response

200 OK
{
  "query": "Seattle, WA",
  "location": "Seattle, WA",
  "page": 1,
  "total_results": 10,
  "results_count": 10,
  "results": [
    {
      "position": 1,
      "id": "463504654",
      "title": "6505 44th Avenue NE, Seattle, WA 98115",
      "url": "https://www.zillow.com/homedetails/6505-44th-Ave-NE-Seattle-WA-98115/463504654_zpid/",
      "price": 899900,
      "beds": 3,
      "baths": 3,
      "sqft": 1422,
      "zpid": "463504654",
      "address_street": "6505 44th Avenue NE",
      "address_city": "Seattle",
      "address_state": "WA",
      "address_zip": "98115",
      "zestimate": null,
      "status": "FOR_SALE",
      "status_text": "Active",
      "home_type": "SINGLE_FAMILY",
      "latitude": 47.675953,
      "longitude": -122.281136,
      "has_image": true,
      "builder_name": "Enduring Estates LLC"
    },
    {
      "position": 2,
      "id": "48725548",
      "title": "2218 E Prospect Street, Seattle, WA 98112",
      "url": "https://www.zillow.com/homedetails/2218-E-Prospect-St-Seattle-WA-98112/48725548_zpid/",
      "price": 5000000,
      "beds": 5,
      "baths": 6,
      "sqft": 8010,
      "zpid": "48725548",
      "address_street": "2218 E Prospect Street",
      "address_city": "Seattle",
      "address_state": "WA",
      "address_zip": "98112",
      "zestimate": 5015900,
      "status": "FOR_SALE",
      "status_text": "Active",
      "home_type": "SINGLE_FAMILY",
      "latitude": 47.62881,
      "longitude": -122.30269,
      "has_image": true,
      "builder_name": null
    }
  ]
}
FieldTypeDescription
querystringThe location you searched, echoed back.
locationstringThe resolved location string for the results.
pageintegerThe results page returned, starting at 1.
total_resultsintegerNumber of listings in the results array for this page.
resultsarrayThe listings for this location, each with the price and value fields below.
results[].priceintegerThe current list price in whole dollars.
results[].zestimateinteger or nullZillow's Zestimate value for the home, or null when Zillow does not publish one for that listing.
results[].bedsintegerBedroom count for the home.

Use it for

>

Price data by ZIP code

Search a ZIP or city and pull the list price, Zestimate, and square footage of every home to build a current price table for that market without a manual export.
>

Recent sales and comps

Set status to sold to pull recently sold homes for a location, then use price, beds, baths, and sqft as comparable-sales inputs for valuation.
>

List-price vs Zestimate gaps

Compare each home's price against its zestimate to flag listings priced above or below Zillow's own value estimate across a ZIP.
>

Market dashboards

Poll a set of ZIP codes on a schedule and store median price, price per square foot, and inventory counts to chart how a local market moves over time.

Pricing

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

Is there a Zillow sales data by ZIP code tool?

Our Zillow home price data API works as one. Pass a ZIP or city as the location parameter and it returns every listing on that results page with its list price, Zestimate, beds, baths, square footage, and status as JSON. Set status to sold to pull recent sales instead of active listings, so you can assemble price and sales data for a ZIP programmatically without downloading and reshaping a bulk CSV.

Does Zillow offer a home price API?

Zillow publishes market-level research data, including the Zillow Home Value Index, as downloadable CSV files, but it does not offer a public API that returns priced listing data for a specific ZIP or city. Our endpoint reads the public for-sale and sold results pages and returns each home's price and Zestimate as structured JSON, filling the gap the research downloads leave for listing-level data.

Can I get the Zestimate for each home?

Yes, when Zillow publishes one. Each result carries a zestimate field with Zillow's value estimate for that home. Some listings, often brand-new construction, have no Zestimate yet, and for those we return null and never a fabricated value. Comparing zestimate against the list price across a ZIP is a common way to spot homes priced above or below Zillow's own estimate.

How do I pull sold and sales data instead of active listings?

Set the status parameter to sold. The endpoint then returns recently sold homes for the location with the same fields, price, beds, baths, sqft, and address, so you can build comparable-sales sets and track sale activity by ZIP. Use for_sale for active inventory and for_rent for rentals from the same call.

How many listings come back per request?

One request returns a single results page, which holds roughly 40 homes, and you can raise the limit parameter up to 500 or walk deeper with the page parameter (1 to 20). Zillow caps a given search around a few hundred results, so covering a large metro means splitting it into tighter locations or ZIP codes and paging through each.

How fast is the Zillow price data API and how is it billed?

Median end-to-end response is about 2.6 seconds per page, including proxy routing, PerimeterX handling, retries, and parsing. You are billed only for successful requests, so blocked fetches that we retry behind the scenes do not land on your bill. The free tier includes 1,000 requests to test against real ZIP codes first.

Get home price & sales data api as JSON
Free plan, 1,000 requests. No credit card required.
Get a free API key All endpoints