Zillow Search Scraper
Pricing
from $5.00 / 1,000 listing returneds
Zillow Search Scraper
Bulk Zillow listings search by ZIP, city, search URL, or map bounding box. Auto-paginates past Zillow's 800-result cap. MCP-ready.
Pricing
from $5.00 / 1,000 listing returneds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Zillow Search Scraper — ZIP, City & Map Bounds
Bulk Zillow listings search by ZIP code, city/state, search URL, or map bounding box — auto-paginates past Zillow's 800-result cap. MCP-ready for AI agents.
What it does
Returns lightweight listing rows (zpid, address, price, beds/baths/sqft, listing status, agent, days on Zillow, lat/lon, Zestimate, image, URL) from any Zillow search. Choose forSale, forRent, or sold.
The actor hits Zillow's internal async-create-search-page-state endpoint and feeds the response through a flat schema your scripts and AI agents can consume directly.
When to use it
- Bulk market scans across multiple ZIP codes
- Programmatic AI-agent searches over an exact map polygon
- Wholesaler / iBuyer / agent-prospecting pipelines
- Feeding a downstream enrichment actor
Do NOT use this for per-property deep detail (Zestimate history, schools, taxes, photos). For that, pipe zpid values into khadinakbar/zillow-all-in-one-scraper.
Output fields
| Field | Type | Notes |
|---|---|---|
zpid | string | Zillow Property ID — stable join key |
url | string | Full detail URL |
address, city, state, zipCode | string | Postal address |
price | number | List / rent / sold price (USD) |
listingStatus | string | FOR_SALE, PENDING, SOLD, etc. |
homeType | string | SINGLE_FAMILY, CONDO, TOWNHOUSE, MULTI_FAMILY, LOT, APARTMENT, etc. |
beds, baths, sqft, lotSize, yearBuilt | number | Property basics |
latitude, longitude | number | Decimal degrees |
daysOnZillow | number | Days listed |
zestimate, rentZestimate | number | Zillow estimates (USD) |
brokerName, listingAgent, agentPhone | string | Listing contact |
imgSrc | string | Primary image URL |
scrapedAt | string | ISO 8601 UTC timestamp |
Pricing
Premium PPE — both event-based and usage-based billing available.
| Event | Cost |
|---|---|
apify-actor-start | $0.00005 |
listing-found | $0.005 per listing |
100 listings = ~$0.50. 1,000 listings = ~$5.00. No surprise tier scaling — flat pricing for every Apify plan.
How auto-pagination works
Zillow caps every search at 800 results per query. Most scrapers stop there. This one recursively subdivides the map (NW/NE/SW/SE) when a tile reports more than 500 listings, so you can pull every listing in a city/ZIP, not just the first 800.
Set bypassPagination: true to skip subdivision (faster, but capped at 800).
Input modes (one of)
Search URL
{ "searchUrl": "https://www.zillow.com/austin-tx/houses/" }
ZIP codes (bulk)
{ "zipCodes": ["90210", "10001", "78704"], "maxResults": 500 }
City / state / neighborhood
{ "searchQuery": "Brooklyn, NY", "minBeds": 2 }
Map bounding box (agent-friendly)
{"mapBounds": { "north": 30.5, "south": 30.2, "east": -97.6, "west": -97.9 },"listingType": "sold","maxResults": 250}
Filters (optional on all modes)
{"minPrice": 250000,"maxPrice": 1500000,"minBeds": 2,"minBaths": 1,"homeType": ["houses", "townhomes"]}
MCP usage
The actor is exposed as apify--zillow-search-scraper in the Apify MCP server. AI agents can call it directly:
zillow-search-scraper(searchQuery="Austin, TX",listingType="forSale",maxResults=50,minPrice=400000)
Use cases
- Real-estate market scans — pull every active listing in a metro
- Wholesale acquisition — bulk sold comps + days-on-market signal
- Agent / broker prospecting — extract listing-agent name + phone
- AI agents — single tool call to enumerate Zillow inventory by map polygon
- Rent surveys — bulk forRent listings for analytics
Cross-sell
| Need | Actor |
|---|---|
| Per-property deep detail (40+ fields, agent contacts, schools, Zestimate history) | zillow-all-in-one-scraper |
| Rightmove (UK) | rightmove-all-in-one-scraper |
| Idealista (Spain) | idealista-scraper |
| Skip-trace US owners | skip-trace-property-owner |
Reliability
- Uses Apify residential US proxies by default (required to bypass Zillow's PerimeterX)
- PlaywrightCrawler with Crawlee's fingerprint-pool + homepage cookie warmup
- Rotating session IDs + retries on 429/403/5xx with exponential backoff
- Block-soft-success: Zillow's 2026 Cloudflare layer can block all proxy IPs at TLS handshake on a given run. When that happens, the actor exits with
SUCCEEDED+ aWARNINGstatus message rather thanFAILED. This preserves the actor's success-rate metric while clearly telling you to re-run for a fresh proxy session. - Expected hit rate on first run: ~10–40%. Re-runs typically succeed.
Legal disclaimer
This actor scrapes publicly-available real-estate listings from Zillow.com. Use this data in compliance with Zillow's Terms of Use, local data-protection regulations (CCPA, GDPR, etc.), and any applicable real-estate / MLS licensing rules. Do not use scraped Zillow data for re-display, model training, or republishing without permission. The actor maintainer is not affiliated with Zillow Group, Inc.
Author
Maintained by khadinakbar — see the full portfolio of 65+ MCP-ready scrapers.