Zillow Search Scraper
Pricing
from $0.60 / 1,000 listings
Zillow Search Scraper
Scrape Zillow search results: price, beds, baths, area, address, coordinates and more as structured JSON.
Pricing
from $0.60 / 1,000 listings
Rating
0.0
(0)
Developer
Harpoon
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Zillow Search Scraper — turn any Zillow search into a clean, exportable dataset
Point it at a city, ZIP code, neighborhood or address — or pick one or more whole states and sweep them — and get one row per listing: price, beds, baths, size, full address, coordinates, estimates, broker and photo, ready to export as JSON, CSV, Excel or XML. Paste Zillow search URLs instead if you prefer, or search many places in a single run.
What can Zillow Search Scraper do?
- Search by city, ZIP code, neighborhood, county or address — no Zillow account or API key
- Sweep entire states: each state is divided into search areas, every area is scraped, and the results are de-duplicated, so you collect as much of a state's inventory as the site exposes
- Search for sale, for rent, or sold listings
- Return pricing, size, address, coordinates, estimates, taxes, broker and image for every listing
- Search many locations (and states) at once and combine the results into one dataset
- Export results to JSON, CSV, Excel, or XML
- Run via the API, schedule runs, and integrate through webhooks or MCP
What data can I extract?
| What you get | Features |
|---|---|
|
|
How to use Zillow Search Scraper
- Create a free Apify account.
- Open Zillow Search Scraper in Apify Console.
- The form is prefilled with Search whole states =
Texas, Listing type =For sale, and Max listings per state / search =100- press Start to run it as-is. To search a specific place instead, add Specific locations (a city, ZIP or address) or paste Zillow search URLs. - Adjust Listing type or the limit if you need to.
- Click Save & Start.
- Download results in JSON, CSV, Excel, or XML from the Storage tab.
Sweeping whole states is the expensive mode. A large state is split into many search areas, so it can take tens of minutes and hundreds of MB of proxy traffic. Run one small state first to gauge the cost, then scale up.
Input
There are three ways to start a run (only the first is prefilled):
-
Search whole states — pick states to sweep for maximum coverage (the expensive mode).
-
Specific locations — a city, ZIP code, neighborhood, county or address (fast).
-
Paste URLs instead* — paste Zillow search results URLs. When this is filled, it takes priority over everything else and the other inputs are ignored.
-
states— whole states to sweep, de-duplicated across the state (prefilled:TX). -
locations— optional; specific places to search. Leave empty to usestates. -
listing_types— one or more offor_sale,for_rent,sold(prefilled:for_sale). Each selected type is scraped as a separate search. -
limit— max listings per state (or per specific location) per listing type (prefilled 100). -
search_urls— optional; alternative to the above, takes priority when set. -
grid_step_deg— search-area size when sweeping a state; smaller is more thorough but costs more requests (default 0.2). -
max_pages— safety cap on result pages fetched per search area (default 2).
Example input
{"states": ["TX"],"listing_types": ["for_sale"],"limit": 100}
See the Input tab above for every parameter.
Output
Results land in a dataset under the Storage tab. View them as a table (use the Overview, Location and Pricing views), download them, or pull them via the API.
{"zpid": "29478686","url": "https://www.zillow.com/homedetails/208-Lessin-Ln-Austin-TX-78704/29478686_zpid/","price": 850000,"price_text": "$850,000","currency": "USD","status": "FOR_SALE","status_text": "Active","home_type": "SINGLE_FAMILY","beds": 4,"baths": 3,"area_sqft": 2340,"lot_area": 8454.996,"lot_area_unit": "sqft","address": "208 Lessin Ln, Austin, TX 78704","street": "208 Lessin Ln","city": "Austin","state": "TX","zipcode": "78704","latitude": 30.226673,"longitude": -97.76352,"zestimate": 833500,"rent_zestimate": 4375,"tax_assessed_value": 763479,"days_on_zillow": 60,"broker_name": "Keller Williams Realty","image_url": "https://photos.zillowstatic.com/fp/a653e4948407414bbcf907979d9f8ad4-p_e.jpg","has_image": true,"page": 1,"search_term": "Austin, TX"}
Field names are lowercase snake_case, and the input keys match them. Fields that a listing does not have are omitted from that row.
What can you do with the data?
Each recipe names the exact input and fields to use.
1. Build a price-comparison sheet for a market
- Set
locationsto a city or ZIP andlisting_typetofor_sale. - Set
limithigh enough to cover the area. - Export the Overview view to CSV or Excel and sort by
priceandarea_sqft.
2. Map active inventory
- Run a search for your area(s).
- Export
latitude,longitude,addressandprice. - Load the coordinates into your mapping tool of choice.
3. Track a market over time
- Schedule the Actor to run daily for the same
locations. - Compare
price,days_on_zillowandtax_assessed_valuebetween runs.
How much does Zillow Search Scraper cost?
Pricing is pay-per-event, so you only pay for what a run actually produces:
listing— charged once for every listing saved to the dataset (price, beds, baths, area, address, coordinates, estimates, broker and photo). $1 per 1,000 listings ($0.001 each).
A run that returns 10,000 listings costs about $10. You pay only for listings written to the
dataset, so a smaller limit costs less, and new Apify accounts get free monthly usage. See the
Pricing tab for current rates and plan discounts. Note that sweeping whole states is the
costliest way to use the Actor — each state is split into many search areas, so pick a small
state first to gauge both the cost and the time.
FAQ
Do I need an account, cookies, or an API key for Zillow? No. You only need a free Apify account. Just pick a location and press Start.
Which mode wins, locations or pasted URLs? If Paste URLs instead* is filled, it is used and Search locations is ignored. Otherwise the locations are searched. The two are never combined.
How many results can I get? Up to the number of public listings in each location, bounded by Max listings per search and Max pages per search. Very large markets are capped by the site's own result limits.
Can I scrape private or restricted content? No. The Actor returns publicly visible search listings only.
Is it legal to scrape Zillow? The Actor collects publicly available data. Review Apify's guidance on legal and ethical scraping and make sure your use case complies with Zillow's terms.
Can I use it with the API / SDKs / MCP? Yes — see the API tab above, or connect through the Apify MCP server.
Something isn't working. Open the Issues tab, or a discussion on the Actor page. Include your input and the run URL so it can be reproduced.
Notes and limitations
- Results reflect the public listings available at the moment the run executes; they can change between runs.
- A location name is matched to the closest region. Very ambiguous or misspelled names may fail to resolve — paste a Zillow search URL in that case.
- Some fields are not available for every listing (for example an estimate, taxes, or days on market). Missing fields are omitted from that row rather than shown as empty.
- Max pages per area exists to keep very large markets from running away; raise it if you need deeper coverage, up to the site's own cap.
- State sweeps cover the whole state but are not guaranteed to be 100% exhaustive in the
densest areas. Each search area returns a bounded number of results; in a very dense city a
single area can return more than that. Lower grid_step_deg (e.g. to
0.1) for finer areas and rerun that state if you need more depth. - The Actor is built to be rate-friendly. Extremely large runs may slow down when the site throttles requests, and will resume automatically.
Support
Found a bug or have feedback? Open an issue in the Issues tab.