Zillow Property Detail Scraper avatar

Zillow Property Detail Scraper

Pricing

from $1.25 / 1,000 results

Go to Apify Store
Zillow Property Detail Scraper

Zillow Property Detail Scraper

Collect full Zillow property detail by URL or ZPID - facts, status, coordinates.

Pricing

from $1.25 / 1,000 results

Rating

0.0

(0)

Developer

String

String

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Zillow Property Scraper — full detail by ZPID or URL

This Actor scrapes Zillow property detail pages. Give it a ZPID or a Zillow /homedetails/ URL and it returns that home's own record: numeric price, beds, baths, living area, lot size in square feet, year built, home type, listing status, exact coordinates and the full listing description.

No Zillow account, login or cookies are used — this reads what a logged-out visitor sees. One Zillow request per property, up to 200 properties per run.

What it returns

FieldTypeNotes
zpidstringZillow's own property ID — stable across runs, use it to de-duplicate
addressstringOne line: street, city, state and ZIP
city, state, zipcodestringSplit out as well
pricenumber675000, not "$675,000"
beds, bathsnumber
areaSqftnumberLiving area
lotSizeSqftnumberAlways square feet — an acre-quoted lot is converted
yearBuiltnumber
homeTypestringe.g. SINGLE_FAMILY, CONDO, TOWNHOUSE
homeStatusstringe.g. FOR_SALE, FOR_RENT, SOLD, PENDING
latitude, longitudenumberExact coordinates, ready to map
descriptionstringThe listing's own description text
sourceUrl, collectedAtstringProvenance for every row

Input

{
"properties": ["29502073", "https://www.zillow.com/homedetails/6310-Needham-Ln-Austin-TX-78739/29502073_zpid/"],
"concurrency": 5
}
FieldDescription
propertiesBare ZPIDs or Zillow /homedetails/ URLs. Required, 1–200.
maxItemsCap on dataset items. Default 1000. Free plans stop at 250 requests and 250 results — see below.
concurrencyProperties fetched in parallel. Default 5, maximum 10.

A ZPID and the full detail URL for the same home resolve to one Zillow request, so a mixed list is never billed twice.

Use cases

  • Comparable-sales and valuation work that needs lot size, year built and living area together
  • Enriching a portfolio or CRM of addresses with current price, status and property facts
  • Training and back-testing an automated valuation model on real property records
  • Following the listings a search Actor found, to get facts the search page does not carry
  • Watching status changes — FOR_SALE to PENDING to SOLD — by re-running on a schedule

Reliability

The Zillow Property Scraper reads each property from Zillow's own page data rather than from rendered text, so a value is either present and exact or null — prices and areas never arrive as display strings to clean up.

A detail page that loads but carries no property facts — a building shell, or an interstitial served under the detail route — is recorded as a failed target rather than emitted as an all-null row. Failures are listed in the run's SUMMARY under failures, and a run where every property failed exits with an error.

There are no retries by design: the String Unblocker owns proxy rotation and anti-bot solver selection, so a retry loop here would only re-roll the same block.

Frequently asked questions

Do I need a Zillow account, API key or cookies? No. The Zillow Property Scraper reads the public detail page a logged-out visitor sees, and never signs in.

What input does the Zillow Property Scraper accept? A bare ZPID such as 29502073, or a Zillow /homedetails/ URL whose final segment is the _zpid part. URLs that address something other than a property record — a building page under /apartments/ — are reported under failures.

Does it return the listing description? Yes. The description field carries the listing's own description text, with HTML entities decoded.

Is lot size in acres or square feet? Always square feet, in lotSizeSqft. A listing quoted in acres is converted, so a rural and a suburban lot compare directly.

How many properties can one run collect? Up to 200, the maximum length of the properties input. Each property costs one Zillow request.

Does it include photos, price history, tax history or the Zestimate? No. Those are out of scope; this Actor returns the property fact set listed in the table above.

Limitations

One detail page per property, and only zillow.com — US properties only. Photos, price and tax history, Zestimate detail, schools, and agent or broker contact details are not collected. Search and discovery are out of scope: you supply the ZPIDs, and the Zillow Property Listings Scraper is the Actor that finds them by city.

Free plan limit

Runs started from an Apify free plan stop at 250 requests and 250 results, and the run reports that it reached the limit. Any paid plan runs the full input and maxItems you set.

The limit exists because this Actor fetches through our own infrastructure, which Apify does not cover for free-plan runs. It binds on requests as well as results so that a large input list cannot spend those fetches for rows the run will not return.