Zillow scraper
Pricing
from $1.70 / 1,000 results
Go to Apify Store
Location to scrape, in plain text - e.g. Los Angeles, Melrose, Bronx, Brooklyn, NY or 90210. It is resolved through Zillow's own autocomplete to the best matching region (city, borough, county, neighborhood, ZIP, subdivision or state). Leave empty if you are using Zillow URLs or ZPIDs instead.
Zillow search or property URLs to scrape. A search URL must carry a ?searchQueryState=… part - it holds the map area and the filters, both of which are read from it (open the search on zillow.com and move the map once if the URL has no query state yet). A property URL (/homedetails/…/12345678_zpid/) is fetched directly by its ZPID. Filters set below apply on top, and anything in the URL wins.
Zillow property IDs to fetch directly, e.g. 89070667. These skip the search entirely - no location, no map area needed.
[ "89070667", "448148857"]Which listings to scrape. For rent returns grouped buildings (minPrice/maxPrice/unitsGroup) rather than single homes; recently sold adds lastSoldDate.
Lowest price to include. For For rent this is the monthly rent (the API prices rentals on a different field, which the actor picks automatically).
Highest price to include. For For rent, the highest monthly rent.
Fewest bathrooms. Half baths count, so 2 also matches a 2.5-bath home.
Property types to include. Empty means every type.
Smallest interior size in square feet.
Smallest lot in square feet. 1 acre = 43,560 sq ft.
Only listings posted within this many days. Use 1 for listings added today. For Recently sold this is the sold-within window instead - the API uses one field for both, so 182 means sold in the last 6 months.
Free-text search over the listing description, exactly like the app's keyword box - e.g. pool, garage, waterfront.
Extra listing conditions. Every selected condition must hold.
Highest monthly HOA fee, in dollars. For sale.
Keep listings whose HOA fee is unknown when an HOA limit is set. Matches the app's default.
Zillow's app hides pending and backup-offer listings by default; turn this on to keep them.
Add foreclosed homes to the results. For sale.
Add pre-foreclosure homes to the results. For sale.
Building amenities the rental must have. Rentals.
Only rentals available on or after this date. Format YYYY-MM-DD. Rentals.
Drop 55+/senior-community rentals. Rentals.
Order the results are requested in. Leave empty to use the app's own default for the listing type (relevance for sale, priority score for rentals, days on Zillow for sold).
Sort low to high instead of high to low.
How many properties to scrape. Every returned property is billed, so this is the cap on what the run can cost. Leave empty to scrape everything the location has.
Zillow returns at most 1,000 listings per map area, so bigger areas are split into quadrants and searched separately. This caps how deep that goes — higher means more complete results on dense areas but a longer run. Only splits that actually divide the results count towards it, so raising it costs nothing on small areas. Raise it for a large metro or a whole state.
Zillow's mobile API needs no credentials, but sustained traffic from a single datacenter IP eventually earns a PerimeterX block. US residential proxies are recommended for large runs.
{ "useApifyProxy": true}