Affordable Zillow Details Scraper (Pay-Per-Result) avatar

Affordable Zillow Details Scraper (Pay-Per-Result)

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Affordable Zillow Details Scraper (Pay-Per-Result)

Affordable Zillow Details Scraper (Pay-Per-Result)

Zillow property details scraper that extracts pricing, features, tax records, and neighborhood data from any listing using URLs, ZPIDs, or addresses, so real estate teams can build datasets without manual lookups.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Kawsar

Kawsar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Affordable Zillow Details Scraper

Affordable Zillow Details Scraper: Get Property Data by URL, ZPID, or Address

This Zillow scraper pulls property details in real time from Zillow listings. Hand it a property URL, a Zillow Property ID (ZPID), or a plain street address, and it gives back structured data you can feed into spreadsheets, databases, or analysis tools. You only pay for results that actually come back, so there's no charge for failed lookups.

Use cases

  • Real estate market research: pull listing prices, Zestimates, and days-on-market for dozens of properties in one run and compare them side by side
  • Investment property analysis: grab tax assessments, price history, and rental estimates to evaluate potential returns without manually visiting each listing
  • Lead generation for agents: look up property details in bulk to build prospect lists with accurate pricing and owner info
  • Portfolio monitoring: re-run the actor on a schedule to track price changes, status updates, and new Zestimates for properties you're watching
  • Academic and data journalism projects: collect structured Zillow data across ZIP codes or neighborhoods for housing affordability studies

What data does this actor extract?

The actor returns a JSON object for each property. Fields vary depending on what Zillow has on file, but a typical response includes:

{
"zpid": "19435371",
"propertyUrl": "https://www.zillow.com/homedetails/10791-Gooseberry-Ct-Truckee-CA-96161/19435371_zpid/",
"streetAddress": "10791 Gooseberry Ct",
"city": "Truckee",
"state": "CA",
"zipcode": "96161",
"price": 1250000,
"zestimate": 1230000,
"rentZestimate": 5200,
"bedrooms": 4,
"bathrooms": 3.5,
"livingArea": 2800,
"lotSize": 10454,
"yearBuilt": 2005,
"homeType": "SINGLE_FAMILY",
"homeStatus": "FOR_SALE",
"daysOnZillow": 14,
"taxAssessedValue": 980000,
"annualPropertyTax": 12500,
"latitude": 39.3277,
"longitude": -120.2137,
"photoUrls": ["https://..."],
"listingAgent": {"name": "Jane Smith", "phone": "530-555-0100"},
"priceHistory": [{"date": "2023-06-15", "price": 1200000, "event": "Listed"}],
"taxHistory": [{"year": 2023, "taxPaid": 12500, "assessedValue": 980000}],
"schools": [{"name": "Truckee Elementary", "rating": 7, "distance": 1.2}],
"fetchedAt": "2025-04-13T07:30:00Z",
"inputSource": "zpid"
}

Input

ParameterTypeDefaultDescription
property_urlarrayFull Zillow listing URLs. The actor parses each URL to extract the ZPID automatically.
zpidarrayNumeric Zillow Property IDs. Fastest lookup method since it skips URL parsing.
addressarrayUS street addresses in "Street, City, State ZIP" format. The actor searches Zillow for each one.
maxItemsinteger100Cap on total properties processed per run. Set to 0 for no limit.
timeoutSecsinteger300Max run time in seconds. Results collected before timeout are still saved.
requestTimeoutSecsinteger30Per-request timeout. Increase if individual lookups time out frequently.

Example input

{
"property_url": [
"https://www.zillow.com/homedetails/21921-Calhoun-Dr-California-City-CA-93505/81863076_zpid/",
"https://www.zillow.com/homedetails/20649-83rd-St-California-City-CA-93505/18961308_zpid/"
],
"zpid": ["19435371", "30588492"],
"address": ["11013 Rome Beauty Dr, California City", "17338 Kiowa River Ln, Houston, TX 77095"],
"maxItems": 50
}

Output

The actor stores each property as a separate item in the dataset. You can export results as JSON, CSV, XML, or Excel.

FieldTypeDescription
zpidstringZillow Property ID
propertyUrlstringDirect link to the Zillow listing
streetAddressstringStreet address of the property
citystringCity name
statestringTwo-letter state code
zipcodestring5-digit ZIP
pricenumberCurrent listing price or last sale price in USD
zestimatenumberZillow's automated valuation in USD
rentZestimatenumberEstimated monthly rent in USD
bedroomsintegerBedroom count
bathroomsnumberBathroom count (decimals for half baths)
livingAreanumberInterior square footage
lotSizenumberLot square footage
yearBuiltintegerYear the home was built
homeTypestringSINGLE_FAMILY, CONDO, TOWNHOUSE, etc.
homeStatusstringFOR_SALE, SOLD, PENDING, etc.
daysOnZillowintegerDays since the current listing went live
taxAssessedValuenumberLatest tax assessment in USD
annualPropertyTaxnumberAnnual property tax in USD
latitudenumberLatitude coordinate
longitudenumberLongitude coordinate
photoUrlsarrayURLs to listing photos
listingAgentobjectAgent name, phone, brokerage
priceHistoryarrayPast price changes and sale records
taxHistoryarrayTax assessment history
schoolsarrayNearby schools with ratings and distance
fetchedAtstringISO 8601 timestamp of when data was pulled
input_querystringThe original input you provided (URL, ZPID, or address) — always present even on errors
inputSourcestringWhich input type triggered this lookup
errorMessagestringError details if the lookup failed

How it works

  1. You provide Zillow property URLs, ZPIDs, or street addresses (any combination works).
  2. The actor merges all inputs into one processing queue and deduplicates where possible.
  3. Each property gets looked up individually through a real-time API call.
  4. Successful results are saved to the dataset immediately. Failed lookups get an error record so you know what went wrong.
  5. The run stops when all properties are processed or when the timeout/max-items limit is hit, whichever comes first.

Proxy rotation is handled internally. Each property lookup uses a fresh proxy URL, which reduces the chance of rate limiting or IP blocks.

FAQ

How much does each property lookup cost? You pay per successful result only. Failed lookups (404s, timeouts, invalid addresses) do not count toward your usage. Check the actor's pricing page on Apify for current rates.

Can I look up off-market or sold properties? Yes. The actor returns data for any property that has a Zillow listing page, including sold, pending, and off-market properties. The homeStatus field tells you the current state.

What happens if I submit a bad URL or address? The actor logs an error for that item and moves on to the next one. You will find an error record in the output dataset with the errorMessage field explaining what went wrong.

How fast is it? Each property lookup takes 2 to 5 seconds on average. A batch of 100 properties typically finishes in under 10 minutes.

Can I run this on a schedule? Absolutely. Set up a schedule on Apify to run the actor daily, weekly, or at whatever interval you need. Each run picks up the latest data from Zillow.

Integrations

Connect Affordable Zillow Details Scraper with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever results are available.

This Zillow property data scraper works well as part of a larger pipeline: feed addresses from a CRM, run the actor, and push results to Google Sheets or a database for your team to review.