Zillow Property Data Scraper API
Scraping property information from Zillow gets easier with one call: pass a homedetails URL or a zpid and our Zillow property data API returns the full listing record as clean JSON, address, price, beds, baths, living area, year built, every photo, and the listing agent.
Quickstart
curl "https://api.zillowscraperapi.com/api/v1/zillow/property?url=https://www.zillow.com/homedetails/6505-44th-Ave-NE-Seattle-WA-98115/463504654_zpid/&api_key=$API_KEY" import requests
BASE = "https://api.zillowscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Pass a Zillow homedetails URL (or a zpid) and read the parsed record.
data = requests.get(
f"{BASE}/api/v1/zillow/property",
params={
"url": "https://www.zillow.com/homedetails/6505-44th-Ave-NE-Seattle-WA-98115/463504654_zpid/",
"api_key": API_KEY,
},
timeout=30,
).json()
sale = data["trade_info"][0]
print(data["name"])
print(f"${sale['price']:,} - {data['area']['value']} sqft - built {data['year_built']}")
print("Listed by", data["listing_agent"])
# zpid also works instead of url:
# params={"zpid": "463504654", "api_key": API_KEY} Response
{
"name": "6505 44th Avenue NE, Seattle, WA, 98115",
"address": {
"address_country": null,
"address_locality": "Seattle",
"address_region": "WA",
"postal_code": "98115",
"raw": "6505 44th Avenue NE, Seattle, WA, 98115",
"street_address": "6505 44th Avenue NE"
},
"location": { "city": "Seattle", "region": "WA" },
"area": { "raw": "1,422 sqft", "value": 1422, "unit_code": "sqft" },
"trade_info": [
{ "currency": "USD", "price": 899900, "price_per_area_unit": 633, "trade_type": "sale" }
],
"property_type": "house",
"listing_type": "sale",
"availability_status": "available",
"description": "Welcome to this stunning new construction home in the desirable View Ridge neighborhood! This 3-bedroom, 2.5-bath residence features an open-concept floor plan...",
"year_built": 2026,
"number_of_rooms": 3,
"rooms": [
{ "count": 3, "room_type": "bedroom" },
{ "count": 3, "room_type": "bathroom" }
],
"images": [
"https://photos.zillowstatic.com/fp/13d6cb3a35a235ffd25f90309ad7bc78-p_d.jpg",
"https://photos.zillowstatic.com/fp/670373072a67ee2f912f640135170a8a-p_d.jpg"
],
"main_image": "https://photos.zillowstatic.com/fp/13d6cb3a35a235ffd25f90309ad7bc78-p_h.jpg",
"listing_agent": "Eric Nissen, Real Property Associates, Inc.",
"url": "https://www.zillow.com/homedetails/6505-44th-Ave-NE-Seattle-WA-98115/463504654_zpid/",
"zpid": "463504654",
"home_status": "FOR_SALE",
"parcel_id": "260280002007",
"lot_size": 1707,
"latitude": 47.675953,
"longitude": -122.281136
} | Field | Type | Description |
|---|---|---|
name | string | The full property address as a single line, e.g. 6505 44th Avenue NE, Seattle, WA, 98115. |
address | object | Structured address with street_address, address_locality, address_region, postal_code, address_country, and the raw string. |
location | object | Shorthand city and region for the property. |
area | object | Living area as raw (1,422 sqft), value (1422), and unit_code (sqft). |
trade_info | array | One entry per active offer, each with currency, price, price_per_area_unit, and trade_type (sale or rent). |
property_type | string | Normalized type: house, apartment, or land, mapped from Zillow's homeType enum. |
listing_type | string | Whether the listing is for sale or for rent. |
availability_status | string | Listing availability, e.g. available. |
Use it for
Comp and valuation models
Listing enrichment
Real-estate portals and apps
Market and inventory tracking
Pricing
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
How do I scrape property information from Zillow?
Send one GET request to our zillow/property endpoint with a homedetails URL (or a zpid) and your api_key. We route the request through residential proxies, clear Zillow's PerimeterX check, retry on failure, and parse the page's embedded home record, so you get back clean JSON with the address, price, beds, baths, living area, year built, photos, and the listing agent. There is nothing to install and no parser to maintain.
Does Zillow have a property data API?
Not a public one. Zillow retired its Bridge Interactive listing feeds and older GetSearchResults and GetDeepSearchResults endpoints, so there is no open API that returns for-sale listing data to general developers. The data still renders on the public property page, which is what our Zillow property data API reads and returns as structured JSON.
Can I look up a property by zpid instead of a URL?
Yes. Pass the numeric zpid parameter and we build the canonical https://www.zillow.com/homedetails/{zpid}_zpid/ URL and resolve it. Either url or zpid is required on every call, and the zpid also comes back in the response so you can store it as the stable key for a property.
What fields does the Zillow property scraper return?
Each call returns the address (both a raw string and structured parts), living area in square feet, the price and price per square foot under trade_info, property_type, year_built, a rooms breakdown for beds and baths, the full images gallery, the main_image, the listing_agent and brokerage, home_status, parcel_id, lot_size, and latitude and longitude. The response above is a real, unedited example.
How does the API get past Zillow's anti-bot protection?
Zillow uses PerimeterX, which serves a Press-and-Hold challenge to traffic it does not trust and returns a page with no listing data. Our API routes property requests through residential proxies with anti-bot handling and automatic retries, so the real page loads and the embedded gdpClientCache record is parsed. You never handle the challenge or manage a proxy pool yourself.
Is scraping Zillow legal?
Scraping publicly visible web pages is generally treated as lawful in the United States, and courts have declined to treat access to public data as a Computer Fraud and Abuse Act violation, though Zillow's Terms of Use restrict automated collection, so review the terms and robots.txt for your use case and avoid personal or copyrighted data you do not have the right to use. This is general information, not legal advice.