Zillow Zestimate & Value History — Home Value Tracker avatar

Zillow Zestimate & Value History — Home Value Tracker

Pricing

from $3.00 / 1,000 value history extracteds

Go to Apify Store
Zillow Zestimate & Value History — Home Value Tracker

Zillow Zestimate & Value History — Home Value Tracker

Track a home's full value history — Zestimate history, rent Zestimate, listing price, % change, tax-assessment and tax-paid history — merged into one record per property. Look up by ZPID, address, or URL. Built for valuation, comps, and market-trend analysis.

Pricing

from $3.00 / 1,000 value history extracteds

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

Zillow Zestimate & Value History Scraper — Home Value Tracker 🚀

SIÁN Agency Store Zillow Property Scraper Redfin Property Scraper Bayut Property Scraper

📈 Track any home's FULL value history — Zestimate, rent Zestimate, list price, % change, and property tax — merged into ONE clean record per property

Built for appraisers, PropTech teams, investors, and analysts who need a home's price trajectory, not just today's number


📋 Overview

Stop stitching together six different lookups just to see how a home's value has moved. This actor pulls a property's complete value history from Zillow and merges every series into a single tidy record — keyed by ZPID, address, or URL — so you get the whole story of a home in one row.

Why thousands of professionals choose us:

  • Six series, one record: Zestimate history, rent Zestimate history, listing-price history, value percent-change, tax-assessment history (land + structure), and tax-paid history — all merged per property.
  • Any identifier works: paste a ZPID, a full street address, or a Zillow home-details URL — the actor auto-detects and resolves each one. No pre-lookups required.
  • 🎯 Computed KPIs out of the box: every record ships with latest Zestimate, 1-year value change %, latest rent Zestimate, latest tax paid, and latest list price — no post-processing needed.
  • 💰 Pay once per property: a single flat charge covers all requested series for a home — request one chart or all six, the price is the same.
  • 💎 Chronological or recent-first: choose oldest-to-newest for time-series charts, or newest-first for a quick "where is it now?" read.
  • NEW: land-vs-structure tax-assessment breakdown and full monthly Zestimate points going back years — ideal for appreciation and comp modelling.

✨ Features

  • 📈 Zestimate history: full monthly home-value time series with dated points.
  • 🏘 Rent Zestimate history: estimated monthly rent over time — perfect for yield and rent-vs-buy models.
  • 💵 Listing-price history: how the home has been priced across listings.
  • 📊 Value percent-change: Zillow's period-over-period value movement, ready to chart.
  • 🧾 Tax-assessment history: assessed values split into Land and Structure series.
  • 🏦 Tax-paid history: annual property-tax paid, dated.
  • 🔎 Auto-detect identifiers: ZPID, street address, or property URL — mix and match in one run.
  • 🧮 Derived KPIs: latest Zestimate, 1-year % change, latest rent Zestimate, latest tax paid, latest list price.
  • 📄 HTML run report: cohort roll-up with median latest Zestimate and median 1-year change.
  • 🗂 One row per property: clean, database-ready output — no fan-out, no duplicate rows.

🎬 Quick Start

Provide one or more property identifiers, pick your chart series (or take all six), and run. Each property comes back as a single record with every series merged in. Export to JSON, CSV, or Excel from the dataset.

curl -X POST https://api.apify.com/v2/acts/sian.agency~zillow-value-history-scraper/runs?token=YOUR_TOKEN \
-H 'Content-Type: application/json' \
-d '{"propertyIdentifiers": ["19837623"]}'

🚀 Getting Started (3 Simple Steps)

Step 1: Add your properties

Paste any mix of ZPIDs (19837623), full addresses (7192 McKean Ct, San Jose, CA 95120), or Zillow URLs into Property identifiers.

Step 2: Choose your series

Leave Value-history series empty to pull all six, or pick just the ones you need (e.g. Zestimate history + tax paid).

Step 3: Run

Start the actor. Each property returns as one merged record with computed KPIs.

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

  • A single, clean record per home covering its full value history
  • Ready-to-chart dated points for every series
  • Latest Zestimate + 1-year change already computed for you

📥 Input Configuration

FieldTypeRequiredDescription
propertyIdentifiersarrayYesZPIDs, full street addresses, or Zillow home-details URLs — auto-detected per entry. FREE tier: max 5 per run.
chartsarrayNoWhich value-history series to pull. Empty = all six: zestimate_history, rent_zestimate_history, listing_price, zestimate_percent_change, tax_assessment, tax_paid.
recentFirstbooleanNotrue (default) returns each series newest-first; false returns oldest-first (chronological).

Example:

{
"propertyIdentifiers": [
"19837623",
"7192 McKean Ct, San Jose, CA 95120",
"https://www.zillow.com/homedetails/7192-McKean-Ct-San-Jose-CA-95120/19837623_zpid/"
],
"charts": ["zestimate_history", "tax_paid"],
"recentFirst": true
}

Pull the full history for a batch of homes:

{
"propertyIdentifiers": ["19837623", "20366634", "1600 Amphitheatre Pkwy, Mountain View, CA 94043"]
}

📤 Output

Results are saved to the Apify dataset as one merged record per property with the following fields:

FieldTypeDescription
propertyIdentifierstringThe identifier you supplied (ZPID, address, or URL)
identifierTypestringHow it was resolved: zpid, address, or url
zpidstringThe property's ZPID when available
locationobjectStreet address, city, state, zip, and full address
chartsobjectEvery requested series, keyed by name — each with dated points
chartsWithDataarrayWhich series actually returned data for this property
valueKpisobjectComputed: latest Zestimate, 1-year change %, latest rent Zestimate, latest tax paid, latest list price
recentFirstbooleanThe ordering applied to each series
scrapedAtstringISO timestamp of extraction

Example:

{
"propertyIdentifier": "19837623",
"identifierType": "zpid",
"zpid": "19837623",
"location": {
"streetAddress": "7192 McKean Ct",
"city": "San Jose",
"state": "CA",
"zipcode": "95120",
"fullAddress": "7192 McKean Ct San Jose, CA 95120"
},
"chartsWithData": ["zestimate_history", "rent_zestimate_history", "zestimate_percent_change", "tax_assessment", "tax_paid"],
"valueKpis": {
"latestZestimate": 1743600,
"latestZestimateDate": "2026-06-30",
"zestimateOneYearChangePct": 2.6,
"latestRentZestimate": 4826,
"latestTaxPaid": 5546.58,
"latestListingPrice": null
},
"charts": {
"zestimate_history": {
"series": [{ "name": null, "points": [{ "date": "2026-06-30", "timestamp": 1782802800000, "value": 1743600 }] }],
"points": [{ "date": "2026-06-30", "timestamp": 1782802800000, "value": 1743600 }]
},
"tax_assessment": {
"series": [
{ "name": "Land", "points": [{ "date": "2025-07-02", "timestamp": 1751436000119, "value": 151999 }] },
{ "name": "Structure", "points": [{ "date": "2016-07-02", "timestamp": 1467438713511, "value": 157549 }] }
]
},
"tax_paid": {
"series": [{ "name": "This home", "points": [{ "date": "2025-07-02", "timestamp": 1751435514705, "value": 5546.58 }] }],
"points": [{ "date": "2025-07-02", "timestamp": 1751435514705, "value": 5546.58 }]
}
},
"scrapedAt": "2026-07-02T13:00:00.000Z"
}

Single-series charts (Zestimate, rent, list price, % change, tax paid) also expose a top-level points array for convenience; multi-series charts (tax assessment) preserve their named series (Land, Structure).


💼 Use Cases & Examples

1. Automated Valuation & Comps

Appraisers and AVM builders who need a home's price trajectory, not just a snapshot.

Input: A batch of ZPIDs or addresses Output: Full Zestimate + listing-price history per property, with latest value and 1-year change pre-computed Use: Feed comparable-sales models and desktop appraisals with clean, dated value curves.

2. Real-Estate Market-Trend Analysis

Analysts tracking appreciation and corrections across a market.

Input: All the homes in a watchlist Output: Value percent-change series and Zestimate history for every property Use: Chart neighbourhood momentum and flag properties that are heating up or cooling off.

3. Rent-vs-Buy & Yield Modelling

Investors sizing up cash flow and gross yield.

Input: Candidate rental properties by address or ZPID Output: Rent Zestimate history alongside sale Zestimate history Use: Model gross yield trends and rent-vs-buy break-even per property.

4. Property-Tax Intelligence

Underwriters, tax-appeal consultants, and expense forecasters.

Input: A portfolio of properties Output: Tax-assessment history split into Land and Structure, plus tax-paid history Use: Forecast tax expense, research assessment appeals, and stress-test underwriting.

5. CRM & Data Enrichment

PropTech and lead-gen teams enriching property records.

Input: Your existing property list Output: A merged value-history block — one row per property, keyed by ZPID or address Use: Attach a rich home-value profile to every record in your database.

6. Portfolio Monitoring

Asset managers watching a book of homes.

Input: Owned or managed properties Output: Latest Zestimate + 1-year change per property, refreshed on schedule Use: Run on a schedule to keep a live valuation dashboard for the whole portfolio.


🔗 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-value-history-scraper').call({
propertyIdentifiers: ['19837623', '7192 McKean Ct, San Jose, CA 95120']
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].valueKpis);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/zillow-value-history-scraper').call(
run_input={'propertyIdentifiers': ['19837623', '7192 McKean Ct, San Jose, CA 95120']}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['propertyIdentifier'], item['valueKpis'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~zillow-value-history-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"propertyIdentifiers": ["19837623"]}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule or webhook
  2. HTTP Request: Call actor API with your property list
  3. Process: Handle the merged JSON records
  4. Action: Save to your database, update a dashboard, or notify

📊 Performance & Pricing

FREE Tier (Try It Now)

  • Up to 5 properties per run — full feature access, every series, same quality
  • No credit card required
  • Perfect for testing and small watchlists
  • Unlimited properties per run
  • Faster processing, no delays
  • One flat charge per property — request one series or all six, the price is the same

💰 Simple, honest pricing — you pay once per home for its complete value history, never per series.

🔗 View current pricing


❓ Frequently Asked Questions

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

Q: What can I use as an identifier? A: A ZPID (e.g. 19837623), a full street address (street + city + state), or a Zillow home-details URL. The actor auto-detects each entry.

Q: Am I charged per chart series? A: No. You're charged once per property, regardless of how many of the six series you request.

Q: What if a series has no data for a home? A: The record still returns with that series present but empty (series: []) — you're never blocked by a missing chart, and other series still come through.

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

Q: Is this legal? A: Yes — we only extract publicly available property data. See our legal section.

Q: How current is the data? A: Each series reflects the latest publicly available value history at run time, with dated points so you always know the recency.


🐛 Troubleshooting

A property returned no data

  • Confirm the ZPID, address, or URL points to a real, publicly listed home.
  • For addresses, include street + city + state (e.g. 7192 McKean Ct, San Jose, CA 95120) for the most reliable match.

A specific series is empty

  • Not every home has every series (e.g. a home never listed may have no listing-price history). Other series still return normally.

Only 5 properties processed

  • FREE tier is capped at 5 properties per run. Upgrade to a paid Apify plan for unlimited properties.

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what has been chosen to be shared 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.

⚠️ Trademark Disclaimer

This is an independent tool and is not affiliated with, endorsed by, or sponsored by Zillow Group, Inc. "Zillow" and "Zestimate" are registered trademarks of Zillow, Inc. This actor accesses publicly available property records and is intended for lawful data-analysis purposes only.

🤝 Support

Telegram Support

Join our active support community


Built by SIÁN Agency | More Tools