Real estate
Redfin Real Estate Scraper
redfin.com
Redfin is served through a dedicated plugin endpoint rather than the generic page fetch. In search mode, give it a location and it returns the listings already parsed: price, beds, baths, living area and lot size, the address and coordinates, property type, MLS status and number, days on market, price per sqft and a clean listing URL. Filter by status (for sale / sold), price range, beds, baths and property type, then sort and page through the results. In detail mode, give it a listing URL and it returns one home in full: the listing agents, price history, the Redfin Estimate, tax and public records, and nearby schools. A ZIP code or a Redfin city URL like /city/30818/TX/Austin resolves most reliably; a plain 'City, ST' is best-effort. It reads Redfin's own listing data behind AWS WAF, so there is no HTML scraping to maintain yourself.
What you can extract
- Price, beds, baths, living area (sqft) and lot size
- Full address and coordinates (lat/lng)
- Property type, MLS status and MLS number
- Days on market, price per sqft and a clean listing URL
- Detail mode: listing agents, price history and the Redfin Estimate
- Detail mode: tax and public records, and nearby schools
Dedicated endpoints
/realestate/redfin Redfin listings for a location
Redfin listings for a location (mode=search): price, beds, baths, sqft, lot size, address, coordinates, propertyType, MLS status/number, days on market, price/sqft and a listing URL. Filter with status, min_price/max_price, beds, baths and property_type; sort and page with max_results. A ZIP or Redfin city URL resolves most reliably; a plain 'City, ST' is best-effort.
/realestate/redfin?mode=detail One Redfin home in full
One home by listing URL (mode=detail): the listing agents, full price history, the Redfin Estimate, tax and public records, and nearby schools.
How to scrape it
curl -X POST \
-H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
"https://api.scrapeunblocker.com/realestate/redfin?mode=search&location=Austin%2C%20TX&status=for_sale&max_results=40"import requests
resp = requests.post(
"https://api.scrapeunblocker.com/realestate/redfin",
headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
params={"mode": "search", "location": "Austin, TX", "status": "for_sale", "max_results": "40"},
)
print(resp.text)import { ScrapeUnblockerClient } from 'scrapeunblocker';
const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });
const data = await su.redfinSearch({ location: 'Austin, TX', status: 'for_sale', maxResults: 40 });
console.log(results); Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.
Related scrapers
Start scraping this site today
Free tier included. No credit card required to test it.