The fastest way to start scraping Redfin at scale. Our Redfin API returns structured JSON for property search, full home detail, agents, and autocomplete across the US and Canada — with Redfin Estimates, price and tax history, schools, and anti-bot bypass built in. No Redfin API key.
No credit card required · PAYG credits never expire
# Search for-sale homes in Austin, TX
import scrapebadger
client = scrapebadger.ScrapeBadger("sb_live_...")
results = client.redfin.search(
location="Austin, TX"
){
"property_id": 12345678,
"street_line": "1200 Barton Hills Dr",
"city": "Austin", "state": "TX",
"price": 675000,
"beds": 3, "baths": 2, "sqft": 1620,
"days_on_market": 6
}Structured JSON responses with normalized data models. No HTML parsing. No proxy management. No Redfin API key.
/v1/redfin/search/v1/redfin/property/{property_id}/v1/redfin/property?url=/v1/redfin/agent/v1/redfin/autocomplete/v1/redfin/marketsAll fields are normalized from Redfin’s internal GIS search API and embedded SSR page data. Every datetime ships as both a Unix timestamp and an ISO-8601 string. Nested blocks — price_history, tax_history, schools, amenities — come pre-parsed.
property_idintegerRedfin property identifierpriceintegerList price (or last sold price)redfin_estimateintegerRedfin home value estimaterent_estimateintegerEstimated monthly rentbedsfloatNumber of bedroomsbathsfloatNumber of bathroomssqftintegerInterior square footageyear_builtintegerYear the home was builtkey_factsarrayHeadline facts — parking, HOA, style, construction…price_historyarrayListed / price-change / sold eventstax_historyarrayYearly tax paid and assessed valueschoolsarrayAssigned schools with ratings & distanceamenitiesarrayGrouped amenities from the listing detail pagelisting_agent_namestringListing agent and MLS attributionphotosarrayListing photos with captionsagent_idstringRedfin agent slugnamestringAgent display namebrokeragestringBrokerage nameratingfloatAverage review ratingreview_countintegerNumber of client reviewsdeals_last_yearintegerRecently closed dealstotal_dealsintegerTotal deals closedyears_experienceintegerYears in the businessservice_areasarrayAreas the agent serveslistingsarrayThe agent’s active listingsBoth countries are served from redfin.com behind a US residential proxy. There is no separate market or currency parameter to manage.
No proxy setup. No session management. No anti-bot configuration.
Call any Redfin endpoint with your API key and parameters — a location, a property_id or home URL, or an agent slug or URL. REST or SDK.
ScrapeBadger routes the request through a residential proxy with Chrome impersonation, detects blocks, and falls back to a real browser when needed.
Receive normalized JSON with Redfin Estimates, price and tax history, schools, amenities, and photo links — ready to store, analyse, or pipe into your application.
Scraping Redfin gives you real market signals — Redfin Estimates, price cuts, days on market, comps, and agent activity across the US and Canada.
Pull the Redfin Estimate, rent estimate, tax-assessed value, and full price history to build or benchmark automated valuation models against real market data.
Track list prices, price cuts, and days-on-market across ZIPs and metros to spot demand shifts and pricing gaps in near real time.
Filter active for-sale inventory by beds, baths, sqft, lot size, and year built to assemble comps and rank cash-flow opportunities.
Analyze agents by ratings, recent deal volume, and active listings to map who dominates a market and how their book of business trends.
Collect structured listing data — amenities, schools, photos, and descriptions — for training pricing, classification, or property-recommendation models.
Feed new listings and price drops into CRM and lead-gen tools using map-bound tiling to exhaust dense markets past Redfin’s per-query result cap.
You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.
| Endpoint | Credits / request | PAYG | Subscription |
|---|---|---|---|
Search Properties /search | 5 credits | — | — |
Property Detail /property/{property_id} | 5 credits | — | — |
Property by URL /property?url= | 5 credits | — | — |
Agent Profile /agent | 5 credits | — | — |
Autocomplete /autocomplete | 2 credits | — | — |
List Markets /markets | Free | — | — |
See the full plan comparison on the pricing page — subscription tiers step down per-credit cost beyond the cheapest column shown above.
ScrapeBadger's Redfin Scraper API handles everything Redfin throws at automated requests — so your pipeline keeps running.
Every property detail returns Redfin’s own valuation estimate alongside the complete price history and tax history — the numbers valuation and investment models are actually built on.
Redfin uses bot detection, IP reputation, and TLS/HTTP fingerprinting on suspicious traffic. ScrapeBadger handles fingerprinting and detects blocks automatically — no CAPTCHA solving on your end.
Responses are normalized typed JSON extracted from Redfin’s internal GIS search API and SSR page data — no HTML to parse, no fragile CSS selectors that break when Redfin updates its frontend.
The property model surfaces grouped amenities, schools, tax and price history from the listing detail page — not just the headline beds/baths.
Credits are only deducted for successful responses. If Redfin returns an error or the request times out, no credits are consumed. You only pay for data you actually receive.
Official SDKs for Python, Node.js, Go, Rust, PHP, C#, Java, Kotlin, Ruby, Swift, Dart and C++ — generated from one OpenAPI spec, always in sync with the API. Full documentation with working code examples for every endpoint.
Get started in minutes with Python, Node.js, or plain HTTP requests.
The scrapebadger Python library wraps the Redfin API with typed methods. Install with pip install scrapebadger, then start scraping Redfin in a few lines of code.
from scrapebadger import ScrapeBadger
client = ScrapeBadger("sb_live_...")
# Search for-sale homes in Austin under $700k
results = client.redfin.search(
location="Austin, TX",
price_max=700000,
)
# Get the full detail for the first few results
for home in results.results[:3]:
detail = client.redfin.property(property_id=home.property_id)
print(detail.street_line, detail.redfin_estimate)import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({
apiKey: 'sb_live_...'
})
// Pull the Redfin Estimate and price history for a home
const { property } = await client.redfin.property({
propertyId: '12345678',
})
console.log(property.redfinEstimate, property.rentEstimate)
for (const event of property.priceHistory) {
console.log(event.date, event.event, event.price)
}Common questions about scraping Redfin with the API — Python, Node.js, or REST.
Search returns listing cards with property_id, price, beds/baths, sqft, address, coordinates, days on market, and photos. Property detail returns the full record — Redfin Estimate and rent estimate, complete price history and tax history, schools with ratings, grouped amenities, listing agent and MLS attribution, and all listing photos. Agent, autocomplete, and markets endpoints each return their own normalized model.
The United States and Canada — both are served from redfin.com behind a US residential IP, so there is no separate market or currency parameter. Search accepts any US or Canadian city, state, ZIP, county, or neighborhood as the location.
No. Search returns active for-sale listings only — there is no sold or rental status. Use the price_history array on property detail to see prior sold events for a specific home.
Yes. The /property/{property_id} endpoint (or /property?url= with a full home URL) returns the Redfin Estimate, rent estimate, tax-assessed value, a full price_history array (listed / price-change / sold events), and a tax_history array of yearly tax paid and assessed value — the core inputs for valuation and investment analysis.
Redfin combines bot detection, IP reputation, and TLS/HTTP fingerprinting on suspicious traffic. ScrapeBadger uses Chrome impersonation over residential proxies, detects blocks, and falls back to a real browser when needed — all automatically. You never configure proxies, manage fingerprints, or solve CAPTCHAs. No Redfin API key is required.
Install with pip install scrapebadger, then initialise the client and call client.redfin.search(location="Austin, TX"), client.redfin.property(property_id="12345678"), or client.redfin.agent(agent_id="some-agent"). The SDK returns typed objects — properties expose .redfin_estimate, .price_history, and .schools, and search exposes pagination and map_bounds for tiling.
Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All Redfin endpoints — search, property detail, agents, and autocomplete across the US and Canada — included on every plan.
1,000 free credits. No credit card. Get your API key in under a minute.
PAYG credits never expire · Pay only for successful requests · US + Canada coverage