Use case
Auto-fill a Property Form from Just an Address
Turn a typed street address into a prefilled property record — beds, baths, sqft, year built, lot size, type, valuation and tax — with one API call to Redfin/Zillow.
You’re building the “add a property” screen for a property-management or real-estate app. The honest version of that form is long: address, then beds, baths, square footage, year built, lot size, property type — and every one of those is a field the user has to look up somewhere else and type in by hand. Most of them already know the answer is on Redfin or Zillow; they just don’t want to open a second tab, find the listing, and copy six numbers across. The product-y move is to ask for the one thing they definitely have — the address — and fill in the rest for them.
The data is public. Redfin and Zillow both publish the full physical record of a home on its listing
page. The problem is getting it programmatically: both sites block plain HTTP on browser fingerprint,
so you can’t just fetch the page from your backend and parse it — you get a 403, or a PerimeterX
challenge, or a 429. Standing up and maintaining a real-browser scraper with anti-bot handling is a
project in itself, and it’s not the project you’re trying to ship.
The shape of the solution
Treat the lookup as an external service — the same way you treat email or payments. Your form calls one actor with the address; the actor drives a real browser, reads the site’s own structured data, and hands back a normalized record. Your form maps that record onto its fields.
POST → run zillow-redfin-property-scraper
input { "address": "745 Garland Dr, Palo Alto, CA 94303", "source": "auto" }
result { "found": true, "source": "redfin",
"data": { "address": "745 Garland Dr", "city": "Palo Alto", "state": "CA",
"zip": "94303", "county": "Santa Clara County",
"beds": 5, "baths": 4.5, "sqft": 4110,
"yearBuilt": 2012, "lotSizeSqft": 12722,
"propertyType": "Single Family Residential",
"estimatedValue": 8608047, "price": 6750000,
"priceLabel": "Last Sold Price", "lastSoldDate": "2018-08-09",
"taxAssessedValue": 7529749, "taxYear": 2025,
"apn": "00361019", "fips": "06085",
"sourceUrl": "https://www.redfin.com/CA/Palo-Alto/745-Garland-Dr-94303/home/1210666" } }
Every key in data is a field on your form. address, city, and zip are the anchor — the actor
guarantees all three on a hit, and reports { "found": false } rather than a half-filled record if it
can’t. The rest — beds, baths, sqft, yearBuilt, lotSizeSqft, propertyType — prefill
directly. Anything the source doesn’t publish is simply absent from the record, which is exactly what
you want: leave that form field blank for the user to fill, instead of writing in a 0 that looks
like real data.
The record is bigger than the form usually needs — 40 fields, including the Redfin Estimate, the full
price history, county tax assessment, assigned schools and climate-risk scores. Map the six you’re
prefilling and keep the rest on the property record; apn and fips in particular are worth storing,
because they’re what lets you join this property to county assessor data later.
Why the source choice still matters
The default source, auto, tries Redfin and falls back to Zillow only when the residential proxy is
on — a direct Zillow attempt is near-certain to be PerimeterX-blocked, so queueing one without a proxy
would just make every miss slower for no extra hit rate. In practice that means auto and redfin
behave identically on a normal no-proxy run, and Redfin is the one that answers: its coverage is broad
public-records data across the US, it needs no proxy, and it’s the only path that returns the full
record. Pin to a single source when you want the call to be exactly one lookup and nothing else.
What it costs to run
You pay per successful lookup, and a miss is free. So the cost of the feature tracks the number of properties your users actually add — not the number of addresses they fumble, not the blocked or nonexistent ones. For an “add a property” flow, that’s the cleanest possible cost model: you’re billed exactly when the feature did its job and filled the form.
The result
The user types an address and tabs away; the form comes back filled. The lookup that used to be “open Redfin, find the listing, copy six numbers” is a single call your backend makes on submit — and you never built or babysat a scraper to get it.
Ready to wire it in? Start with the how-to guide for the exact input and output, or open the Zillow & Redfin Property Data Scraper actor directly.
Vetting the contractors who’ll work on those properties? Pair it with Multi-State Contractor & Trade License Lookup.
Last updated 2026-07-29