Zillow Property Details Scraper avatar

Zillow Property Details Scraper

Pricing

$20.00/month + usage

Go to Apify Store
Zillow Property Details Scraper

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

ВAH

Maintained by Community

Actor stats

48

Bookmarked

104

Total users

2

Monthly active users

3 days ago

Last modified

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.
FeatureThis ActorTypical alternatives
Fields per property54 top-level fields, 180+ facts20–30 fields
Zestimate + Rent Zestimate✅ Both, plus estimated sales rangeOften missing or partial
Zestimate history✅ 10-year monthly series + forecast❌ Not available
Price & tax history✅ Full timelinesFrequently truncated
Schools✅ Nearby and assigned, with district size, student-teacher ratio, certified-teacher %Name + rating only
Comparable & nearby homes✅ Included with prices and ZestimatesRarely included
Tour availability slots✅ IncludedAlmost never included
Input by ZPIDURL only
Apartment buildings & new-construction communities✅ Same ActorUsually separate actors
MethodDirect 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?

FieldTypeDescription
page_typestringproperty, building (apartment complex), or community (new construction)
address, postal_code, county_name, county_fipsobject/stringFull address, county name and FIPS code
listing_pricenumberCurrent listing price (or final sale price for sold homes)
zestimate, rent_zestimatenumberZillow's estimated value and estimated monthly rent
zestimate_low_percent, zestimate_high_percentstringZestimate confidence range (±%)
zestimate_range_low, zestimate_range_highnumberThe page's "Estimated sales range" in dollars
zestimate_historyarray"Zestimate history" chart: ~10 years of monthly {date, value} points incl. forecast
last_sold_price, last_sold_datenumber/stringMost recent sale price and date
home_status, home_typestringFOR_SALE / SOLD / RECENTLY_SOLD…, SINGLE_FAMILY / CONDO…
bedrooms, bathrooms, living_area, year_builtnumberCore home facts
lot_size, lot_area_value, lot_area_unitsnumber/stringLot size in sqft plus display value & units
monthly_hoa_fee, property_tax_rate, tax_assessed_valuenumberOwnership cost data
parcel_idstringCounty parcel number for public-records lookups
whats_specialarrayThe page's "What's special" highlight tags
likely_to_sell_faster_than_nearby_percentnumber"Likely to sell faster than N% nearby" (for-sale homes)
price_historyarrayEvery listing, price cut, and sale event with dates and sources
tax_historyarrayYear-by-year tax paid and assessed value
nearby_schools, assigned_schoolsarrayGreatSchools ratings; assigned schools add district, enrollment, student-teacher ratio
nearby_homes, similar_homesarrayNeighboring parcels and Zillow's comparable homes with prices
photosarrayHighest-resolution photo URLs available
virtual_tour_url, street_view_image_urlstring3D home tour and Street View links when available
attribution_infoobjectListing agent & broker names, phone numbers, MLS IDs
listing_sub_type, foreclosure_typesobjectFSBO / auction / new-home / foreclosure / pre-foreclosure flags
reso_factsobject180+ standardized facts: appliances, heating, cooling, flooring, parking, utilities, rooms…
ad_targets, tour_eligibility, view_count, favorite_count, …mixedAd-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

  1. Open the Actor on Apify Store and click Try for free.
  2. Paste Zillow URLs — property pages (/homedetails/...), apartment buildings (/apartments/...), or communities (/community/...) — or enter plain ZPIDs (the number before _zpid in the URL).
  3. Click Start — the Actor fetches each property through Zillow's internal API.
  4. Watch results appear in the Output tab within seconds.
  5. 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:

ParameterTypeDescription
UrlsarrayZillow URLs: property pages (/homedetails/...), apartment buildings (/apartments/...), or communities (/community/...). ZPID-only URLs like https://www.zillow.com/homedetails/39949685_zpid/ also work.
zpidsarrayNumeric Zillow Property IDs, e.g. "39949685". Combined with Urls and de-duplicated automatically.
include_zestimate_historybooleanDefault 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_history to false to 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_count are 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's page_type to 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

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.