Zillow Search Scraper: Investment Analyzer
Pricing
Pay per usage
Zillow Search Scraper: Investment Analyzer
Pull Zillow search listings in bulk using advanced filters for location, price, beds, baths, and home type. Get property details, estimates, photos, and agent info. Designed for real estate teams, analysts, and automation pipelines needing clean, structured Zillow market data.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
SimpleAPI
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Zillow Search Scraper — Listings, Cap Rate and Cash Flow
Zillow Search Scraper: Investment Analyzer pulls property listings from Zillow search URLs, keywords, or locations, and computes cap rate, gross rental yield, estimated mortgage payment, and monthly/annual cash flow for every listing — using Zillow's own rentZestimate and taxAssessedValue data combined with your financing assumptions, at zero extra request cost. It's built for real estate investors screening markets, agents building investor-ready comps, and researchers who need real Zillow data run through honest investment math, not a black-box score.
What is Zillow Search Scraper: Investment Analyzer?
Zillow Search Scraper: Investment Analyzer is an Apify Actor that scrapes Zillow search results and layers a real estate investment calculator on top of every listing. Key capabilities:
- Search by Zillow search URL (most accurate), location keyword, or a mix of both
- Choose the listing-collection method: dynamic zoom pagination, plain pagination, or map markers, each with different real coverage limits
- Compute cap rate, gross rental yield, estimated monthly mortgage, monthly/annual cash flow, and cash-on-cash return per listing, from real Zillow data plus your financing assumptions
- Filter for motivated-seller "deal signal" listings using real price-reduction count and days-on-Zillow tracking
- Get every base listing field too — price, beds, baths, address, zestimate, status, home type, lot size, FSBO/auction/new-construction flags
What data can I extract with Zillow Search Scraper: Investment Analyzer?
| Field | Example Value | Use Case |
|---|---|---|
price / unformattedPrice / pricePerSqft | "$450,000" / 450000 / 225.0 | Core pricing data |
rentZestimate / taxAssessedValue | 2400 / 380000 | The real Zillow data the investment metrics are built from |
grossRentalYieldPercent / capRatePercent | 6.4 / 4.8 | Core investment-return metrics |
estimatedMonthlyMortgage / estimatedMonthlyCashFlow / estimatedAnnualCashFlow | 2100 / 180 / 2160 | Financing-adjusted cash-flow estimates |
cashOnCashReturnPercent | 2.4 | Return on actual cash invested (down payment) |
dealSignal / priceReductionCount / daysOnZillow | "motivated-seller" / 2 / 95 | Motivated-seller signal and staleness indicators |
beds / baths / area / lotAreaValue | 3 / 2 / 1850 / 0.25 | Core property specs |
address / addressCity / addressState / addressZipcode | full address / city / state / ZIP | Location data |
isFSBO / isNewHome / isForAuction / isBankOwned | false / false / false / false | Listing-type flags |
zestimate / detailUrl / imgSrc | Zillow's own estimate / listing link / photo | Reference and valuation data |
Real investment metrics, computed transparently
grossRentalYieldPercent, capRatePercent, estimatedMonthlyMortgage, estimatedMonthlyCashFlow, estimatedAnnualCashFlow, and cashOnCashReturnPercent are computed from Zillow's own rentZestimate and taxAssessedValue — data already fetched with the listing, no extra requests — combined with the financing assumptions you set (downPaymentPercent, interestRatePercent, loanTermYears, propertyTaxRatePercentAnnual, insuranceRatePercentAnnual, maintenancePercentOfRent, vacancyPercentOfRent). When calculateInvestmentMetrics is off, these fields are honestly null rather than a fabricated estimate — only pricePerSqft and deal-signal flags are still computed. Since these figures depend on assumptions you control, they're estimates for screening purposes, not a certified appraisal or loan quote.
Motivated-seller deal signal filtering
minPriceReductions filters to listings with at least a given number of real detected price reductions — a genuine motivated-seller signal, not a guess. Every kept row also gets a dealSignal label combining price-reduction history with days-on-Zillow staleness, so you can triage which listings are worth a closer look first.
Why not build this yourself?
Zillow has no public developer API for third-party bulk access to search results or investment analytics at all. Building an equivalent tool yourself means handling Zillow's search pagination (with real coverage caps per method — ~820 for plain pagination, ~500 for map markers, both verified from source), plus building the mortgage amortization, cap-rate, and cash-flow math correctly from Zillow's own rent/tax data fields. All of that is already implemented in this Actor's source.
How to use data extracted from Zillow?
Real estate investment screening
Search a target market with your real financing assumptions (downPaymentPercent, interestRatePercent) and sort by capRatePercent/cashOnCashReturnPercent to quickly identify which listings clear your minimum return threshold before a deeper manual review.
Agents building investor-ready comps
Pull listings in a client's target area and export capRatePercent/estimatedMonthlyCashFlow alongside the base listing data to build an investor-focused comparison sheet that goes beyond a standard MLS printout.
Motivated-seller lead generation
Filter with minPriceReductions set above 0 to surface listings with a real price-reduction history, using dealSignal/daysOnZillow to prioritize outreach to the most motivated sellers first.
AI agents and automated pipelines
An agent can call this Actor to pre-screen a market's listings against an investment threshold, filtering on capRatePercent and dealSignal before feeding qualified listings into a downstream deal-analysis or CRM pipeline.
🔼 Input sample
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
searchTargets | No | array | Zillow search URLs (best) or location keywords | ["dallas-tx"] |
listingFetchMode | No | string (enum) | Dynamic zoom (default), plain pagination (~820 cap), or map markers (~500 cap) | "PAGINATION_WITH_DYNAMIC_ZOOM_INCREASE" |
maxListings | No | integer (1-10,000) | Max listings scraped and analyzed per run | 20 (default) |
calculateInvestmentMetrics | No | boolean | Compute cap rate/yield/cash flow; off = these fields are null | true (default) |
downPaymentPercent | No | integer (0-100) | Down payment percentage for financing calculations | 20 (default) |
interestRatePercent | No | number (0-25) | Annual mortgage interest rate | 7 (default) |
loanTermYears | No | integer (1-40) | Mortgage amortization period | 30 (default) |
propertyTaxRatePercentAnnual | No | number (0-10) | Annual property tax rate applied to assessed value | 1.2 (default) |
insuranceRatePercentAnnual | No | number (0-5) | Annual insurance cost as % of price | 0.35 (default) |
maintenancePercentOfRent / vacancyPercentOfRent | No | number (0-50) | Reserve percentages subtracted in cash-flow calc | 5 (defaults) |
minPriceReductions | No | integer (0-50) | Min real price-reduction count to keep a listing | 0 (default) |
proxySetup | No | object | Proxy; auto-escalates on blocks | {"useApifyProxy": true} |
{"searchTargets": ["dallas-tx"],"maxListings": 100,"calculateInvestmentMetrics": true,"downPaymentPercent": 25,"interestRatePercent": 6.5}
Common pitfall: listingFetchMode has real, different coverage caps per method — plain pagination tops out around 820 results per search URL, map markers around 500 — verified directly in the source's own capping logic, not an arbitrary schema limit.
🔽 Output sample
Output is typed, normalized JSON — one row per property listing (exportable as JSON, CSV, or Excel).
{"zpid": "12345678","dealSignal": "motivated-seller","statusType": "FOR_SALE","homeType": "SINGLE_FAMILY","price": "$450,000","unformattedPrice": 450000,"pricePerSqft": 225.0,"rentZestimate": 2400,"taxAssessedValue": 380000,"grossRentalYieldPercent": 6.4,"capRatePercent": 4.8,"estimatedMonthlyMortgage": 2100,"estimatedMonthlyCashFlow": 180,"estimatedAnnualCashFlow": 2160,"cashOnCashReturnPercent": 2.4,"priceReductionCount": 2,"hasPriceReduction": true,"daysOnZillow": 95,"beds": 3,"baths": 2,"area": 1850,"address": "123 Main St, Dallas, TX 75201","detailUrl": "https://www.zillow.com/homedetails/...","zestimate": 455000,"scrapedAt": "2026-07-26T14:02:11Z"}
All 44 fields shown above are the Actor's real dataset columns — this is the full output shape, not a subset.
How do you filter and target specific listings?
searchTargets is the core scope control — a real Zillow search URL (most accurate, preserves all your Zillow-side filters) or a location keyword. minPriceReductions is the genuine quality/motivation threshold, keeping only listings with a real detected price-reduction history. The financing assumption parameters (downPaymentPercent, interestRatePercent, etc.) don't filter listings but do control the investment-metric calculations applied to every one. Volume is controlled by maxListings, bounded by listingFetchMode's own real coverage cap per search URL.
{ "searchTargets": ["https://www.zillow.com/dallas-tx/..."], "maxListings": 200, "minPriceReductions": 1 }
{ "searchTargets": ["austin-tx"], "downPaymentPercent": 15, "interestRatePercent": 7.5, "maxListings": 50 }
{ "searchTargets": ["miami-fl"], "listingFetchMode": "MAP_MARKERS", "calculateInvestmentMetrics": false }
▶️ Want to try other property/real-estate scrapers?
| Scraper Name | What it extracts |
|---|---|
| Zillow Agents Finder & Reviews Scraper | Real estate agent/lender profiles with individual reviews |
| Airbnb Scraper: Host Full Listings | Comparable property-listing data for Airbnb |
| Airbnb Occupancy & Rate Analytics Scraper | Comparable occupancy-based analytics for Airbnb |
| Airbnb Full Year Price Tracker Scraper | Comparable pricing-trend data for Airbnb |
| Google Hotels Scraper — Hotels, Nearby Attractions and Location Data | Comparable property-listing data for hotels |
| LinkedIn Company About Scraper With Firmographic Enrichment | Comparable business-data enrichment for LinkedIn |
How to extract Zillow data programmatically
Every run is a standard Apify Actor call — one API request with your token, JSON input, JSON results back.
Python example
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run_input = {"searchTargets": ["dallas-tx"],"maxListings": 100,"downPaymentPercent": 20,"interestRatePercent": 7,}run = client.actor("<YOUR_USERNAME>/zillow-search-scraper-investment-analyzer").call(run_input=run_input)for listing in client.dataset(run["defaultDatasetId"]).iterate_items():print(listing["address"], listing["capRatePercent"], listing["dealSignal"])
Export to spreadsheets or CRM
Export the dataset directly as CSV or Excel, then map address/detailUrl to a deal-tracking spreadsheet and capRatePercent/cashOnCashReturnPercent to a scoring column for investment-committee review.
Is it legal to scrape Zillow property listings?
Property listing data (price, specs, address) is public business/product data, not personal data tied to an individual — this is closer to public real estate listing information than personal contact data. Public Zillow search results are visible to any logged-out visitor. Consult legal counsel for commercial applications involving bulk automated querying of Zillow's services.
❓ FAQ
Are the investment metrics official appraisals or loan quotes?
No — they're transparent estimates computed from Zillow's own rentZestimate/taxAssessedValue data combined with the financing assumptions you set. They're designed for screening and comparison, not as a certified appraisal, underwriting figure, or loan offer.
What happens if I turn off investment metrics?
calculateInvestmentMetrics: false returns null for cap rate, yield, mortgage, and cash-flow fields rather than a fabricated estimate — only pricePerSqft and deal-signal flags are still computed.
How accurate is the price-reduction "deal signal"?
It's based on real, detected price-reduction counts and days-on-Zillow data from the listing itself — a genuine historical signal, not a guess.
How many listings can each fetch method actually return?
Plain pagination tops out around 820 results per search URL, map markers around 500 — both real, verified caps in the source, not arbitrary schema limits. Dynamic zoom mode is designed to collect more by splitting the search area into smaller zones.
Do I need a Zillow account to use this?
No — the Actor reads Zillow's public search results, requiring no login.
Does Zillow Search Scraper: Investment Analyzer work with Claude, ChatGPT, and AI agent frameworks?
It has no dedicated MCP server registration in this Actor's current setup, but it is callable as a standard Apify API endpoint by any agent framework that can make an authenticated HTTP request and parse JSON.
How does this compare to other Zillow scrapers?
No independently verifiable competitor listing could be confirmed at the time of writing, so no specific comparison is made here. This Actor's distinguishing feature is the built-in investment-metrics calculator using real Zillow rent/tax data, computed at zero extra request cost.
Can I adjust the financing assumptions to match my own deal terms?
Yes — downPaymentPercent, interestRatePercent, loanTermYears, propertyTaxRatePercentAnnual, insuranceRatePercentAnnual, maintenancePercentOfRent, and vacancyPercentOfRent are all configurable to match your actual financing scenario.
Conclusion
Zillow Search Scraper: Investment Analyzer turns raw Zillow search results into an investor-ready dataset — real cap rate, rental yield, and cash-flow estimates computed transparently from Zillow's own data plus your financing assumptions, honestly null when disabled. It's built for real estate investors, agents, and researchers who need genuine investment math, not a black-box score. Start a run with your target search area and financing assumptions to get investment-analyzed listings back in one pass.