Zillow Property Enrichment — Comps · Owner · Tax · Climate avatar

Zillow Property Enrichment — Comps · Owner · Tax · Climate

Pricing

from $6.00 / 1,000 property enricheds

Go to Apify Store
Zillow Property Enrichment — Comps · Owner · Tax · Climate

Zillow Property Enrichment — Comps · Owner · Tax · Climate

Enrich any US property by ZPID, URL, or address into one merged record: comparable homes, similar listings, owner/listing contact, full tax history, climate & flood risk, walk scores, images, and apartment details. Pick only the datasets you need. Built for underwriting, comps, and lead enrichment.

Pricing

from $6.00 / 1,000 property enricheds

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Zillow Property Enrichment Scraper — Comps, Owner, Tax & Climate Data 🏠

SIÁN Agency Store Zillow Property Scraper Redfin Property Scraper Realtor Agent Scraper

🎉 One merged record per property — comps, owner, tax, climate risk, walk scores & apartment details in a single row

Built for appraisers, underwriters, insurers, and real-estate data teams who need everything about a property at once


📋 Overview

Give it a ZPID, a listing URL, or a plain street address — get back one clean, fully enriched record per property. This actor fans out across the enrichment datasets you select and merges them into a single row, so you never have to stitch together comps, tax history, and risk scores from separate runs.

Why real-estate teams choose us:

  • One row per property: comparable homes, similar listings, owner/agent contact, tax history, climate risk, walk scores, images, and apartment details — merged, not scattered across rows.
  • Pick only what you need: choose from 8 datasets. Fewer datasets = faster, cheaper runs — and you pay one flat price per property no matter how many you merge.
  • 🎯 Any identifier works: ZPID, listing URL, or full address — auto-detected. Mix them freely in one run.
  • 💰 Transparent pricing: a single per-property charge regardless of how many datasets you merge. No surprise per-row billing.
  • 💎 Insurance-grade risk data: flood, fire, heat, wind & air risk with FEMA zone and insurance criticality — perfect for underwriting.
  • Apartment building resolution: enter a rental-community address and the actor resolves the building automatically for full apartment details.

✨ Features

  • 🏘️ Comparable Homes: nearby comps with price, beds, baths, living area, status, and listing URLs.
  • 🔁 Similar Properties: algorithmically similar homes for context and valuation.
  • 👤 Owner & Listing Contact: owner/listed-by-agent contact details and rental listing contacts.
  • 📜 Tax History: full property tax history — up to 24 years of tax paid, assessed value, and year-over-year change.
  • 🌊 Climate & Flood Risk: flood, fire, heat, wind, and air risk scores + FEMA zone + insurance criticality.
  • 🚶 Walk / Transit / Bike Scores: neighborhood walkability, transit, and bike scores with descriptions.
  • 📷 Property Images: high-resolution photos and the hero image link.
  • 🏢 Apartment Building Details: building name, amenities, contact, and photos for apartments and rental communities.
  • 🧩 Merged Output: every selected dataset becomes a keyed sub-object in a single per-property record.
  • 🛟 Resilient: a dataset that returns no data (e.g. owner contact on an off-market home) is left empty — the row still ships with everything that succeeded.

🎬 Quick Start

Paste one or more property identifiers, pick your datasets, and run. Results land in the dataset as one enriched record per property.

curl -X POST "https://api.apify.com/v2/acts/sian.agency~zillow-property-enrichment-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"properties": ["44471319", "1875 Avondale Circle, Jacksonville, FL 32205"], "datasets": ["comparable_homes", "taxinfo", "climate"]}'

🚀 Getting Started (3 Simple Steps)

Step 1: Add your properties

Paste ZPIDs, listing URLs, or full street addresses into the Property Identifiers list (one per line in bulk edit).

Step 2: Choose your datasets

Select which enrichments to merge — or leave it on the default set (comparable homes, owner, tax, climate).

Step 3: Run

Start the actor and download one enriched record per property.

That's it! In seconds, you'll have:

  • A single merged record per property
  • Only the datasets you selected
  • A ready-to-use HTML report with cohort KPIs

📥 Input Configuration

FieldTypeRequiredDescription
propertiesarrayNoProperty identifiers — ZPID, listing URL, or full street address (auto-detected).
datasetsarrayNoWhich enrichments to merge. Defaults to comparable_homes, ownerinfo, taxinfo, climate.

Available datasets: comparable_homes, similar, ownerinfo, taxinfo, climate, walk_transit_bike, propimages, apartment_details

Example:

{
"properties": ["44471319", "1875 Avondale Circle, Jacksonville, FL 32205"],
"datasets": ["comparable_homes", "similar", "ownerinfo", "taxinfo", "climate", "walk_transit_bike", "propimages"]
}

Apartment / rental community:

{
"properties": ["Natiivo Austin, Austin, TX"],
"datasets": ["apartment_details", "climate"]
}

📤 Output

Each row is one property with your selected datasets merged as keyed sub-objects.

FieldTypeDescription
propertyIdentifierstringThe identifier you supplied.
identifierKindstringHow it was read: zpid, url, or address.
zpidstringResolved Zillow property ID, when available.
datasetsWithDataarrayDatasets that returned data for this property.
datasetsEmptyarrayDatasets that returned no data or were skipped.
datasetsobjectThe merged enrichment payload (one sub-object per dataset).
scrapedAtstringISO timestamp of enrichment.

Example:

{
"propertyIdentifier": "44471319",
"identifierKind": "zpid",
"zpid": "44471319",
"datasetsWithData": ["comparable_homes", "taxinfo", "climate", "walk_transit_bike"],
"datasetsEmpty": ["apartment_details"],
"datasets": {
"comparable_homes": { "_status": "ok", "count": 5, "homes": [ { "zpid": 44479239, "price": 520000, "bedrooms": 3, "bathrooms": 3, "livingArea": 1987, "city": "Jacksonville", "state": "FL" } ] },
"taxinfo": { "_status": "ok", "count": 24, "history": [ { "year": 2024, "taxPaid": 5602.03, "assessedValue": 347848 } ] },
"climate": { "_status": "ok", "flood": { "score": 1, "label": "MINIMAL" }, "wind": { "score": 9, "label": "EXTREME", "insuranceRequired": "CRITICAL" }, "femaZone": "X_UNSHADED" },
"walk_transit_bike": { "_status": "ok", "walk": { "score": 84, "description": "Very Walkable" }, "transit": { "score": 38 }, "bike": { "score": 62 } }
},
"scrapedAt": "2026-07-02T06:00:00.000Z"
}

💼 Use Cases & Examples

1. Comps & Underwriting

Appraisers and lenders valuing a subject property.

Input: A ZPID or address + comparable_homes, similar, taxinfo Output: Comps, similar homes, and tax history in one row Use: Back a valuation or BPO with pricing and tax context without three separate runs.

2. Lead & CRM Enrichment

Real-estate SaaS and agencies enriching a list of addresses.

Input: A list of addresses + ownerinfo, taxinfo, walk_transit_bike Output: Owner/listing contact, tax data, and neighborhood scores per address Use: Append rich property intelligence to CRM records at scale.

3. Climate & Insurance Risk Scoring

Insurers and risk teams screening a portfolio.

Input: ZPIDs or addresses + climate Output: Flood, fire, heat, wind, and air risk + FEMA zone + insurance criticality Use: Flag high-exposure properties before purchase or underwriting.

4. Property Analytics

Analysts building market datasets.

Input: Bulk addresses + comparable_homes, taxinfo, walk_transit_bike Output: Comps, tax trends, and walkability across a cohort Use: Analyze neighborhoods and price movement with a single dataset.

5. Apartment & Multifamily Research

Multifamily investors researching buildings.

Input: A rental-community address + apartment_details Output: Building name, amenities, contact, and photos (resolved automatically) Use: Pull building-level intelligence for apartments and communities.

6. Portfolio Due Diligence

Funds vetting a set of assets before acquisition.

Input: A list of ZPIDs + all datasets Output: A complete enriched dossier per property Use: One-shot due diligence across an entire 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-property-enrichment-scraper').call({
properties: ['44471319', '1875 Avondale Circle, Jacksonville, FL 32205'],
datasets: ['comparable_homes', 'taxinfo', 'climate']
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/zillow-property-enrichment-scraper').call(
run_input={
'properties': ['44471319', '1875 Avondale Circle, Jacksonville, FL 32205'],
'datasets': ['comparable_homes', 'taxinfo', 'climate']
}
)
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~zillow-property-enrichment-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"properties": ["44471319"], "datasets": ["comparable_homes", "taxinfo", "climate"]}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: Schedule or webhook (new address in your CRM)
  2. HTTP Request: Call the actor API with the address
  3. Process: Read the merged JSON record
  4. Action: Save to database, notify, or score for risk

📈 Performance & Pricing

FREE Tier (Try It Now)

  • Up to 5 properties per run — full feature access, same quality
  • No credit card required
  • Perfect for testing and small projects
  • Unlimited properties per run
  • Faster processing, no delays
  • One flat charge per enriched property — regardless of how many datasets you merge

💰 Pay for outcomes, not rows — a single per-property price keeps costs predictable even with all 8 datasets on.

🔗 View current pricing


❓ Frequently Asked Questions

Q: What can I use as a property identifier? A: A ZPID (e.g. 44471319), a listing URL, or a full street address. The actor auto-detects each one — mix them in a single run.

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

Q: Do I pay more for pulling more datasets? A: No. You pay one flat price per enriched property, whether you merge one dataset or all eight.

Q: What if a dataset has no data for a property? A: It's simply left empty (with a status flag). The row still ships with every dataset that succeeded — a sparse dataset is never a run failure.

Q: How does apartment enrichment work? A: Enter a rental-community address; the actor resolves the building automatically and returns full apartment details. Single-family homes don't have building details, so that dataset is skipped for them.

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


🐛 Troubleshooting

A dataset comes back empty

  • Some data (owner contact, apartment details) only exists for certain property types or listing states. This is expected — check datasetsWithData vs datasetsEmpty in the row.

Address didn't resolve

  • Include the street, city, and state (and zip if known). Vague addresses may not match a property.

No results at all

  • Verify the identifier is a real, publicly listed property and that at least one dataset is selected.

⚠️ Trademark Disclaimer

This is an independent tool and is not affiliated with, endorsed by, or sponsored by Zillow Group, Inc. "Zillow" is a registered trademark of Zillow, Inc. All product names, logos, and brands are property of their respective owners. This actor accesses only publicly available property information and is intended for legitimate research, analytics, and business use.


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