Zillow Property Details Scraper
Pricing
$20.00/month + usage
Zillow Property Details Scraper
Scrape complete Zillow property details from URLs or ZPIDs: price, Zestimate, rent estimate, price & tax history, schools, HOA fees, photos, agent info, and 200+ facts per home. Fast API-based scraping - no browser. Free trial.
Pricing
$20.00/month + usage
Rating
5.0
(29)
Developer
ВAH
Maintained by CommunityActor stats
48
Bookmarked
104
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Zillow Property Details Scraper turns any Zillow property page into a complete, structured real-estate record — 54 fields per home, including a 10-year Zestimate history you can't get anywhere else. Rated ⭐ 5.0 by users.
What does Zillow Property Details Scraper do?
Zillow Property Details Scraper extracts comprehensive property data from Zillow — the largest real-estate marketplace in the US. It works as an unofficial Zillow API alternative: paste property URLs (or plain ZPIDs) and get back structured JSON with pricing, Zestimate® and Rent Zestimate®, 10-year Zestimate history, estimated sales range, full price & tax history, schools with district stats, HOA fees, parcel IDs, photos, agent contacts, comparable homes, and 180+ property facts.
It works on for-sale, sold, off-market, and for-rent property pages (/homedetails/ URLs), apartment buildings (/apartments/ URLs), and new-construction communities (/community/ URLs) — and uses direct API scraping with no browser, so runs are fast and cheap.
Why use Zillow Property Details Scraper?
- ✅ More data than the page shows — Zestimate ranges, ad-targeting attributes, county FIPS codes, parcel numbers, and comparable-home valuations come straight from Zillow's internal API.
- ✅ Exclusive: Zestimate history — the page's 10-year monthly home-value chart (including Zillow's forecast) as ready-to-use
{date, value}rows. No other scraper ships this. - ✅ Clean, analysis-ready JSON — nulls, empty blobs, and duplicate photo sizes are stripped out, so every byte you download is real data.
- ✅ Two input modes — full property URLs or bare ZPIDs (handy when your list comes from a spreadsheet, an API, or another scraper).
- ✅ Every page type — for-sale / sold / off-market / for-rent homes, plus apartment buildings (unit-level pricing) and new-construction communities (floor plans & move-in-ready homes). Each record is tagged with
page_type. - ✅ Fast, API-based scraping — no headless browser, so results arrive in seconds per property.
- ✅ Fault-tolerant — one bad URL never kills the batch; it's logged and skipped.
- ✅ Battle-tested — maintained since 2024 with a 5.0/5 user rating.
| Feature | This Actor | Typical alternatives |
|---|---|---|
| Fields per property | 54 top-level fields, 180+ facts | 20–30 fields |
| Zestimate + Rent Zestimate | ✅ Both, plus estimated sales range | Often missing or partial |
| Zestimate history | ✅ 10-year monthly series + forecast | ❌ Not available |
| Price & tax history | ✅ Full timelines | Frequently truncated |
| Schools | ✅ Nearby and assigned, with district size, student-teacher ratio, certified-teacher % | Name + rating only |
| Comparable & nearby homes | ✅ Included with prices and Zestimates | Rarely included |
| Tour availability slots | ✅ Included | Almost never included |
| Input by ZPID | ✅ | URL only |
| Apartment buildings & new-construction communities | ✅ Same Actor | Usually separate actors |
| Method | Direct API (fast) | Browser-based (slow) |
Use cases: investment analysis and deal screening · property valuation models (AVM) · market research · lead generation for agents and wholesalers · powering real-estate apps and dashboards · tracking specific homes over time on a schedule.
What data can you extract from Zillow?
| Field | Type | Description |
|---|---|---|
page_type | string | property, building (apartment complex), or community (new construction) |
address, postal_code, county_name, county_fips | object/string | Full address, county name and FIPS code |
listing_price | number | Current listing price (or final sale price for sold homes) |
zestimate, rent_zestimate | number | Zillow's estimated value and estimated monthly rent |
zestimate_low_percent, zestimate_high_percent | string | Zestimate confidence range (±%) |
zestimate_range_low, zestimate_range_high | number | The page's "Estimated sales range" in dollars |
zestimate_history | array | "Zestimate history" chart: ~10 years of monthly {date, value} points incl. forecast |
last_sold_price, last_sold_date | number/string | Most recent sale price and date |
home_status, home_type | string | FOR_SALE / SOLD / RECENTLY_SOLD…, SINGLE_FAMILY / CONDO… |
bedrooms, bathrooms, living_area, year_built | number | Core home facts |
lot_size, lot_area_value, lot_area_units | number/string | Lot size in sqft plus display value & units |
monthly_hoa_fee, property_tax_rate, tax_assessed_value | number | Ownership cost data |
parcel_id | string | County parcel number for public-records lookups |
whats_special | array | The page's "What's special" highlight tags |
likely_to_sell_faster_than_nearby_percent | number | "Likely to sell faster than N% nearby" (for-sale homes) |
price_history | array | Every listing, price cut, and sale event with dates and sources |
tax_history | array | Year-by-year tax paid and assessed value |
nearby_schools, assigned_schools | array | GreatSchools ratings; assigned schools add district, enrollment, student-teacher ratio |
nearby_homes, similar_homes | array | Neighboring parcels and Zillow's comparable homes with prices |
photos | array | Highest-resolution photo URLs available |
virtual_tour_url, street_view_image_url | string | 3D home tour and Street View links when available |
attribution_info | object | Listing agent & broker names, phone numbers, MLS IDs |
listing_sub_type, foreclosure_types | object | FSBO / auction / new-home / foreclosure / pre-foreclosure flags |
reso_facts | object | 180+ standardized facts: appliances, heating, cooling, flooring, parking, utilities, rooms… |
ad_targets, tour_eligibility, view_count, favorite_count, … | mixed | Ad-targeting attributes, tour booking slots, page engagement |
Apartment building pages return a building record instead: building name & phone, unit-level pricing per floor plan, availability summary, amenities, pet policy, fees, special offers, Walk/Transit/Bike Scores, schools, and photos. Community pages return a community record: builder & contact info, price-from, floor plans, move-in-ready homes, sales-office hours, and nearby communities.
How to scrape Zillow property details
- Open the Actor on Apify Store and click Try for free.
- Paste Zillow URLs — property pages (
/homedetails/...), apartment buildings (/apartments/...), or communities (/community/...) — or enter plain ZPIDs (the number before_zpidin the URL). - Click Start — the Actor fetches each property through Zillow's internal API.
- Watch results appear in the Output tab within seconds.
- Export the dataset as JSON, CSV, Excel, XML, or feed it to the API, integrations, or your own code.
How much does it cost to scrape Zillow?
See the Pricing tab on the Actor page for current rates — every plan includes a free trial, so you can test your own URLs before paying. Because this Actor calls Zillow's API directly instead of rendering pages in a browser, runs finish in seconds and platform usage costs stay minimal, even for large batches. Pair it with Task scheduling to monitor properties daily at a predictable cost.
Input
Configure the run in the Input tab. Both fields are optional, but provide at least one:
| Parameter | Type | Description |
|---|---|---|
Urls | array | Zillow URLs: property pages (/homedetails/...), apartment buildings (/apartments/...), or communities (/community/...). ZPID-only URLs like https://www.zillow.com/homedetails/39949685_zpid/ also work. |
zpids | array | Numeric Zillow Property IDs, e.g. "39949685". Combined with Urls and de-duplicated automatically. |
include_zestimate_history | boolean | Default true. Adds the 10-year monthly Zestimate history to each property (one extra request per property — switch off for the fastest runs). |
{"Urls": ["https://www.zillow.com/homedetails/17-Zelma-Dr-Greenville-SC-29617/11026031_zpid/"],"zpids": ["39949685"]}
Output
One dataset item per property. Real example (arrays truncated with ...):
{"original_url": "https://www.zillow.com/homedetails/17-Zelma-Dr-Greenville-SC-29617/11026031_zpid/","page_type": "property","address": {"streetAddress": "17 Zelma Dr","zipcode": "29617","city": "Greenville","state": "SC"},"county_name": "Greenville","postal_code": "29617","home_status": "FOR_SALE","home_type": "SINGLE_FAMILY","zillow_id": 11026031,"bedrooms": 4,"bathrooms": 3,"listing_price": 495000,"zestimate": 481600,"rent_zestimate": 2150,"zestimate_low_percent": "", // Zestimate range ±%. Provided by Zillow for sold homes"zestimate_high_percent": "","zestimate_range_low": 458000, // The page's "Estimated sales range""zestimate_range_high": 506000,"last_sold_price": 415000,"last_sold_date": "2023-07-10","year_built": "", // Empty when Zillow itself has no record for the home"living_area": 2582, // Hidden by Zillow for many sold homes"lot_size": 21780,"lot_area_value": 0.5,"lot_area_units": "Acres","monthly_hoa_fee": "", // Empty when the home has no HOA"property_tax_rate": 0.51,"tax_assessed_value": 452020,"county_fips": "45045","parcel_id": "0429000101400","description": "Location doesn't get better than this! Just steps from Furman University and the Swamp Rabbit Trail...","whats_special": ["Brick home", "Large back deck", "Remodeled kitchen", "Stainless appliances", "Tile backsplash"],"time_on_zillow": "10 days","likely_to_sell_faster_than_nearby_percent": 92, // "Likely to sell faster than 92% nearby""view_count": 969, // Hidden by Zillow for sold homes"favorite_count": 69,"latitude": 34.91575,"longitude": -82.44426,"brokerage_name": "Bluefield Realty Group","virtual_tour_url": "", // 3D home tour link when the listing has one"street_view_image_url": "https://maps.googleapis.com/maps/api/streetview?location=17+Zelma+Dr...","photos": ["https://photos.zillowstatic.com/fp/6b25775b92e69c40a67ac44e05b52dbe-uncropped_scaled_within_1536_1152.jpg","https://photos.zillowstatic.com/fp/66e1bf3aff33a711f6ed3e40a8d40a0d-uncropped_scaled_within_1536_1152.jpg"// ... 45 more photos. Sold homes usually expose only the cover photo],"reso_facts": {"appliances": ["Gas Cooktop", "Dishwasher", "Disposal", "Refrigerator", "Gas Oven", "Microwave", "Gas Water Heater"],"cooling": ["Attic Fan", "Central Air", "Electric"],"heating": ["Electric", "Forced Air", "Natural Gas"],"flooring": ["Brick", "Carpet", "Ceramic Tile", "Wood"],"lotSize": "0.50 Acres","pricePerSquareFoot": 192,"parcelNumber": "0429.0001014.00","atAGlanceFacts": [{ "factLabel": "Type", "factValue": "Single Family Residence" }]// ... 180+ facts: parking, utilities, rooms, construction, schools zones, fees},"ad_targets": { "price": "495000", "zestimate": "481600", "sqft": "2582", "cnty": "Greenville" /* ... */ },"attribution_info": {"agentName": "Sitara Hultman","agentPhoneNumber": "864-884-6623","brokerName": "Bluefield Realty Group","mlsId": "1600300","mlsName": "Greater Greenville AOR"// ... MLS disclaimer, listing offices, buyer agent},"listing_sub_type": { "is_FSBA": true, "is_FSBO": false, "is_newHome": false, "is_forAuction": false, "is_foreclosure": false /* ... */ },"foreclosure_types": { "isPreforeclosure": false, "isBankOwned": false, "wasForeclosed": false /* ... */ },"zestimate_history": [{ "date": "2016-08-31", "value": 198530 },{ "date": "2016-09-30", "value": 187339 }// ... 121 monthly points through today, plus Zillow's forecast],"price_history": [{"date": "2026-08-09","price": 495000,"pricePerSquareFoot": 192,"event": "Listed for sale","source": "Greater Greenville AOR"}// ... every listing, price cut, and sale back to the first record],"tax_history": [{ "time": 1755706277664, "taxPaid": 2974.07, "value": 452020, "valueIncreaseRate": 0.14997329 }// ... year by year],"nearby_schools": [{ "distance": 1.0, "name": "Duncan Chapel Elementary School", "rating": 3, "grades": "PK-5", "link": "https://www.greatschools.org/south-carolina/greenville/489-Duncan-Chapel-Elementary-School/" }// ...],"assigned_schools": [{"name": "Duncan Chapel Elementary School","districtName": "Greenville 01 School District","enrollment": 619,"level": "Primary","rating": 3,"percentageOfFullTimeTeachersWhoAreCertified": 100.0// ... student-teacher ratio, district ID, grades}// ...],"nearby_homes": [{ "address": { "streetAddress": "15 Zelma Dr", "city": "Greenville", "state": "SC", "zipcode": "29617" }, "price": 322900, "photo": "https://..." /* ... */ }// ... ~8 neighboring parcels with prices, links, and one full-size photo each],"similar_homes": [{ "address": { "streetAddress": "204 Chukar Way", "city": "Greenville", "state": "SC", "zipcode": "29617" }, "price": 500000 /* ... */ }// ... Zillow's comparable homes for valuation],"tour_eligibility": {"isPropertyTourEligible": true,"propertyTourOptions": { "tourAvailability": [{ "date": "2026-08-20", "times": ["15:00:00", "15:30:00" /* ... */] }] }}}
Tips and known limitations
- Clean output by design: nulls, empty objects, and redundant photo-size variants are stripped before saving — if a key is missing inside a nested block, Zillow simply has no data for it. Top-level fields are always present.
- Zestimate history: included by default; set
include_zestimate_historytofalseto skip the extra request per property if you only need listing facts. - Sold / off-market homes: Zillow hides some data from these pages for everyone —
living_area,description,view_count,favorite_countare usually empty, and only the cover photo is exposed. Everything else (price & tax history, Zestimates, schools, comps) still comes through. - Supported pages: property pages (
/homedetails/..., including rentals), apartment buildings (/apartments/...), and new-construction communities (/community/...). Check each record'spage_typeto tell them apart in mixed batches. - Rental listings (
FOR_RENT) are served fully from one request — fast — but Zillow does not provide tax history or Zestimate history for them. - Getting ZPIDs in bulk: pair this Actor with Zillow Property Data Scraper to harvest listing URLs from any Zillow search, then feed them here for full details.
- Monitoring: put the Actor on a schedule to track price changes, or connect integrations (Google Sheets, Slack, webhooks) to pipe data wherever you need it.
FAQ and support
Is it legal to scrape Zillow?
Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
Can I scrape a property by street address?
Search the address on Zillow, copy the property page URL (or the ZPID from it), and paste it into the input. Direct address input is on the roadmap — leave a comment in the Issues tab if you need it.
Why are some fields empty for sold homes or rentals?
Zillow withholds certain fields (square footage, description, engagement counts, full photo galleries) on sold and off-market pages, and doesn't publish tax or Zestimate history for rental listings. This is a Zillow-side restriction that applies to all scrapers — see Tips above for the exact list.
Something broke or you need an extra field?
Zillow changes its site regularly; this Actor is actively maintained and usually patched within days. Report problems in the Issues tab on the Actor page, or use the contact form — feature requests (new fields, new page types) are welcome.