Zillow Property Detail API — Address · URL · ZPID Lookup avatar

Zillow Property Detail API — Address · URL · ZPID Lookup

Pricing

from $9.00 / 1,000 property dossier extracteds

Go to Apify Store
Zillow Property Detail API — Address · URL · ZPID Lookup

Zillow Property Detail API — Address · URL · ZPID Lookup

Paste Zillow URLs, ZPIDs, or street addresses and get a full property dossier: price, Zestimate, listing agent and broker phone numbers, 10-year tax history, price history, schools, and all photos. Optional comps, climate risk, and Zestimate history add-ons. Bulk-ready Zillow API replacement.

Pricing

from $9.00 / 1,000 property dossier extracteds

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Zillow Property Detail Scraper — Full Dossiers by URL, ZPID or Address 🚀

SIÁN Agency Store Property Skip Tracing Zillow Agent Scraper Redfin Property Scraper

🎉 Paste property URLs, ZPIDs, or street addresses — get a 40+ field dossier per home, including listing agent & broker phone numbers

The Zillow API replacement built for lead-gen teams, investors, and PropTech data pipelines


📋 Overview

Stop stitching together three scrapers to profile one house — this actor turns any Zillow home URL, ZPID, or plain street address into a single, complete property dossier: price, Zestimate, rent Zestimate, listing agent and broker phone numbers, 10-year tax history, full price history, assigned schools, and every listing photo — in one row.

Why professionals choose this scraper:

  • Three input modes, auto-routed: Zillow URLs, numeric ZPIDs, or raw street addresses — mix them freely, duplicates are removed automatically
  • 📞 Agent & broker contacts included: listing agent name + phone, broker name + phone, co-agent, MLS ID, and license data on actively listed homes
  • 🧾 History bundled, not sold as extras: 10-year tax history, full price-event history, schools, and all photo URLs ship inside the base row — data other tools charge add-ons for
  • 💰 Never billed for dead lookups: homes that can't be found are skipped free of charge
  • 💎 Real add-ons where they count: comparable homes, flood/fire/heat/wind/air climate risk with FEMA zones, and the full 100+ point Zestimate value history
  • Bulk-ready: feed hundreds of addresses from a CSV and enrich your whole lead list in one run

✨ Features

  • 🏡 Full property dossier — 40+ curated fields per home from a 180+ field source payload
  • 📞 Listing agent & broker phones — direct contact data for actively listed properties
  • 🧾 10-year tax history — tax paid, assessed value, and year-over-year change rates
  • 📈 Complete price history — every listing, price-cut, and sale event with $/sqft
  • 🏫 Assigned schools — ratings, levels, grades, and distance
  • 🖼 All listing photos — highest-resolution URL for every photo, plus the hero image
  • 🏘 Comps add-on — comparable homes with price, size, and status
  • 🌊 Climate risk add-on — flood, fire, heat, wind, and air scores with FEMA zone + insurance guidance
  • 📉 Zestimate history add-on — chart-ready {date, value} series with 100+ monthly points
  • 🔁 Cross-mode deduplication — the same home entered as URL and address counts once

🎬 Quick Start

Provide any mix of Zillow URLs, ZPIDs, or addresses. The actor looks each one up, builds one dossier row per home, and saves everything to the dataset.

curl -X POST "https://api.apify.com/v2/acts/sian.agency~zillow-property-detail-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"addresses": ["10411 Turnbull Loop, Austin, TX 78717"]}'

🚀 Getting Started (3 Simple Steps)

Step 1: Paste your properties

Add Zillow home URLs, ZPIDs, or street addresses — one per line, in any combination.

Step 2: Toggle add-ons (optional)

Switch on comparable homes, climate risk, or Zestimate history for extra intelligence per home.

Step 3: Run and export

Click Start. Export your dossiers as JSON, CSV, or Excel straight from the dataset.

That's it! In under a minute, you'll have:

  • One complete dossier row per property
  • Agent and broker phone numbers for active listings
  • Tax history, price history, schools, and photos ready for your CRM or warehouse

📥 Input Configuration

FieldTypeRequiredDescription
propertyUrlsarrayNoZillow home-details URLs (zillow.com/homedetails/...)
zpidsarrayNoNumeric Zillow property IDs (digits before _zpid)
addressesarrayNoFull US street addresses (street, city, state ZIP)
includeComparableHomesbooleanNoAdd comparable homes per property (paid plans)
includeClimateRiskbooleanNoAdd flood/fire/heat/wind/air risk per property (paid plans)
includeZestimateHistorybooleanNoAdd the Zestimate value time series per property (paid plans)

At least one of propertyUrls, zpids, or addresses should be provided — a run without input performs a single demo lookup so you can inspect the output shape.

Example:

{
"propertyUrls": ["https://www.zillow.com/homedetails/243335909_zpid/"],
"zpids": ["29502980"],
"addresses": ["10411 Turnbull Loop, Austin, TX 78717"],
"includeComparableHomes": true,
"includeClimateRisk": true,
"includeZestimateHistory": true
}

📤 Output

One row per property with 40+ fields, including:

FieldTypeDescription
zpidnumberZillow property ID
streetAddress / city / state / zipcodestringResolved address
price / zestimate / rentZestimate / lastSoldPricenumberValuations (USD)
homeStatus / homeTypestringFOR_SALE, RECENTLY_SOLD, OTHER · SINGLE_FAMILY, CONDO, …
bedrooms / bathrooms / livingArea / yearBuiltnumberHome facts
agentName / agentPhoneNumberstringListing agent contact (active listings)
brokerName / brokerPhoneNumber / mlsIdstringBroker + MLS attribution
monthlyHoaFee / propertyTaxRate / annualHomeownersInsurancenumberCarrying costs
priceHistoryarrayListing/price-cut/sale events with $/sqft
taxHistoryarrayUp to 10 years of tax paid + assessed values
schoolsarrayAssigned schools with ratings and distance
photoUrlsarrayEvery listing photo (highest resolution)
comparableHomesarrayComps add-on (when toggled)
climateRiskobjectClimate add-on: 5 hazard blocks + FEMA zone (when toggled)
zestimateHistoryarrayValue-history add-on: {date, value} points (when toggled)

Example (trimmed):

{
"zpid": 243335909,
"zillowUrl": "https://www.zillow.com/homedetails/243335909_zpid/",
"streetAddress": "10411 Turnbull Loop",
"city": "Austin",
"state": "TX",
"zipcode": "78717",
"price": 460000,
"homeStatus": "FOR_SALE",
"bedrooms": 4,
"bathrooms": 3,
"livingArea": 2163,
"agentName": "Clay Byrne",
"agentPhoneNumber": "(512) 942-7880",
"brokerName": "Keller Williams Realty",
"mlsId": "5013986",
"taxHistory": [{ "year": 2025, "taxPaid": 9318.03, "assessedValue": 465600 }],
"priceHistory": [{ "date": "2026-06-19", "event": "Listed for sale", "price": 460000 }],
"photoUrls": ["https://photos.zillowstatic.com/fp/....jpg"],
"enrichmentsApplied": ["comparableHomes", "climateRisk", "zestimateHistory"]
}

💼 Use Cases & Examples

1. Lead-list enrichment for wholesalers & ISAs

Turn a plain address list into a call sheet with listing agent and broker phone numbers.

Input: CSV column of street addresses Output: Dossiers with agent/broker contacts, valuations, and days on market Use: Prioritize outreach by equity, list age, and price cuts

2. Investor underwriting in one pass

Underwrite acquisitions with tax burden, price trajectory, and comps in a single row.

Input: ZPIDs from your deal pipeline Output: 10-year tax history, price events, HOA + insurance costs, comps add-on Use: Feed your underwriting model without visiting a single listing page

3. Zillow API replacement for PropTech ETL

Zillow retired its public API — this is the drop-in data feed.

Input: URLs or ZPIDs from your product database Output: Clean, stable JSON dossiers ready for BigQuery, Snowflake, or pandas Use: Nightly refresh of property facts and valuations at pay-per-result pricing

4. Climate & insurance risk screening

Score portfolios for flood, fire, heat, wind, and air risk before you lend or buy.

Input: Addresses + includeClimateRisk: true Output: Risk scores, growth trends, FEMA zones, insurance recommendations per home Use: Flag high-risk collateral and estimate insurance exposure

5. Home-value tracking & CMAs

Chart any home's value trajectory with 100+ monthly Zestimate points.

Input: URLs + includeZestimateHistory: true Output: Chart-ready {date, value} series per property Use: CMAs, tax-appeal evidence, market-timing dashboards

6. CRM hygiene for brokerages

Keep listing status, price, and attribution fresh across thousands of records.

Input: Bulk ZPIDs synced from your CRM Output: Current status, price, agent-of-record per property Use: Automated weekly refresh with per-result billing


🔗 Integration Examples

JavaScript/Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/zillow-property-detail-scraper').call({
addresses: ['10411 Turnbull Loop, Austin, TX 78717'],
includeComparableHomes: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].agentPhoneNumber);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/zillow-property-detail-scraper').call(
run_input={'zpids': ['243335909'], 'includeClimateRisk': True}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['streetAddress'], item['price'], item['agentPhoneNumber'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~zillow-property-detail-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"propertyUrls": ["https://www.zillow.com/homedetails/243335909_zpid/"]}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: New row in your CRM or a nightly schedule
  2. HTTP Request: Call the actor API with the address batch
  3. Process: Map dossier fields to your pipeline
  4. Action: Update records, alert on price cuts, or route hot leads

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 5 properties per run — full dossier quality, same fields
  • No credit card required
  • Perfect for testing the output on your own listings
  • Unlimited properties per run
  • Enrichment add-ons unlocked: comps, climate risk, Zestimate history
  • Pay-per-result: dossiers are only charged when a home is found; add-ons only when they return data

💰 One dossier here replaces three separate tools — details, photos, and history are bundled in a single per-property price.

🔗 View current pricing


❓ Frequently Asked Questions

Q: How many properties can I process? A: FREE tier: 5 per run. PAID tier: unlimited — thousands per run is normal.

Q: Do I always get agent phone numbers? A: Agent and broker contact fields are populated for actively listed homes (FOR_SALE). Off-market homes still return the full dossier — valuations, tax history, photos — but attribution may be empty.

Q: What happens if an address doesn't match a home? A: The lookup is skipped and you are not charged. Failed lookups are listed in a retry-helper row and the HTML report.

Q: Can I mix URLs, ZPIDs, and addresses in one run? A: Yes — all three inputs can be used together. The actor dedupes them by resolved property, so the same home never bills twice.

Q: What output formats are available? A: JSON, CSV, Excel, XML — export directly from the Apify dataset or pull via API.

Q: Does it work for off-market homes? A: Yes. Off-market dossiers include valuations, tax history, photos, schools, and facts — everything except active-listing attribution.

Q: Is this legal? A: The actor only extracts publicly accessible listing data. See the legal section below.


🐛 Troubleshooting

"Property not found" for an address

  • Use the full form: street, city, state ZIP (e.g. 10411 Turnbull Loop, Austin, TX 78717)
  • Check the address exists on the consumer site; new constructions can lag

Invalid URL error

  • Only home-details pages are supported: zillow.com/homedetails/...
  • Search-result URLs (zillow.com/austin-tx/) belong in a search scraper, not a detail scraper

Agent fields are empty

  • Contact attribution is only published for actively listed homes — off-market rows legitimately have empty agent fields

Add-on fields are null

  • Enrichment toggles require a paying Apify plan; on FREE runs they are skipped with a log notice
  • Add-ons are only charged when they return data — null means no data was available for that home

⚠️ Trademark Disclaimer

Zillow is a registered trademark of Zillow Group, Inc. This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Zillow Group. It extracts only publicly available information for legitimate research, analytics, and lead-generation purposes. Users are responsible for complying with applicable laws and the terms of service of the websites they access.


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.

You can also read Apify's blog post on the legality of web scraping.


🤝 Support

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools