Zillow Scraper - Real Estate Listings, Agents & Zestimate
Pricing
$2.00 / 1,000 results
Zillow Scraper - Real Estate Listings, Agents & Zestimate
Scrape Zillow listings, agent contacts, prices, Zestimate, photos, price & tax history at scale. Two modes: DETAIL (per URL or ZPID) and SEARCH (paginated by city, ZIP, neighborhood). HTTP-only with Chrome TLS impersonation + US residential proxies. No Zillow API needed. Export JSON, CSV, Excel.
Pricing
$2.00 / 1,000 results
Rating
0.0
(0)
Developer
ApiMaster
Actor stats
1
Bookmarked
9
Total users
3
Monthly active users
4 days ago
Last modified
Categories
Share
๐ก Zillow Scraper โ Extract Zillow Real Estate Data at Scale
The fastest, no-browser Zillow scraper for Apify. Extract full listing details, agent contacts, price history, Zestimate, photos, and search results from Zillow.com โ without the official Zillow API, without a headless browser, and without getting blocked. Built on pure HTTP requests with Chrome TLS-fingerprint impersonation, US residential proxies, and automatic captcha bypass.
Scrape For Sale, Sold, and For Rent Zillow listings. Search by city, ZIP code, neighborhood, or region URL. Paginate up to 820 listings per query.
๐ฅ What does Zillow Scraper do?
Zillow Scraper is a drop-in replacement for the Zillow API that pulls every public field from a Zillow property page or search result. Use it to:
- ๐๏ธ Extract Zillow listing data at scale โ price, beds, baths, square footage, lot size, year built, home type
- ๐ Search Zillow by ZIP code, city, neighborhood, or address with full pagination across all result pages
- ๐ Scrape For Sale, Sold, and For Rent properties from any US region
- ๐ฉ Build real estate agent contact lists โ listing agent name, phone, email, license number, broker info
- ๐ฐ Capture full price history, tax history, and Zestimate (including rent Zestimate)
- ๐ Pull property amenities โ pool, fireplace, parking, security, HOA, schools, nearby homes
- ๐ผ๏ธ Download high-resolution photo URLs (50+ photos per listing)
- ๐ Export Zillow data to JSON, CSV, Excel, XML, or RSS
- ๐ Integrate with Make, Zapier, n8n, Google Sheets via Apify webhooks and integrations
โ๏ธ Two scraping modes
Mode 1 โ DETAIL: full property data per listing
Provide individual Zillow listing URLs or raw ZPIDs. The scraper returns the complete native Zillow property payload โ the same data that powers the Zillow website itself (extracted from the embedded GraphQL cache).
Mode 2 โ SEARCH: paginated search results by query
Provide a search query ("Beverly Hills, CA", "90210", "sonoma-ca") or a full Zillow search URL. The scraper paginates through every result page and emits one summary item per listing โ zpid, detailUrl, address, price, beds, baths, homeStatus, zestimate, latLong, etc.
๐ก Pro tip: chain
SEARCH โ DETAILby feeding the output dataset of a SEARCH run into thedatasetIdinput of a DETAIL run.
๐ฅ Input
SEARCH mode
{"mode": "SEARCH","searchQueries": ["Beverly Hills, CA", "90210", "https://www.zillow.com/sonoma-ca/"],"propertyStatus": "FOR_SALE","maxPagesPerSearch": 20,"maxConcurrency": 5,"proxy": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
DETAIL mode
{"mode": "DETAIL","startUrls": [{ "url": "https://www.zillow.com/homedetails/17199-Park-Ave-Sonoma-CA-95476/15800416_zpid/" }],"zpids": ["15800416"],"datasetId": "optional-id-from-a-previous-SEARCH-run"}
| Field | Mode | Description |
|---|---|---|
mode | both | DETAIL or SEARCH |
startUrls | DETAIL | Zillow /homedetails/ URLs |
zpids | DETAIL | Raw ZPIDs (e.g. "15800416") |
datasetId | DETAIL | Apify dataset id from a previous SEARCH or third-party Zillow scraper run |
searchQueries | SEARCH | Free-text queries, region slugs, or full Zillow URLs |
maxPagesPerSearch | SEARCH | Pagination cap per query (1โ20, default 20) |
propertyStatus | both | FOR_SALE / SOLD / FOR_RENT / ANY |
maxConcurrency | both | Parallel requests (default 5) |
maxRetries | both | Retry budget on 4xx/5xx |
proxy | both | Apify proxy config โ US residential by default |
rawOutput | DETAIL | Include raw GraphQL cache under _raw |
๐ค Output
DETAIL mode (one item per listing)
Mirrors Zillow's native property payload โ over 150 fields including:
- Identity:
zpid,hdpUrl,mlsid,parcelId,countyFIPS - Address:
streetAddress,city,state,zipcode,latitude,longitude,county,neighborhoodRegion - Listing:
homeStatus(FOR_SALE / SOLD / FOR_RENT),price,lastSoldPrice,daysOnZillow,datePostedString - Property:
bedrooms,bathrooms,livingArea,lotSize,yearBuilt,homeType - Detailed facts (
resoFacts): appliances, cooling, heating, parking, HOA, view, flooring, roofing, foundation, schools - Agent / broker (
attributionInfo):agentName,agentPhoneNumber,agentEmail,agentLicenseNumber,brokerName,brokerPhoneNumber,mlsId,mlsName - Financial:
zestimate,rentZestimate,taxHistory[],priceHistory[],monthlyHoaFee,propertyTaxRate,mortgageZHLRates - Media:
responsivePhotos[](high-res),photoCount,virtualTourUrl,hiResImageLink,desktopWebHdpImageLink - Locale:
nearbyCities[],nearbyNeighborhoods[],nearbyZipcodes[],nearbyHomes[],comps[],schools[] - Scheduling:
tourEligibility,openHouseSchedule
SEARCH mode (one item per result row)
searchQuery,page,sourceUrlzpid,detailUrl,imgSrcprice,unformattedPrice,address,addressStreet,addressCity,addressState,addressZipcodebeds,baths,area,latLonghomeStatus,homeType,daysOnZillow,zestimate,rentZestimatebrokerName,listing_sub_type,hdpData.homeInfo.*
๐ก๏ธ How it bypasses Zillow's anti-bot (PerimeterX / HUMAN)
Most public Zillow scrapers fail because Zillow fingerprints the TLS handshake and HTTP/2 SETTINGS frame before any header or cookie is checked. This scraper uses:
curl_cffiwith Chrome TLS impersonation โ every request looks identical to a real Chrome browser at the byte level (cipher suites, ALPN, JA3/JA4, HTTP/2 priority frames).- US residential proxies by default โ Zillow only serves data to US visitors and aggressively blocks datacenter ASNs.
- Fresh proxy session ID per retry โ
uuidrotates the Apify exit IP on every captcha or proxy failure. - Dedicated retry budgets: 5 retries for proxy errors + 5 retries for captcha challenges, independent of the main retry counter so transient blocks never exhaust your budget.
- 15-second timeout, exponential backoff with jitter.
- No headless browser โ 5โ10ร faster and cheaper than Playwright/Puppeteer scrapers.
๐ผ Use cases
- ๐ Real estate market research and competitive price analysis
- ๐ฏ Lead generation โ build targeted real estate agent contact lists
- ๐ค Train ML models on US housing data (Zestimate validation, price prediction)
- ๐ Investor dashboards monitoring new listings in target neighborhoods
- ๐ต Compare Zestimate vs actual sale price for valuation accuracy
- ๐๏ธ Custom real estate search engines and aggregators
- ๐ฐ News and journalism โ track housing trends by ZIP code
- ๐ Price-drop alerts for specific properties
๐ฐ Pricing
Pay-per-result on the Apify platform. With Apify's Free plan ($5/month free credits) you can scrape ~1,500 listings for free. The Starter plan ($49/month) gives you ~16,000 listings monthly. Higher tiers scale linearly.
Apify proxy traffic to Zillow is included in the listed pay-per-result price.
โ FAQ
Q: Do I need a Zillow API key? No. This scraper extracts only publicly visible Zillow data โ exactly what any visitor to zillow.com can see.
Q: Is it legal to scrape Zillow? Public real estate data (price, address, beds, baths, etc.) is legally scrapeable in most jurisdictions. Personal data (agent emails, phone numbers) is regulated under GDPR / CCPA โ consult your legal team for commercial use cases that store or process such data.
Q: Can I get more than 1,500 results for free? Yes โ Apify's free $5 credits renew every month.
Q: Does the scraper paginate automatically?
Yes. In SEARCH mode it walks through every page up to maxPagesPerSearch (default 20 pages ร 41 listings = ~820 results per query).
Q: Can I scrape sold and for-rent properties?
Yes. Set propertyStatus to SOLD or FOR_RENT in SEARCH mode, or just provide any /homedetails/ URL in DETAIL mode โ the scraper handles all three statuses uniformly.
Q: Can I integrate this with Zapier / Make / n8n / Google Sheets? Yes. Apify provides native integrations and webhooks for all major automation platforms. Trigger a Zillow scrape from a Google Sheet, send results to Slack, or pipe new listings directly into your CRM.
Q: What proxy should I use? US residential. Already configured by default. Datacenter, mobile, or non-US proxies will be blocked by PerimeterX.
Q: How fast is it?
~2 seconds per listing through US residential proxy. With maxConcurrency: 10 you can process 1,000 listings in ~3โ5 minutes.
Q: What happens if a listing is blocked?
The scraper auto-rotates the Apify proxy session (new IP) and retries up to 5 times. Failed URLs are emitted as {"sourceUrl": "...", "error": "..."} items so you never lose visibility.
Q: Can I export to CSV / Excel? Yes. Apify datasets export to JSON, CSV, Excel, XML, RSS, and HTML out of the box. You can also stream results via the Apify API in any language (Python, Node.js, Go, etc.).
๐ ๏ธ Run locally
git clone <repo>cd zillow_apifypip install -r requirements.txtapify run # uses storage/key_value_stores/default/INPUT.json# orpython -m src
Deploy to Apify with one command:
deploy.bat # Windows# orapify push --force
๐ท๏ธ Tags
zillow scraper ยท zillow api ยท zillow data extraction ยท real estate scraper ยท property scraper ยท mls scraper ยท home listings ยท for sale ยท sold homes ยท for rent ยท zestimate ยท real estate api ยท housing data ยท zillow zip code search ยท zillow agents ยท real estate web scraping ยท python zillow scraper ยท apify zillow ยท zillow listing data ยท real estate lead generation ยท property data api ยท us housing market data ยท mls data ยท realtor scraper ยท homes for sale data
๐ Built for Apify ยท Pure HTTP, no browser ยท TLS impersonation ยท US residential proxies ยท DETAIL & SEARCH modes