Zillow Scraper API - Listings, Zestimate, Agents & Cash Flow
Pricing
from $2.00 / 1,000 zillow listings
Zillow Scraper API - Listings, Zestimate, Agents & Cash Flow
Extract Zillow listings, full property details, agent contacts, photos and price history. Compare Zestimate ranges, model rental cash flow and test lower-rent or higher-rate scenarios. Search by location or collect known properties by URL, ZPID or dataset.
Pricing
from $2.00 / 1,000 zillow listings
Rating
5.0
(2)
Developer
Kelopr_bk
Maintained by CommunityActor stats
4
Bookmarked
165
Total users
21
Monthly active users
a day ago
Last modified
Categories
Share
Zillow Scraper
Listings, Zestimate, agent contacts and cash flow scenarios
Collect Zillow search results or full property records, including published photos, contacts, property features, valuations and price history. Use Deals to compare modeled cash flow under your assumptions, then test what happens when rent falls or financing costs rise.
Quick start
- Choose Search, Search + details, Deals, or Detail.
- Enter a city, ZIP or Zillow search URL. For Detail, enter property URLs, ZPIDs or a previous dataset.
- Set the maximum saved results and click Start.
- Open Output and export your data as JSON, CSV or Excel.
{"mode": "SEARCH_DETAILS","searchQueries": ["Sonoma, CA"],"propertyStatus": "FOR_SALE","maxResults": 20}
Choose your workflow
| Mode | Result |
|---|---|
SEARCH | Fast search cards: prices, locations, basic features, images and source coverage |
SEARCH_DETAILS | Individual properties with full available property-page fields |
DEALS | Full properties plus cash flow, valuation comparisons, signals and stress scenarios |
DETAIL | Known property URLs, ZPIDs or properties from an Apify dataset |
Search supports for-sale, sold and rental results. Building-summary cards can appear in rental search; full-detail modes skip those containers and collect individual property listings. They do not silently expand entire apartment buildings into all units.
{"mode": "DETAIL","zpids": ["11026031"],"analyzeDeals": true,"maxResults": 1}
Fields you receive
| Group | Examples |
|---|---|
| Identity and location | ZPID, property URL, display address, city, state, ZIP, coordinates, listing status and type |
| Price and property | Price, currency, beds, baths, living area, lot size, year built, parking and published amenities |
| Valuation | Zestimate, Rent Zestimate, source range percentages and calculated low/high ranges |
| Interest | Page views, favorites and calculated saves-to-views ratio |
| Contacts | Published listing-agent and broker names, phone numbers, emails, licenses and MLS attribution |
| Media | Source photo URLs, main image, available tours and floor-plan links |
| History | Published listing-price history, tax history, last sale and open-house information |
| Compatibility | listingPrice, listingAddress, coordinates, lotArea, agent, broker, mls, listingPhotos, listingPriceHistory, listingTaxHistory |
Native Zillow fields remain available. Flat aliases make spreadsheet exports easier. A field is returned only when its source value is available; explicit zero and false values are preserved. mainImage remains a URL for compatibility with existing integrations.
Cash flow stress test โ included with analysis
Purchase listings with a usable asking price and Rent Zestimate receive four scenarios without an additional analysis service:
| Scenario | Rent | Mortgage rate |
|---|---|---|
| Base | Zillow Rent Zestimate | Your input, the available Zillow rate, or the documented fallback |
| Lower rent | 10% below the estimate | Base rate |
| Higher rate | Base estimate | Base rate + 2 percentage points |
| Combined stress | 10% below the estimate | Base rate + 2 percentage points |
Use analysis.scenarios, stressMonthlyCashFlowUsd, stressCashFlowPositive, debtServiceCoverageRatio and rentBufferPct to compare the saved properties. These are calculations, not source-reported returns or financing offers.
{"mode": "DEALS","searchQueries": ["Sonoma, CA"],"maxResults": 10,"dealSettings": {"downPaymentPct": 25,"interestRatePct": "7","vacancyPct": 5,"maintenancePct": 5}}
The model also uses the selected loan term, insurance-rate and closing-cost assumptions. Tax uses a published annual amount when available, otherwise price multiplied by the source tax rate. It does not predict reassessment after purchase. Missing taxes or HOA information are identified in the notes and modelInputsComplete.
Rental listing prices are monthly rent, so they are not used as acquisition prices. Income metrics are unavailable for those records. An asking-price or estimated-value change since the last sale is not the owner's equity: outstanding debt is unknown, and sellerEquityUsd remains null.
Zestimate and Rent Zestimate are estimates, not guaranteed sale prices or achievable rents. Valuation ranges and all model assumptions remain visible. Seller and demand scores are rules-based signals for further research, not predictions about a person's intentions.
Filters and sorting
Use Advanced filters for price, rooms, area, property type, HOA, dates on Zillow, photos and open houses. Use Deal settings for thresholds such as cap rate or monthly cash flow.
maxResults counts successfully saved matching results across the run. Duplicate properties do not consume extra result slots. Full-detail candidate work is bounded, and the summary explains when a source page limit, detail allowance, spending limit or unavailable source prevents further collection.
Relevance output streams completed records as they arrive. An explicit sort needs the collected candidate set before final selection. A sorted partial search is not a ranking of every property in the market.
Output
- Results: a compact overview and valuation view.
- Property details & contacts: property facts, agents, photos, price/tax history and schools.
- Cash flow & stress tests: properties with sufficient inputs for scenario calculations. Records with unavailable calculations remain in Results with
cashFlowStatusand model notes; they are not filled with invented values. - Market report: an included HTML summary when analysis is enabled. It describes up to 2,000 saved properties, not an exhaustive market valuation.
- Run summary: saved counts, effective options, source coverage and stopping reasons.
- Errors: unavailable sources and diagnostics, separate from paid results. Grouped datasets are included copies; they do not add result-event charges.
- Excluded after analysis: full properties excluded by your filters when the excluded-analysis billing event is active.
Pricing
The result-event rate is $0.003 per saved listing ($3 per 1,000). Stress scenarios and source-backed compatibility fields are included.
An already scheduled pricing change takes effect on September 18, 2026 at 00:00 UTC: a property fetched in full, analyzed and then excluded by your filters is billed once at $0.003 through excluded-property-analysis. It is made available in the separate excluded dataset. Properties excluded before full-detail work, source errors and diagnostics are not charged as this analysis event. Before the effective date, that event is not charged.
Set a maximum run charge in Apify Console. The Actor checks it before further work and stops collection when another result cannot be charged. The active price details in Console are authoritative.
FAQ
Can I use a previous search dataset? Yes. Select it in the Detail input; records must contain a property URL or ZPID. Building containers are not individual properties.
Are all contact fields guaranteed? No. Only contacts actually published for that listing are returned. Zillow's promoted contact forms are not treated as verified listing-agent contact details.
Can a successful run return no results? Yes. Invalid input, unavailable properties or restrictive filters have separate explanations in the run summary. No placeholder listing is created.
Can I call it through an API? Yes. Use this Actor's Apify API integration with the same JSON input, then retrieve or export its dataset.
Empty results and cost protection
An empty run can mean no matching properties, a filter exclusion or an unavailable source. Run summary distinguishes these cases. Source errors never prove that a location has no listings. The Actor preserves completed results if further collection stops.
The effective acquisition limit also respects how many results the remaining run charge can pay for. A large result or detail limit does not override a smaller monetary budget. Ordinary search supports city/state names, ZIP codes, states and counties where Zillow can identify the region. Listing values are fetched from Zillow during the run; the bundled location directory contains only region identifiers.