All notable changes to the Zillow Scraper are documented here.
- Eight more filters: pool, air conditioning, waterfront, single storey, garage, minimum parking spaces, "listed within" (24 hours to 36 months), and an option to include pending sales. Each one was verified against live results before being offered — a control that does not measurably change what comes back is not shipped.
- Search URLs are validated before the run starts. A URL that is not a zillow.com search address is rejected with a message naming the URL and what is wrong with it, instead of being silently dropped or failing mid-run.
- A blocked first request no longer throws away the whole search. Opening a search now retries with a fresh session, the way page fetches already did. Previously a single block on the first request produced a successful run with no listings.
- A run no longer stalls on an unavailable proxy. If the preferred network route is repeatedly refused, the run switches route automatically and finishes rather than grinding to a halt.
- Runs now use 256 MB instead of 512 MB, halving compute cost per run. Peak use across a 2,000-listing run was 62 MB.
A substantial release. Output, input, and pricing all changed; read the notes before upgrading a saved task.
- Records now contain the documented fields. Earlier versions returned the raw upstream shape, so documented fields such as
bedrooms, bathrooms, livingArea, zestimate, and a numeric price were absent, and price arrived only as a formatted string. Every field in the README is now present on every record, with the documented type. This is verified automatically before each release rather than by review.
- Long searches no longer stop early or run away. Paging now ends at a definite boundary instead of continuing indefinitely, and an unset result limit no longer means an open-ended run.
- Sessions are held correctly across a search, which removes a class of silent partial results on longer runs.
- Request pacing and timeouts returned to production values. The previous release shipped development settings that cut healthy responses short.
- Runs stay within a 512 MB footprint, so compute cost per run stays low.
- Search by location. Enter
Austin, TX or 78704 instead of building a search on Zillow and copying the URL. Multiple locations per run are supported.
- Filters in the input: price, bedrooms, bathrooms, square feet, lot size, year built, HOA fee, property type, keywords, sort order, 3D tours, open houses, and for-sale toggles for foreclosures, auctions, coming-soon, agent, owner, and new construction.
- Large areas are collected in full. Zillow returns only so many listings per search regardless of how many exist; oversized areas are now split into smaller ones and each is searched, so a whole city or county comes back complete. Controlled by
extractionMethod.
- Complete photo galleries — around 30 full-size photos per listing on average, plus
photoCount, instead of a single thumbnail.
- More listing data per record: price-change history, tax-assessed value, rent estimate, listing sub-types, agent photo, Showcase and builder flags, and readable listing categories. 64 fields in total.
- Duplicate removal within a run, so an overlapping split area never saves — or bills — the same property twice.
- Out-of-area results are filtered out. Zillow pads thin result pages with suggestions from other states; those are no longer saved or billed when the search states a definite area.
- Resume after interruption. A run stopped by a restart, timeout, or abort continues from its last completed page instead of starting over.
- A dataset table view so results are readable in the Console without exporting.
- Pricing. The actor is now paid: $0.0020 per property on the Free plan, $0.0010 on Gold and above, plus a $0.005 fee when a run starts. Previous builds carried a price that was never charged; this replaces it with a real one.
- The proxy input was removed. Network routing is handled automatically; there is nothing to configure and no way to pick a setting that gets blocked.
maxResults now defaults to 100 rather than unlimited, so a first run cannot become an unbounded one by accident.
- A bad location or URL no longer fails the run. The run succeeds and returns one row explaining the problem.
Initial release. Scrape Zillow search pages by URL with pagination.