Zillow Home Values & Zestimate Scraper
Pricing
Pay per usage
Zillow Home Values & Zestimate Scraper
Scrape Zillow home values, Zestimates, and market trends for any US area. Extract property valuations, price history, tax history, comparable sales, sqft, beds, baths, year built, lot size, and forecasted appreciation. Search by ZIP code, city, or street address. Uses __NEXT_DATA__, Zillow API, and
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Ricardo Akiyoshi
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Scrape Zillow home values, Zestimates, market trends, comparable sales, price history, and tax history for any US area. Search by ZIP code, city name, or street address.
Designed for real estate investors, appraisers, analysts, and researchers who need accurate property valuation data at scale.
Features
- Zestimate extraction -- current Zestimate value with low/high confidence range for every property
- Market trends -- median home value, 1-year change, 5-year change, and forecasted appreciation for any area
- Comparable sales -- recently sold properties near each location with sale prices and dates
- Price history -- full historical price changes, listings, and sale events per property
- Tax history -- annual tax assessments, tax paid, and year-over-year changes
- Property details -- sqft, beds, baths, year built, lot size, home type, HOA fees, insurance
- Multi-location -- search multiple ZIP codes, cities, or addresses in a single run
- Property type filter -- filter by house, condo, or townhouse
- Four extraction strategies -- parses
__NEXT_DATA__(Next.js), Apollo GraphQL cache, JSON-LD, and CSS selectors - Anti-bot handling -- 12 rotating User-Agent strings with full browser headers, block detection, 3-strike graceful shutdown
- Deduplication -- tracks ZPIDs and addresses to prevent duplicate entries
- Rent Zestimate -- estimated monthly rental value alongside the property value
- Per-location stats -- detailed breakdown of results per location in logs
- Pay-per-event -- charged only for each value successfully scraped
Use Cases
Real Estate Investing
Analyze property values across multiple ZIP codes to identify undervalued markets. Compare Zestimates to recent sale prices to find properties priced below market value. Track 1-year and 5-year appreciation trends to predict which neighborhoods are gaining momentum.
Property Valuation & Appraisals
Pull Zestimates with confidence ranges and comparable sales data for accurate property valuations. Cross-reference Zestimates with tax assessed values and recent sale prices. Export price history to see how a property's value has changed over time.
Market Analysis & Research
Monitor median home values and forecasted appreciation across cities and ZIP codes. Track whether a market is appreciating, flat, or declining. Compare value changes across neighborhoods within a metro area.
Comparative Market Analysis (CMA)
Generate CMA reports by collecting comparable sales near a subject property. Each comparable includes sale price, date, sqft, beds, baths, and distance. Filter by property type to ensure apples-to-apples comparisons.
Tax Assessment Review
Extract tax history to identify properties where the tax assessed value significantly differs from the Zestimate, which may indicate appeal opportunities or assessment errors.
Portfolio Monitoring
Track Zestimates for properties you own or are considering. Run the scraper periodically to build a time series of property values and detect market shifts early.
Academic & Economic Research
Collect structured housing data for urban economics research, affordability studies, gentrification analysis, and demographic studies. Data includes geolocation for spatial analysis.
Input
| Field | Type | Default | Description |
|---|---|---|---|
locations | String[] | ["90210"] | List of ZIP codes, cities, or addresses to search |
propertyType | String | all | Filter: all, house, condo, townhouse |
includeComps | Boolean | true | Include comparable (recently sold) properties |
maxResults | Integer | 200 | Max home values to scrape per location (0 = unlimited) |
proxyConfiguration | Object | (none) | Apify proxy settings (residential strongly recommended) |
Location Format
| Location Type | Example | Notes |
|---|---|---|
| ZIP code | 90210 | 5-digit US ZIP code |
| City slug | los-angeles-ca | Zillow URL-friendly format |
| City, State | Miami, FL | Auto-converted to slug |
| Street address | 123 Main St, Los Angeles, CA | Searches for specific property |
| Full URL | https://www.zillow.com/home-values/90210/ | Paste any Zillow URL directly |
Property Types
| Value | Description |
|---|---|
all | All property types (default) |
house | Single family homes |
condo | Condominiums and co-ops |
townhouse | Townhouses and townhomes |
Input Examples
Home values in Beverly Hills
{"locations": ["90210"],"propertyType": "all","includeComps": true,"maxResults": 100}
Compare values across multiple markets
{"locations": ["austin-tx","nashville-tn","boise-id","raleigh-nc","tampa-fl"],"propertyType": "house","includeComps": true,"maxResults": 50}
Condos in Manhattan with comps
{"locations": ["manhattan-new-york-ny"],"propertyType": "condo","includeComps": true,"maxResults": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Specific property lookup
{"locations": ["123 Elm St, Pasadena, CA"],"includeComps": false,"maxResults": 1}
Large-scale ZIP code survey
{"locations": ["90210", "90211", "90212","10001", "10002", "10003","60601", "60602", "60603","77001", "77002", "77003"],"propertyType": "all","includeComps": true,"maxResults": 200,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Output
Each property is saved to the default dataset. Fields vary based on data availability and source page.
Home value output
{"zpid": "20485267","address": "123 Elm St, Beverly Hills, CA, 90210","streetAddress": "123 Elm St","city": "Beverly Hills","state": "CA","zipcode": "90210","zestimate": 3450000,"zestimateFormatted": "$3,450,000","zestimateRange": "$3,200,000 - $3,700,000","zestimateRangeLow": 3200000,"zestimateRangeHigh": 3700000,"rentZestimate": 12500,"rentZestimateFormatted": "$12,500","lastSalePrice": 2800000,"lastSalePriceFormatted": "$2,800,000","lastSaleDate": "2021-06-15","taxAssessedValue": 2950000,"taxAssessedValueFormatted": "$2,950,000","priceHistory": [{"date": "2021-06-15","price": 2800000,"priceFormatted": "$2,800,000","event": "Sold","source": "CRMLS"},{"date": "2021-04-01","price": 2900000,"priceFormatted": "$2,900,000","event": "Listed for sale","source": "CRMLS"}],"taxHistory": [{"year": 2025,"taxPaid": 35400,"taxPaidFormatted": "$35,400","value": 2950000,"valueFormatted": "$2,950,000"},{"year": 2024,"taxPaid": 33600,"taxPaidFormatted": "$33,600","value": 2856000,"valueFormatted": "$2,856,000"}],"lotSize": "8,500 sqft","lotSqft": 8500,"sqft": 3200,"beds": 4,"baths": 3.5,"yearBuilt": 1985,"homeType": "SingleFamily","latitude": 34.0736,"longitude": -118.4004,"listingUrl": "https://www.zillow.com/homedetails/123-Elm-St-Beverly-Hills-CA-90210/20485267_zpid/","medianValue": 3850000,"valueChange1yr": 5.2,"valueChange5yr": 28.7,"forecastedChange": 3.1,"scrapedAt": "2026-03-02T12:00:00.000Z","source": "zillow","searchLocation": "90210"}
Market trends output (area-level)
{"address": "Beverly Hills, CA","isRegion": true,"regionType": "city","medianValue": 3850000,"medianValueFormatted": "$3,850,000","valueChange1yr": 5.2,"valueChange1yrFormatted": "+5.2%","valueChange5yr": 28.7,"valueChange5yrFormatted": "+28.7%","forecastedChange": 3.1,"forecastedChangeFormatted": "+3.1%","medianListPrice": 4200000,"medianSalePrice": 3600000,"medianRentPrice": 8500,"totalHomes": 4521,"homesSold": 87,"medianDaysOnMarket": 45,"scrapedAt": "2026-03-02T12:00:00.000Z","source": "zillow","searchLocation": "90210"}
Comparable sale output
{"zpid": "20485300","address": "456 Oak Ave, Beverly Hills, CA, 90210","zestimate": 3100000,"zestimateFormatted": "$3,100,000","lastSalePrice": 3050000,"lastSalePriceFormatted": "$3,050,000","lastSaleDate": "2026-01-20","sqft": 2800,"beds": 4,"baths": 3,"yearBuilt": 1990,"homeType": "SingleFamily","homeStatus": "Sold","distanceMiles": 0.3,"isComparable": true,"scrapedAt": "2026-03-02T12:00:00.000Z","source": "zillow","searchLocation": "90210"}
Performance Tips
- Use residential proxies -- Zillow is one of the most aggressive sites for blocking datacenter IPs. Apify's
RESIDENTIALproxy group is strongly recommended for any production use. - Start small -- run with
maxResults: 10and one location first to verify your proxy setup works before scaling up. - Batch locations -- pass all ZIP codes and cities in a single
locationsarray rather than running the actor multiple times. This is more efficient and lets the crawler manage rate limiting. - Limit comps -- if you only need property values and not comparable sales, set
includeComps: falseto reduce the number of pages crawled. - Property type filter -- filtering by property type reduces noise and speeds up processing.
- ZIP codes are fastest -- ZIP code searches tend to return cleaner results than city-level searches, which can span thousands of properties.
Anti-Bot Protection
Zillow uses aggressive anti-bot measures including:
- IP-based rate limiting and datacenter IP blocking
- CAPTCHA and JavaScript challenge pages
- Cloudflare-style DDoS protection
- Browser fingerprinting
- User-Agent and header validation
This actor handles these by:
- Rotating 12 realistic User-Agent strings per request
- Sending full browser-like headers (Sec-Ch-Ua, Sec-Fetch-*, DNT)
- Limiting to 12 requests/minute with randomized delays between requests
- Detecting block/CAPTCHA pages with a 3-strike shutdown policy
- Supporting Apify residential proxy rotation
- Preferring JSON data extraction over DOM parsing
If you see "CAPTCHA/anti-bot block detected" in logs, switch to residential proxies for reliable results.
Pricing (Pay Per Event)
This actor uses Apify's pay-per-event model. You are charged $0.005 for each home value successfully scraped and saved to the dataset. There is no charge for blocked or failed requests.
Legal Notice
This actor is provided as a technical tool for data collection. Users are responsible for ensuring their use complies with Zillow's Terms of Use and all applicable laws. This tool is intended for personal research, market analysis, investment due diligence, and educational purposes. Do not use scraped data for purposes that violate Zillow's terms or applicable law.
Integration — Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("sovereigntaylor/zillow-home-values-scraper").call(run_input={"searchTerm": "zillow home values","maxResults": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item.get('title', item.get('name', 'N/A'))}")
Integration — JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('sovereigntaylor/zillow-home-values-scraper').call({searchTerm: 'zillow home values',maxResults: 50});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(item.title || item.name || 'N/A'));