Zillow Scraper — Listings, Property Details, Zestimate & Agents
Pricing
from $1.30 / 1,000 listing scrapeds
Zillow Scraper — Listings, Property Details, Zestimate & Agents
Scrape Zillow for-sale, for-rent, and sold listings and extract full property details, Zestimate home values, photos, price & tax history, schools, and real-estate agent contacts. Search by city, ZIP, URL, or address — with automatic bypass of Zillow's 500-result limit. Export to JSON, CSV, or Excel
Pricing
from $1.30 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Raven
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Zillow Scraper — Listings, Property Details, Zestimate® & Agents 🏡
Scrape Zillow from $2 per 1,000 listings (from $1.30 per 1,000 on paid plans) — no login, no Zillow API key, no code, and no proxies to configure. Point this actor at a city, a ZIP code, a Zillow search URL, or specific property pages and get clean, structured JSON, CSV, or Excel in one run.
One actor covers the whole Zillow surface: search listings (for sale, for rent, sold), full property details with 100+ facts, Zestimate® home values, and real-estate agent profiles with contact data. Whether you're doing real-estate market research, building a lead list, feeding a CRM, comparing prices, or tracking inventory across a metro area — it's all here.
What does this Zillow Scraper do?
Zillow doesn't offer an open, free public API for bulk listing data — the official Zillow APIs are gated behind partner approval, key limits, and restricted fields. This actor is a practical Zillow API alternative (an unofficial Zillow API): it reads the same publicly visible data the website shows and returns it as a structured dataset, with no approval process and no daily call ceiling.
Pick a mode — or just paste any Zillow URL and let the actor auto-detect it:
| Mode | What you point it at | What you get back |
|---|---|---|
| 🔎 Search listings | A city, ZIP, county, neighborhood, or Zillow search URL | Every home matching your filters — for sale, for rent, or recently sold — ~30 fields per card |
| 🏠 Property details | Zillow /homedetails/ URLs or ZPIDs | Full property record: 100+ facts, all photos, price & tax history, schools, HOA, and the listing agent |
| 💰 Zestimate® | A URL, ZPID, or plain street address | Fast home-value + rent estimate lookup |
| 🧑💼 Agent profiles | An agent profile URL or a location to discover agents in | Agent name, email, phones, rating, license, active listings, and past sales |
Auto-detect: drop a mix of Zillow URLs into Start URLs and the actor routes each one — search page → search, property page → details, profile page → agent — automatically.
Why use this Zillow Scraper?
- ✅ Four scrapers in one — search, property details, Zestimate®, and agents, instead of stitching three separate actors together.
- ✅ Beats Zillow's ~500-result on-screen cap — for large metros the actor recursively splits the map into quadrants so you can pull thousands of listings per search (details below).
- ✅ Every filter Zillow has — price, beds, baths, sqft, lot size, year built, HOA, days on market, keywords, home type, plus pool / garage / A-C / waterfront / 3D-tour / basement / price-reduced toggles.
- ✅ All listing categories — for-sale-by-agent, FSBO, new construction, coming soon, auctions, and foreclosures, plus for-rent and recently-sold.
- ✅ 100+ fields per property on detail mode — including the full
reso_*fact set (heating, cooling, appliances, parking, roof, flooring, view, HOA, and more). - ✅ Listing-agent & broker contact data — name, phone, email, license number, brokerage, MLS ID (when Zillow exposes them).
- ✅ One-click enrichment — flip on
fetchDetailsto turn any search into full property records in a single run. - ✅ Pure HTTP, no headless browser — browser-grade TLS fingerprint impersonation + residential-proxy rotation with automatic retries, so it's efficient and reliable without a slow, heavy browser.
- ✅ Spreadsheet-ready — flip on
flatOutputfor clean CSV/Excel columns; export as JSON, CSV, Excel, XML, or HTML.
This actor vs. the official API vs. typical Zillow scrapers
| Official Zillow API | Typical Zillow scraper | This actor | |
|---|---|---|---|
| Access | Partner approval + API key | Usually one narrow job per actor | No key, no login, one actor |
| Coverage | Restricted, limited fields | Usually search or details or agents | Search + details + Zestimate® + agents |
| Result cap | Rate/quota limited | Often stops at Zillow's on-screen cap | Map-quadrant split past the cap |
| Fields per property | Limited set | Basic card fields | 100+ facts + photos + history + schools |
| Filters | Varies | A handful | All Zillow filters + category toggles |
| Output | JSON | JSON | JSON, CSV, Excel, XML, HTML |
| Pricing | Usage tiers / negotiated | Varies | From $2 / 1,000 (free plan), $1.30 / 1,000 paid |
Competitor-column claims are generalized; individual actors vary.
What data can you extract from Zillow?
Search & property detail data, grouped:
| Category | Fields |
|---|---|
| Identity | ZPID, detail URL, MLS ID, parcel ID, county FIPS |
| Address & location | Street, city, state, ZIP, county, neighborhood, latitude, longitude, time zone |
| Listing | Status (for sale / for rent / sold), price, price label, last sold price, days on Zillow, time on Zillow, page views, favorites |
| Property specs | Beds, baths, living area, lot size, year built, home type, stories, levels, condition |
| Financials | Zestimate®, Rent Zestimate®, high/low estimate %, tax-assessed value, annual tax, property tax rate, monthly HOA, price/sqft |
| Interior & building | Heating, cooling, appliances, flooring, fireplace, parking, roof, foundation, construction materials, architectural style |
| Agent & broker | Agent name, email, phone, license number, brokerage, co-agent, MLS name |
| History | Full price history and tax history (date, price, event, source) |
| Community | Assigned/nearby schools with rating, grades, distance, level; subdivision; zoning |
| Media | All listing photos (highest resolution), main image, street-view image, photo count, 3D-model / video flags |
Per record type — field counts:
- Search listing → ~30 fields per home (address, price, beds/baths, area, lot, lat/long, home type, days on Zillow, Zestimate®, Rent Zestimate®, tax-assessed value, broker, image, 3D/video flags).
- Property detail → 100+ fields per home (everything above, plus the full
reso_*extended fact set,photos[],priceHistory[],taxHistory[], andschools[]). - Zestimate® → 16 fields (Zestimate®, Rent Zestimate®, high/low %, price, last sold price, tax-assessed value, property tax rate + address).
- Agent profile → name, business name, email, cell/brokerage/business phones, rating average & count, business address, license(s), service areas, for-sale/for-rent counts, past-sales total, plus
forSaleListings[],pastSales[], and optionalreviews[].
How to scrape Zillow step by step
- Create a free Apify account — it takes a minute and comes with $5 in free monthly credits (≈ 2,500 listings a month, free).
- Open the Zillow Scraper and choose a Mode (or just paste Zillow URLs into Start URLs).
- Add your target — a location like
Austin, TX, a ZIP like90210, a Zillow search URL, or property/agent URLs. - Apply filters — price, beds, baths, home type, days on market, features, and set Max results.
- Click Start and watch the run.
- Download your data — JSON, CSV, Excel, XML, or HTML from the Dataset tab, or pull it via the Apify API.
How to get more than 500 results from a Zillow search
Zillow only shows about 500 homes on screen for any single search, and its underlying query returns at most 20 pages × 41 results = 820 per query. This actor works around that automatically:
- It resolves your location or URL to the map bounds Zillow uses.
- It paginates that region to the query limit.
- When a region holds more than 820 results, it recursively splits the map into four quadrants and repeats — zooming in until each rectangle fits under the cap.
The result: set Max results to 0 (unlimited) or a large number, and the actor keeps subdividing to pull far beyond the on-screen 500-home cap — thousands of listings from a single dense metro. No manual zooming, no copy-pasting map tiles.
Enrich every listing with full property details
Search cards carry ~30 fields. Turn on fetchDetails and, for every listing found, the actor also opens its property page to add year built, price & tax history, assigned schools, listing-agent contact, all photos, and the 100+ reso_* facts — merged into the same record. One run, search → enriched dataset. (Each enriched listing adds a property-detail charge — see pricing.)
Input parameters
| Parameter | Type | Description |
|---|---|---|
mode | select | search, propertyDetail, zestimate, or agent. |
startUrls | array | Any Zillow URLs — search, property, or agent. Auto-routed to the right mode. |
searchUrls | array | Zillow search / region URLs (including ?searchQueryState= URLs). |
locations | array | Free text: "Austin, TX", "90210", "Los Angeles County, CA". |
listingType | select | forSale, forRent, or sold. |
forSaleByAgent, forSaleByOwner, newConstruction, comingSoon, auction, foreclosures | boolean | For-sale category toggles. |
priceMin / priceMax | integer | Price (or monthly rent) range. |
bedsMin / bedsMax, bathsMin / bathsMax | integer | Bed / bath range. |
sqftMin / sqftMax, lotSizeMin / lotSizeMax | integer | Living-area / lot-size range (sqft). |
yearBuiltMin / yearBuiltMax | integer | Year-built range. |
hoaMax | integer | Max monthly HOA fee. |
homeTypes | array | houses, townhomes, condos, apartments, multiFamily, manufactured, lotsLand. |
daysOnZillow | select | 1, 7, 14, 30, 90, 6m, 12m, 24m, 36m (or empty for any). |
keywords | string | Free-text keywords (max 99 chars), e.g. "pool, view, remodeled". |
hasPool, hasGarage, hasAirConditioning, isWaterfront, has3DTour, hasBasement, priceReducedOnly | boolean | Feature toggles. |
sort | select | relevance, newest, price_desc, price_asc, beds, baths, sqft, lot, yearBuilt, priceReduced. |
maxItems | integer | Cap on listings. 0 = unlimited (auto-splits the map). |
fetchDetails | boolean | Enrich each search listing with its full property page. |
propertyUrls, zpids | array | Targets for Property details / Zestimate mode. |
zestimateItems | array | Zestimate lookups: URL, ZPID, or address. |
includePhotos, includeHistory, includeSchools, includeResoFacts | boolean | Toggle detail sections (all on by default). |
agentUrls | array | Agent profile URLs, or a location to discover agents in. |
includeAgentListings, includeAgentPastSales, includeAgentReviews | boolean | Agent output sections. |
maxAgentsPerLocation | integer | Cap agents discovered per location. |
flatOutput | boolean | Flatten nested fields for CSV/Excel. |
maxConcurrency | integer | Pages fetched in parallel (default 6, max 30). |
maxRetries | integer | Retries per blocked request (each rotates the proxy). |
proxyConfiguration | object | Proxy settings. US residential is strongly recommended (default). |
Ready-to-paste input recipes
1. All homes for sale in a city, under $750k, 3+ beds
{"mode": "search","locations": ["Austin, TX"],"listingType": "forSale","priceMax": 750000,"bedsMin": 3,"maxItems": 500}
2. Rentals under $3,000 with a pool (LA condos & apartments)
{"mode": "search","locations": ["Los Angeles, CA"],"listingType": "forRent","priceMax": 3000,"hasPool": true,"homeTypes": ["condos", "apartments"]}
3. Recently sold homes in a ZIP, fully enriched with details
{"mode": "search","locations": ["78701"],"listingType": "sold","fetchDetails": true,"maxItems": 100}
4. Foreclosures & price reductions across a metro (unlimited)
{"mode": "search","locations": ["Phoenix, AZ"],"listingType": "forSale","forSaleByAgent": false,"forSaleByOwner": false,"newConstruction": false,"comingSoon": false,"auction": false,"foreclosures": true,"priceReducedOnly": true,"sort": "newest","maxItems": 0}
5. Full details for specific properties
{"mode": "propertyDetail","propertyUrls": ["https://www.zillow.com/homedetails/20224-W-Marlow-Ln-Northridge-CA-91326/442607266_zpid/"]}
6. Home-value (Zestimate®) lookups by address, URL, or ZPID
{"mode": "zestimate","zestimateItems": ["1600 Pennsylvania Ave, Washington, DC","442607266","https://www.zillow.com/homedetails/509-Gothic-Ave-Crested-Butte-CO-81224/113419231_zpid/"]}
7. Agents in a city, with active listings and past sales
{"mode": "agent","agentUrls": ["Los Angeles, CA"],"maxAgentsPerLocation": 25,"includeAgentListings": true,"includeAgentPastSales": true}
Output examples
Search listing
{"zpid": "113419231","url": "https://www.zillow.com/homedetails/509-Gothic-Ave-Crested-Butte-CO-81224/113419231_zpid/","statusType": "FOR_SALE","statusText": "House for sale","price": 2950000,"priceLabel": "$2,950,000","address": "509 Gothic Avenue, Crested Butte, CO 81224","city": "Crested Butte","state": "CO","zipcode": "81224","beds": 3,"baths": 3,"area": 1660,"lotAreaValue": 6098.4,"latitude": 38.8718,"longitude": -106.98193,"homeType": "SINGLE_FAMILY","daysOnZillow": 4,"zestimate": 2810200,"rentZestimate": 3572,"taxAssessedValue": 2422570,"has3DModel": true}
Property detail (abbreviated — the full record carries 100+ fields)
{"zpid": "442607266","url": "https://www.zillow.com/homedetails/.../442607266_zpid/","streetAddress": "20224 W Marlow Ln","city": "Northridge","state": "CA","zipcode": "91326","homeStatus": "FOR_SALE","price": 1195000,"zestimate": 1180400,"rentZestimate": 4900,"bedrooms": 4,"bathrooms": 3,"livingArea": 2456,"yearBuilt": 1972,"monthlyHoaFee": 0,"propertyTaxRate": 1.19,"description": "Beautifully remodeled single-story home ...","agentName": "Jane Doe","agentPhoneNumber": "(818) 555-0142","agentLicenseNumber": "01234567","brokerName": "Pinnacle Estate Properties","reso_heating": ["Central"],"reso_cooling": ["Central Air"],"reso_parking": ["Garage - 2 spaces"],"photos": ["https://photos.zillowstatic.com/fp/....jpg"],"priceHistory": [{ "date": "2026-06-01", "price": 1195000, "event": "Listed for sale" }],"taxHistory": [{ "time": 1704067200000, "taxPaid": 12500, "value": 980000 }],"schools": [{ "name": "Beckford Charter", "rating": 8, "level": "Elementary", "distance": 0.4 }]}
Zestimate®
{"zpid": "113419231","streetAddress": "509 Gothic Avenue","city": "Crested Butte","state": "CO","zipcode": "81224","homeStatus": "FOR_SALE","price": 2950000,"zestimate": 2810200,"rentZestimate": 3572,"zestimateLowPercent": "5","zestimateHighPercent": "5","taxAssessedValue": 2422570,"propertyTaxRate": 0.53}
Agent profile
{"name": "Pinnacle Estate Properties Inc","email": "example@brokerage.com","phoneCell": "(818) 497-7941","ratingAverage": 5,"ratingCount": 1060,"businessAddress": "9137 Reseda Blvd. Northridge CA 91324","forSaleCount": 36,"pastSalesTotal": 5346,"profileUrl": "https://www.zillow.com/profile/PinnacleEstateProp/"}
Common mistakes that return zero or fewer results
- Getting fewer results than the map shows? Zillow caps a single query at ~820 results. Set
maxItemsto0and the actor auto-splits the map into quadrants to go past it — but very large metros still take longer, so let the run finish. - A location returns nothing? Use a real Zillow-recognized place:
"Austin, TX", a 5-digit ZIP, or"Travis County, TX". A misspelled or non-US location won't resolve. - For-sale toggles all off = no for-sale results. In
forSalemode, at least one offorSaleByAgent/forSaleByOwner/newConstruction/comingSoon/auction/foreclosuresmust be on. homeTypesuses specific values. Usehouses,condos,townhomes,apartments,multiFamily,manufactured, orlotsLand— nothouseorsingle-family.- Property/Zestimate mode needs property inputs. Put
/homedetails/URLs or ZPIDs inpropertyUrls/zpids/zestimateItems, not inlocations. - Null fields are normal. Zillow doesn't publish every field for every home (agent email and some
reso_*facts are often missing). The actor returns what's public and drops empty fields. - Rentals price = monthly rent.
priceMin/priceMaxare interpreted as monthly rent whenlistingTypeisforRent.
How much does it cost to scrape Zillow?
This actor uses Apify's pay-per-event model: you're charged a fixed price per record delivered, and the price already includes proxies and platform usage — no separate add-ons, no surprise fees.
| Event | Free plan | Paid plans (from) |
|---|---|---|
| Listing scraped (one search result) | $2.00 / 1,000 | $1.30 / 1,000 |
| Property detail scraped (100+ facts) | $3.00 / 1,000 | $1.50 / 1,000 |
| Zestimate® lookup | $2.00 / 1,000 | $1.00 / 1,000 |
| Agent profile scraped | $5.00 / 1,000 | $3.20 / 1,000 |
Paid tiers (Bronze → Diamond) unlock the lower "from" prices automatically as your Apify plan grows.
Worked examples (free-plan rates; paid plans cost less):
| What you scrape | How it's charged | Cost |
|---|---|---|
| 5,000 for-sale listings | 5,000 × listing | $10.00 ($6.50 paid) |
| 1,000 listings + full details | 1,000 listing + 1,000 detail | $5.00 ($2.80 paid) |
| 2,000 Zestimate® lookups | 2,000 × zestimate | $4.00 ($2.00 paid) |
| 500 agent profiles | 500 × agent | $2.50 ($1.60 paid) |
Free plan translation: Apify's Free plan gives $5 in credits every month, which buys roughly 2,500 listings, or 1,600 property details, or 1,000 agent profiles, or 2,500 Zestimate® lookups — free, every month.
Stay in control: set Max results and/or a per-run charge limit, and the actor stops cleanly when the budget is reached.
Integrations
Run the Zillow Scraper on a schedule and push data anywhere without writing glue code. On the Apify platform you can connect it to:
- Make, Zapier, and n8n for no-code automations
- Google Sheets, Slack, Airbyte, GitHub, and Google Drive
- Webhooks for real-time run-completion events (BI tools, CRMs, alerts)
- API clients for Python and JavaScript/Node.js (
apify-client) and the Apify CLI - Schedules to run daily/weekly and keep a dataset in sync (great for price-drop and new-listing tracking)
Use Zillow data with AI agents (MCP)
This actor works with the Apify MCP server, so AI assistants like Claude, ChatGPT, and Cursor can run it and read the results as a tool. Point your agent at the Apify MCP server and prompt it in plain language, for example:
"Find every 3-bed house for sale under $600k in Austin, TX, enrich each with the listing agent's phone, and give me a CSV."
The agent triggers the scraper, waits for the run, and pulls the dataset back — no manual export.
Popular use cases
- Real-estate market research — track prices, inventory, and days-on-market by city, ZIP, or neighborhood.
- Lead generation for agents & investors — build lists of FSBO homes, price-reduced listings, or agent contacts.
- Comps & valuation — compare Zestimate® vs. list vs. sold price across an area.
- CRM & portal feeds — keep an internal search portal or CRM stocked with fresh listings.
- Investment sourcing — monitor foreclosures, auctions, and motivated-seller signals metro-wide.
- AI & analytics — feed housing data into dashboards, predictive models, or LLMs.
Is it legal to scrape Zillow?
Scraping publicly available data — such as property prices, addresses, and listing attributes — is generally legal. This actor only reads data that is publicly visible on Zillow.
Be aware that results can include personal information for real-estate agents (a public professional role). Personal data is protected by GDPR (EU Regulation 2016/679), CCPA, and similar laws — only collect and process it if you have a legitimate basis, and never use it for spam or harassment. If you're unsure whether your use case is compliant, consult a lawyer.
For more background, see Apify's guide: Is web scraping legal?
FAQ
Does Zillow have a public API?
Zillow offers several official APIs, but they're gated behind partner approval, API keys, usage limits, and restricted fields — which is why most people use a scraper as a Zillow API alternative for open, bulk access to publicly visible data.
Do I need a Zillow account or login?
No. No Zillow account, login, or API key is required.
Can I get more than 500 results for a big city?
Yes. Zillow caps a single query at ~820 results and shows ~500 on screen. Set maxItems to 0 (or a large number) and the actor automatically splits the map into quadrants to pull far beyond that.
Can I get the listing agent's contact info?
Yes — property details include the listing agent's name, phone, license number, and brokerage (and email when Zillow exposes it). For full agent profiles with ratings and past sales, use Agent mode.
Do I need proxies?
No — proxy rotation is built in and included in the price. US residential proxies are used by default; you can supply your own under Proxy configuration if you prefer.
Which locations are supported?
Any US location Zillow covers — cities, ZIP codes, counties, and neighborhoods. Results come back in English and USD.
How fresh is the data?
It's pulled live from Zillow at run time, so it reflects what's on the site right now.
Can I scrape for-rent and recently-sold homes too?
Yes. Set listingType to forSale, forRent, or sold — all three work the same way.
Can I export to CSV or Excel?
Yes — every run writes a dataset you can download as JSON, CSV, Excel, XML, or HTML. Turn on flatOutput for the cleanest spreadsheet columns.
Will I be charged for searches that return nothing?
No. You're charged per record delivered. A location that resolves to zero listings produces no listing charges.
Why are some fields null or missing?
Zillow doesn't publish every field for every home. Agent emails and some extended (reso_*) facts are frequently unavailable — the actor returns what's public and omits empty fields.
Can I schedule it to run automatically?
Yes — use Apify Schedules to run daily or weekly and keep a dataset up to date.
What's a Zestimate®?
It's Zillow's estimated market value (and Rent Zestimate® for estimated rent). Zestimate® mode returns it fast for any home by URL, ZPID, or plain address.
How do I get more results per run?
Increase maxItems (or set 0), keep filters reasonable, and let large-metro runs finish — the quadrant split can take longer on dense areas.
Feedback & support
Found a bug or need a field the actor doesn't return yet? Open an issue on the actor's Issues tab — please include your input configuration and, if possible, a shared run link so it can be reproduced quickly.
More real-estate & lead-gen scrapers by this developer
- Apartments.com Scraper — Rentals, Prices & Reviews — rental listings to complement Zillow.
- Website Contact Scraper — Bulk Emails, Phones & Socials — enrich agent/broker leads with contact data.
- Google Maps Scraper — Emails, Reviews & Photos — local business & lead data.
- Booking.com Scraper — Hotels, Prices, Reviews & Host Data — property & hospitality data.
- Facebook Ads Library Scraper — Meta & Instagram Ad Spy — real-estate ad & competitor research.
- TripAdvisor Hotels & Reviews Scraper — reviews & hospitality listings.
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Zillow, Inc. or its subsidiaries. Zillow® and Zestimate® are trademarks of Zillow, Inc. All trademarks are the property of their respective owners.
Tags: zillow scraper, zillow api, zillow api alternative, zillow data scraper, zillow listings scraper, zillow property scraper, real estate scraper, zillow zestimate scraper, zillow agent scraper, real estate agent leads, zillow rentals scraper, zillow sold listings, zillow for sale, foreclosure scraper, fsbo scraper, property data api, real estate data, zpid scraper, zillow search scraper, zillow zip code search