Zillow & Redfin Property Data Scraper avatar

Zillow & Redfin Property Data Scraper

Pricing

$0.004 / property lookup

Go to Apify Store
Zillow & Redfin Property Data Scraper

Zillow & Redfin Property Data Scraper

Look up any US home by street address and get consolidated property facts — beds, baths, sqft, year built, lot size, and property type — from Redfin and Zillow. Pay per match; misses are free.

Pricing

$0.004 / property lookup

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Pain points

  • You have a street address but need the property's facts — beds, baths, sqft, year built, lot size — as structured data, not a web page you have to read by hand.
  • Redfin and Zillow block plain HTTP requests (TLS/browser fingerprinting + WAFs), so a simple fetch or a datacenter proxy just returns 403/429.
  • Every listing site names and nests its fields differently, so consolidating one address into a single clean record means bespoke parsing per site.

What we solve

  • Give it one US street address and a source (Redfin or Zillow); it returns that property's consolidated facts as a single clean JSON record.
  • Drives a real browser so it gets past the fingerprint/WAF blocks that stop plain HTTP scrapers, then reads each site's structured data directly.
  • Normalizes every site into one schema (street line, city, state, ZIP, beds, baths, sqft, year built, lot size in sqft, property type, listing URL, and listing photo URLs) — unknown fields are omitted, never guessed.
  • Charges only when it finds a real match (address + city + ZIP); a not-found or blocked lookup is free.

Summary

Turn a street address into structured property facts. Give this actor a single US address and pick a source (Redfin or Zillow), and it returns that home's consolidated details — beds, baths, square footage, year built, lot size (in sqft), and property type — as one clean JSON record, plus the listing URL and the listing's photo gallery as full-size image URLs (empty when the home has no gallery). It drives a real browser so it gets past the browser-fingerprint and WAF blocks that defeat plain HTTP scrapers, then reads each site's own structured data and normalizes it to a single schema. Built for property-management onboarding, real-estate CRM enrichment, valuation/comp workflows, and any app that needs to auto-fill a property form (and its photos) from just an address. One address in, structured facts out — pay only for matches.

Who it's for

  • Property-management and PropTech teams auto-filling a property form from just an address
  • Real-estate CRMs and marketplaces enriching listings/leads with structured home facts
  • Analysts and investors building valuation, comp, and underwriting datasets
  • Developers who need a simple address-to-property-facts API without maintaining browser scrapers

How to use

Set the input, run the actor, and collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API). Example input:

{
"address": "745 Garland Dr, Palo Alto, CA 94303",
"source": "redfin",
"useProxy": false
}

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
foundtrue when a property with address + city + ZIP was resolved; false when this source has no match or was blocked
sourceWhich site produced the record ('redfin' or 'zillow') — echoes the requested source
data.addressStreet line only, e.g. '745 Garland Dr'
data.cityCity
data.state2-letter state code, e.g. 'CA'
data.zipZIP code
data.bedsNumber of bedrooms
data.bathsNumber of bathrooms (may be fractional, e.g. 2.5)
data.sqftLiving area in square feet
data.yearBuiltYear the home was built
data.lotSizeSqftLot size in square feet (acres are converted to sqft)
data.propertyTypeProperty type, e.g. 'Single Family Residential', 'Condo'
data.sourceUrlLink to the source listing/record page
data.imagesListing photo gallery as an ordered array of { url, width, height } (url is the full-size CDN image; [0] is the hero). Empty array when the listing has no gallery — e.g. many off-market/sold homes

Sample:

{
"found": true,
"source": "redfin",
"data": {
"address": "745 Garland Dr",
"city": "Palo Alto",
"state": "CA",
"zip": "94303",
"beds": 3,
"baths": 4,
"sqft": 3301,
"yearBuilt": 2012,
"lotSizeSqft": 12722,
"propertyType": "Single Family Residential",
"sourceUrl": "https://www.redfin.com/CA/Palo-Alto/745-Garland-Dr-94303/home/1210666",
"images": [
{
"url": "https://ssl.cdn-redfin.com/photo/163/bigphoto/105/1240105_0.jpg",
"width": 1024,
"height": 768
},
{
"url": "https://ssl.cdn-redfin.com/photo/163/bigphoto/105/1240105_1_0.jpg",
"width": 1024,
"height": 768
}
]
}
}

Inputs

FieldRequiredTypeDefaultDescription
addressnostring"745 Garland Dr, Palo Alto, CA 94303"Full US property address, e.g. '745 Garland Dr, Palo Alto, CA 94303'. In Standby mode this is sent in the POST /scrape request body instead.
sourcenostring"redfin"Which site to look the property up on. Redfin works without a proxy and is the reliable default; Zillow sits behind PerimeterX, so enable the residential proxy for it at volume.
useProxynobooleanfalseRoute the browser through Apify residential proxy. Default off (direct). Turn on only for IP rate-limiting at volume or to help pass Zillow's PerimeterX.

Pricing (Pay Per Event)

You pay per result (property-lookup) — no charge for empty runs. Example: 100 matched property lookup at $0.004/result$0.40.

Illustrative — 100 matched lookups at $0.004 each. Not-found/blocked lookups are free. Apify platform usage (compute) is billed separately per your plan.

Use cases

  • Auto-add property — type an address, prefill a property form with beds, baths, sqft, year built, lot size, and type.
  • CRM / listing enrichment — turn an address into a structured property record for a database or marketplace.
  • Valuation & comps — assemble per-address home facts for pricing, underwriting, or comparison workflows.
  • Address-to-facts API — call it per address from your app instead of building and maintaining Redfin/Zillow scrapers.

Why this actor

  • Reads Redfin's and Zillow's own structured data, then normalizes to one clean schema — not a brittle screen-scrape of visible text.
  • Drives a real browser, so it gets past the browser-fingerprint and WAF blocks that return 403/429 to plain HTTP scrapers and datacenter proxies.
  • Honest output: only address+city+ZIP-complete matches count as found; unknown fields are omitted (never null/0/guessed); you pay only for matches.
  • One address in, one structured record out — single-purpose and simple to call from any app or workflow.

Limitations & updates

Single-source per call: it scrapes exactly the source you request (Redfin or Zillow) — it does not fall back across sites, so call it once per source if you want a fallback. Redfin is the reliable default and works without a proxy; Zillow sits behind PerimeterX and needs the residential proxy option (and can still be rate-limited at high volume). It returns the fields listed (physical property facts plus the listing's photo URLs); price history, tax, and agent data are out of scope. Photos come from the listing's own gallery, so a home with no gallery (e.g. many off-market/sold listings) returns an empty images array. A result missing address, city, or ZIP is reported as not-found rather than a partial record. It resolves one property per call from a full street address; it is not a bulk area/ZIP crawler.

FAQ

What do I give it and what do I get back?

You give it a US street address and a source ('redfin' or 'zillow'). It returns one JSON record with the property's street line, city, state, ZIP, beds, baths, sqft, year built, lot size (sqft), property type, and the listing URL — or { "found": false } if that source has no match.

Which sources are supported?

Redfin (the reliable default) and Zillow. Redfin works without a proxy. Zillow sits behind PerimeterX, so at volume enable the residential proxy option to reach it consistently.

How am I charged?

Pay-per-event: one charge per successful lookup (a match with address, city, and ZIP). Not-found or blocked lookups are free, so you never pay for a miss.

Why does it need a real browser?

Redfin and Zillow block plain HTTP requests on TLS/browser fingerprint (not just IP), so curl, a bare fetch, and datacenter proxies all get 403/429. Driving a real browser gets past that and reads each site's own structured data.

Do I need a proxy?

No for Redfin (it works direct at low volume). For Zillow, or for higher volume, turn on the residential proxy option; there's a useProxy input for exactly this.

Does it return listing photos?

Yes — the data.images array gives the listing's photo gallery as full-size image URLs in order (the first is the hero), each with width and height. The URLs are public CDN links you can load directly in an tag. A home with no gallery (many off-market/sold listings) returns an empty array; photos are supported on Redfin today.

Is this personal data?

No — it returns public property facts (physical attributes of a home as the listing sites publish them). It adds no owner/PII enrichment.

How current is the data?

It reflects each site's live data at run time, so the facts are as current as Redfin's/Zillow's own published records.

Which actor to choose

Owning or managing a property usually means hiring the people who work on it — verify and find them:

  • Multi-State Contractor & Trade License Lookup — You're hiring a contractor to work on the property — verify their license across states before you sign.
  • California Contractor Directory & Leads Scraper (CSLB) — You need licensed contractors by trade and county for work on a California property.

Guides & use cases

Written up on scrapebench.dev — the bench that runs and verifies this actor against the live source every night:

More actors, coverage and nightly verification results: scrapebench.dev