Zillow Search Scraper: Investment Analyzer avatar

Zillow Search Scraper: Investment Analyzer

Pricing

Pay per usage

Go to Apify Store
Zillow Search Scraper: Investment Analyzer

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

SimpleAPI

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

4 days ago

Last modified

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?

FieldExample ValueUse Case
price / unformattedPrice / pricePerSqft"$450,000" / 450000 / 225.0Core pricing data
rentZestimate / taxAssessedValue2400 / 380000The real Zillow data the investment metrics are built from
grossRentalYieldPercent / capRatePercent6.4 / 4.8Core investment-return metrics
estimatedMonthlyMortgage / estimatedMonthlyCashFlow / estimatedAnnualCashFlow2100 / 180 / 2160Financing-adjusted cash-flow estimates
cashOnCashReturnPercent2.4Return on actual cash invested (down payment)
dealSignal / priceReductionCount / daysOnZillow"motivated-seller" / 2 / 95Motivated-seller signal and staleness indicators
beds / baths / area / lotAreaValue3 / 2 / 1850 / 0.25Core property specs
address / addressCity / addressState / addressZipcodefull address / city / state / ZIPLocation data
isFSBO / isNewHome / isForAuction / isBankOwnedfalse / false / false / falseListing-type flags
zestimate / detailUrl / imgSrcZillow's own estimate / listing link / photoReference 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

ParameterRequiredTypeDescriptionExample Value
searchTargetsNoarrayZillow search URLs (best) or location keywords["dallas-tx"]
listingFetchModeNostring (enum)Dynamic zoom (default), plain pagination (~820 cap), or map markers (~500 cap)"PAGINATION_WITH_DYNAMIC_ZOOM_INCREASE"
maxListingsNointeger (1-10,000)Max listings scraped and analyzed per run20 (default)
calculateInvestmentMetricsNobooleanCompute cap rate/yield/cash flow; off = these fields are nulltrue (default)
downPaymentPercentNointeger (0-100)Down payment percentage for financing calculations20 (default)
interestRatePercentNonumber (0-25)Annual mortgage interest rate7 (default)
loanTermYearsNointeger (1-40)Mortgage amortization period30 (default)
propertyTaxRatePercentAnnualNonumber (0-10)Annual property tax rate applied to assessed value1.2 (default)
insuranceRatePercentAnnualNonumber (0-5)Annual insurance cost as % of price0.35 (default)
maintenancePercentOfRent / vacancyPercentOfRentNonumber (0-50)Reserve percentages subtracted in cash-flow calc5 (defaults)
minPriceReductionsNointeger (0-50)Min real price-reduction count to keep a listing0 (default)
proxySetupNoobjectProxy; 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 NameWhat it extracts
Zillow Agents Finder & Reviews ScraperReal estate agent/lender profiles with individual reviews
Airbnb Scraper: Host Full ListingsComparable property-listing data for Airbnb
Airbnb Occupancy & Rate Analytics ScraperComparable occupancy-based analytics for Airbnb
Airbnb Full Year Price Tracker ScraperComparable pricing-trend data for Airbnb
Google Hotels Scraper — Hotels, Nearby Attractions and Location DataComparable property-listing data for hotels
LinkedIn Company About Scraper With Firmographic EnrichmentComparable 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 ApifyClient
client = 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.

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.