🏡 Zillow Detail Scraper avatar

🏡 Zillow Detail Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
🏡 Zillow Detail Scraper

🏡 Zillow Detail Scraper

🏡 Zillow Detail Scraper extracts property details from Zillow listings—beds, baths, price, location, and more. ⚡ Fast, accurate, and easy to use for real estate research, lead gen & market analysis. ✅

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a month ago

Last modified

Share

Turn any Zillow detail URL — or even a plain street address — into clean, structured JSON. This Actor pulls the full property record Zillow's own pages use: price and complete price & tax history, beds/baths, living area and lot size, assigned schools, photo galleries, listing agent & MLS facts, nearby homes & comparable sales, and dozens more fields. It works across homes, apartments, buildings and communities.

⭐ Why Choose Us?

  • 🎯 Every page typehomedetails, /apartments/, /b/ buildings and /community/ pages, plus free-form addresses.
  • 💸 Cost-efficient by design — starts with a direct connection and only escalates the network (datacenter → residential) when Zillow actually pushes back. No wasted proxy spend.
  • 🧱 Deep, faithful data — you get the same rich object that hydrates Zillow's React app, not a thin scrape of the visible HTML.
  • 💾 Live results — records are saved one-by-one as they're collected; a stopped run never loses what it already found.
  • 📊 Per-section output — every record is tagged with the input it came from, so you can group results in the Output tab.

✨ Key Features

FeatureDescription
🔗 Bulk URLsPaste as many detail URLs as you like
📍 Address resolutionType 123 Main St, City, ST — we find the listing
🏢 Building unitsOptionally emit each unit in a building as its own record
🗃️ Dataset inputFeed in a Zillow search-scraper dataset and enrich every row
🛡️ Smart proxy ladderdirect → datacenter → residential, sticky, auto-retry
🧾 MLS & agent factsListing agent, broker, MLS id, attribution
📈 HistoryFull price history & tax history
🏫 Schools & compsAssigned schools, nearby homes, comparable sales

📥 Input

FieldTypeDescription
startUrlsarrayZillow detail URLs (home / apartment / building / community)
addressesarrayFree-form street addresses, resolved automatically
propertyStatusstringFOR_SALE · RECENTLY_SOLD · FOR_RENT — status hint for your URLs
extractBuildingUnitsstringdisabled · all · for_sale · recently_sold · for_rent · off_market
searchResultsDatasetIdstringDataset of search results to enrich
proxyConfigurationobjectDatacenter rung of the proxy ladder
{
"startUrls": [
{ "url": "https://www.zillow.com/homedetails/17-Zelma-Dr-Greenville-SC-29617/11026031_zpid/" },
{ "url": "https://www.zillow.com/apartments/san-antonio-tx/westpond/5XkVjF/" }
],
"addresses": ["18 Zelma Dr, Greenville, SC 29617"],
"propertyStatus": "RECENTLY_SOLD",
"extractBuildingUnits": "disabled",
"proxyConfiguration": { "useApifyProxy": true }
}

📤 Output

Each record is the full Zillow entity plus a few helper fields:

  • sectionIndex / sourceUrl — which input this record came from (for grouping)
  • addressOrUrlFromInput — the exact URL or address you supplied
  • isValidtrue when full data was retrieved
  • scrapedAt — ISO timestamp
  • recordTypeproperty or unit
{
"sectionIndex": 1,
"zpid": 11026031,
"streetAddress": "17 Zelma Dr",
"city": "Greenville",
"state": "SC",
"zipcode": "29617",
"homeStatus": "RECENTLY_SOLD",
"homeType": "SINGLE_FAMILY",
"price": 235000,
"bedrooms": 3,
"bathrooms": 2,
"livingArea": 1450,
"resoFacts": { "...": "..." },
"priceHistory": [ "..." ],
"taxHistory": [ "..." ],
"schools": [ "..." ],
"addressOrUrlFromInput": "https://www.zillow.com/homedetails/.../11026031_zpid/",
"isValid": true,
"scrapedAt": "2026-06-07T12:00:00.000Z"
}

🚀 How to Use (Apify Console)

  1. Log in at console.apify.comActors.
  2. Open Zillow Detail Scraper.
  3. Add your URLs and/or addresses, set the status & proxy options.
  4. Click Start.
  5. Watch the live logs as records stream in.
  6. Open the Output tab — switch to By Section to group by input.
  7. Export to JSON / CSV / XLSX.

🤖 Use via API

curl -X POST "https://api.apify.com/v2/acts/YOUR~zillow-detail-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.zillow.com/homedetails/17-Zelma-Dr-Greenville-SC-29617/11026031_zpid/"}]}'

🎯 Best Use Cases

  • Real-estate market research & comps analysis
  • Lead enrichment for agents and investors
  • Building price-history / tax datasets
  • Powering valuation and listing-monitoring tools

💲 Pricing

This Actor uses pay-per-event billing — you're charged per result row written to the dataset, plus standard platform usage. The exact price is shown on the Actor's Store page.

❓ FAQ

Can I scrape by address instead of URL? Yes — use the addresses field; each one is resolved to its detail page.

What if Zillow blocks a request? The Actor automatically upgrades the network (datacenter → residential, retried up to 3×) and continues. Switches are logged.

Do apartments and buildings work? Yes. Turn on extractBuildingUnits to also get each individual unit as a record.

Will a stopped run lose data? No — records are saved live as they're scraped.

  • Only publicly available data is collected.
  • You are responsible for compliance with Zillow's Terms of Service and applicable laws (GDPR, CCPA, etc.).
  • Use reasonable rate limits and scrape responsibly.

🛟 Support & Feedback

Questions, bugs or feature requests? Reach out at dev.scraperengine@gmail.com 🤝