The actor previously only accepted a Zillow search URL. It now exposes 7 search modes via a new searchMode input โ every mode reuses the same auto-pagination, dedup, KPI engine, and HTML report.
searchMode
Input fields
Tier
url(default)
searchUrl ยท searchUrls ยท urlsCsv (existing)
FREE+PAID
address
addressQuery ยท addressQueries (PAID)
FREE+PAID
mls
mlsId ยท mlsIds (PAID)
FREE+PAID
polygon
polygonCoords (โฅ3 [lng,lat] pairs)
PAID
coordinates
centerLat ยท centerLng ยท radiusMiles
FREE+PAID
mapbounds
north ยท south ยท east ยท west
PAID
offmarket
offmarketZip (ZIP only)
PAID
๐ New shared inputs
listingStatus โ For_Sale (default) ยท For_Rent ยท Sold. Required upstream by every mode except url and offmarket.
maxResultsPerQuery โ replaces the old maxResultsPerUrl (legacy field removed). Default lowered from 42 โ 40 so a default click-Run finishes in exactly ONE upstream API request across every mode (URL pages return ~41 listings; the old default of 42 forced a wasted second fetch for one extra item).
๐ Backward-compatible
Default searchMode is url โ existing runs and saved configs work unchanged.
Output dataset adds a sourceQuery field (always populated); sourceUrl is now nullable for non-URL modes.
๐ What's new under the hood
New src/modules/searchModes.js registry โ one entry per endpoint with validate / buildParams / describe / per-mode extractResults / extractTotal / transform overrides. Adding a future search mode is a single-file PR.
searchByMode(mode, params, apiKey) replaces searchByUrl() and dispatches to the right realtyAPI endpoint.
New transformPropertyV2 adapter โ the new endpoints return a wrapped searchResults[].property shape with restructured fields (bedrooms/bathrooms/livingArea, address as object, location.{lat,lng}, price.value, nested taxAssessment, media.allPropertyPhotos.medium[]); URL mode keeps the original transformProperty.
HTML report subtitle and per-query table now show which mode produced the data.
โ ๏ธ Breaking
maxResultsPerUrl input field has been removed. Any saved configs / scheduled runs / API callers using the old name need to switch to maxResultsPerQuery (same semantics).
[2026-04-30] - Market Intelligence Update
๐ Major Feature: Market Diagnostics Built In
๐ Total inventory count - Every run now returns Zillow's full total_results count for the search, exposed via the new "Search Totals" output. See your market depth at a glance.
๐ Auto-pagination - One URL, all pages. We automatically paginate /2_p/, /3_p/, ... up to your maxResultsPerUrl cap. No more manual page suffix juggling. Optionally append /N_p/ to start from a specific page.
๐ Market KPIs out of the box - Each run produces a market-kpis.json record and HTML dashboard with:
Investor signals: median gross rental yield, price-to-Zestimate ratio, price-to-tax-assessed ratio
Market depth: coverage ratio (pulled vs available), stale-listing share (>60 days on market)
Distribution stats: min/median/avg/p90/max for price, area, $/sqft, beds, baths
Inventory breakdown: counts by home type, home status, status type
๐จ Redesigned HTML report - New KPI cards, distribution snapshot, inventory breakdown, and per-URL totals table
marketKpis (market-kpis.json) - all computed KPIs in structured JSON, ready for downstream pipelines
๐ผ Why this matters
No other Zillow scraper on the Apify Store returns inventory count, rental yield, or stale-share โ actionable signals investors and analysts need before they look at individual listings. We turn raw scrape into a market diagnostic.
๐ Zillow Property Scraper - Launch!
Paste-a-URL Simplicity - Paste any Zillow search URL and get clean structured property data instantly
30+ Fields Per Property - Full address, price, beds/baths, sqft, Zestimate, Rent Zestimate, tax assessed value, GPS coordinates, all photos, 3D and video flags
Bulk + CSV Input - Process unlimited Zillow search URLs in one run via array or CSV upload (PAID tier)
Auto Deduplication - Same ZPID appearing across paginated pages is removed automatically โ no double-charging
Pay-Per-Property Pricing - Flat $0.003 per property extracted, $0.005 per run start. Only pay for what you get.
FREE Tier - Try it free with 25 properties per run, no credit card required
All US Markets Covered - Works on every Zillow search URL: city, state, ZIP, map bounds, filtered searches, for-sale, for-rent, and sold listings
๐ User Benefits
Zero coding required โ paste a URL, click Run, download JSON or CSV
Reliable structured data with consistent schema across runs
Time savings: 100 properties extracted in under 30 seconds
Cost transparency: pay-per-result pricing, no hidden fees
Export to Excel, Google Sheets, or directly into your CRM via API
๐ฏ Use Cases
Real estate investors finding properties priced below Zestimate for off-market outreach
Real estate agents building comparative market analyses (CMAs) from recently sold listings
Proptech teams running multi-city pricing trend research with CSV bulk upload
Buy-to-rent investors calculating rental yield from price + Rent Zestimate
Real estate agencies enriching CRM lead lists with property photos, GPS, and Zestimate
Tax appeal services identifying over-assessed properties via tax assessed value vs price
Property aggregator and directory sites bootstrapping their listing databases