Redfin Scraper
Pricing
Pay per event
Redfin Scraper
Extract Redfin real estate listings for production property-data workflows: price, beds/baths, sqft, address, neighborhood, HOA, MLS status, agent info, and listing URL. Lightweight HTTP workflow; no proxy needed.
Pricing
Pay per event
Rating
1.0
(1)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
79
Total users
17
Monthly active users
7 hours ago
Last modified
Categories
Share
What does Redfin Scraper do?
Redfin Scraper extracts property listings from Redfin — one of the most accurate and up-to-date real estate platforms in the United States. Powered by Redfin's internal JSON API (no browser required), this scraper delivers clean, structured property data at scale.
Simply paste one or more Redfin city, ZIP code, neighborhood, or county URLs and you get back a dataset of property listings with prices, addresses, bedroom/bathroom counts, square footage, year built, HOA fees, listing status, agent info, and more.
Key capabilities:
- 🏠 Scrape cities, ZIP codes, neighborhoods, and counties in one run
- 📊 Get 20+ data fields per listing: price, address, beds, baths, sqft, lot size, year built, HOA, MLS status, listing remarks, and more
- 🔍 Filter by property type, price range, bedrooms, bathrooms, and square footage
- 📄 Paginate through hundreds of results per search area
- ⚡ No proxy needed — pure HTTP, no browser overhead, runs on any plan
Who is it for? Redfin Scraper users
🏗️ Real estate investors
You track multiple markets and need fresh listing data for analysis. Use this scraper to pull all active listings in Austin, Seattle, or Washington DC sorted by price or days on market — and feed the data into your investment model.
📊 Market researchers and analysts
You need bulk listing data for pricing analysis, market trend reports, or competitive intelligence. This scraper gives you clean, structured data you can load into Excel, Google Sheets, or any analytics tool.
🏢 PropTech startups
You're building a real estate app, lead gen platform, or CMA tool. Instead of scraping HTML pages, use this actor to get structured JSON data from Redfin's own API — the same data the website shows.
🤖 Data engineers and analysts
You need to regularly pull listing data for dashboards, alerts (e.g., "new listings under $500k in ZIP 78703"), or CRM enrichment. Schedule this actor to run daily or weekly.
🏡 Homebuyers doing research
You want to compare prices across neighborhoods or track how quickly properties sell in a specific area — without clicking through dozens of pages manually.
Why use Redfin Scraper?
- ✅ Actually works — uses Redfin's JSON API, not fragile HTML parsing
- ✅ No proxy needed — HTTP-only, runs cheaply from any compute tier
- ✅ Structured data — 20+ fields per listing, flattened and ready for analysis
- ✅ Pagination built-in — retrieve up to 350+ listings per search area
- ✅ Filter support — narrow by type, price, beds, baths, sqft
- ✅ Multiple locations in one run — batch multiple cities or ZIP codes together
- ✅ Export formats — JSON, CSV, Excel via Apify's built-in dataset export
- ✅ Schedule support — run daily/weekly to track listing changes over time
Why use this actor instead of maintaining a browser scraper?
The Apify blog walkthrough shows how to build a Redfin extractor with Playwright. This actor is built for ongoing production use: it follows Redfin's structured data path with a lightweight HTTP workflow, returns normalized listing fields, and can be scheduled or called through the Apify API without running a browser for every page.
Use it when you need repeatable Redfin listing exports for market monitoring, comps, alerts, or downstream PropTech/AI workflows.
What data can you extract?
| Field | Description |
|---|---|
propertyId | Redfin's unique property identifier |
listingId | Listing identifier |
mlsId | MLS number |
mlsStatus | Status: Active, Pending, Coming Soon, Contingent, etc. |
address | Street address |
unitNumber | Unit number (for condos/townhouses) |
city | City name |
state | State abbreviation |
zip | ZIP/postal code |
neighborhood | Neighborhood or subdivision name |
latitude / longitude | GPS coordinates |
price | Listing price in USD |
pricePerSqFt | Price per square foot |
beds | Number of bedrooms |
baths | Total bathrooms |
fullBaths | Full bathrooms |
sqFt | Living area in square feet |
lotSizeSqFt | Lot size in square feet |
yearBuilt | Year the property was built |
stories | Number of stories |
hoaPerMonth | HOA fee per month |
propertyTypeName | Property type: Single Family, Condo, Townhouse, etc. |
daysOnMarket | Days the listing has been active |
soldDate | Date sold (ISO format) |
isHot | Whether Redfin marks it as a "hot" listing |
isNewConstruction | Whether it's a new build |
hasVirtualTour | Virtual tour available |
numPhotos | Number of listing photos |
listingAgent | Listing agent name |
listingBroker | Listing brokerage name |
listingRemarks | Full listing description |
keyFacts | Key features highlighted by the listing |
url | Full Redfin listing URL |
How much does it cost to scrape Redfin listings?
This actor uses Pay-Per-Event (PPE) pricing — you only pay for listings actually extracted.
| Plan | Price per listing |
|---|---|
| Free | $0.00345 |
| Bronze | $0.003 |
| Silver | $0.00234 |
| Gold | $0.0018 |
| Platinum | $0.0012 |
| Diamond | $0.00084 |
Real-world cost examples:
- 100 Austin listings → ~$0.35 (Free plan) → ~$0.08 (Diamond plan)
- 500 Denver listings → ~$1.73 (Free plan) → ~$0.42 (Diamond plan)
- 1,000 Seattle listings → ~$3.45 (Free plan) → ~$0.84 (Diamond plan)
Free plan estimate: With Apify's $5 monthly free credits, you can scrape approximately 1,450 listings per month at no charge.
There's also a small one-time start charge of $0.002 per run (all plans).
How to scrape Redfin listings
- Go to Redfin Scraper on Apify Store
- Click Try for free
- Find your target location on Redfin (e.g., a city page like
https://www.redfin.com/city/30818/TX/Austin) - Copy the URL and paste it into the Redfin search URLs field
- Set
maxListings(default: 100) to control how many results to fetch - Optionally set price range, property type, or bedroom filters
- Click Start and wait for results (typically under 30 seconds for 100 listings)
- Download results as JSON, CSV, or Excel from the Results tab
Supported URL formats:
- City page:
https://www.redfin.com/city/30818/TX/Austin - ZIP code:
https://www.redfin.com/zipcode/10001 - Neighborhood:
https://www.redfin.com/neighborhood/.../{id} - County:
https://www.redfin.com/county/{id}/...
Input examples:
Search Austin, TX for homes under $600k with 3+ beds:
{"searchUrls": ["https://www.redfin.com/city/30818/TX/Austin"],"maxListings": 100,"minPrice": 200000,"maxPrice": 600000,"minBeds": 3}
Scrape multiple cities in one run:
{"searchUrls": ["https://www.redfin.com/city/30818/TX/Austin","https://www.redfin.com/city/16163/WA/Seattle","https://www.redfin.com/city/13/DC/Washington"],"maxListings": 50}
Scrape a ZIP code for condos:
{"searchUrls": ["https://www.redfin.com/zipcode/94105"],"maxListings": 50,"propertyTypes": ["condo"]}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | Array | required | Redfin city, ZIP, neighborhood, or county search URLs |
maxListings | Integer | 100 | Max listings per URL (0 = all available, up to ~350) |
propertyTypes | Array | [] | Filter: house, condo, townhouse, multi-family, land, other |
listingStatus | Array | [] | Filter: active, coming-soon, contingent, pending, sold |
minPrice | Integer | 0 | Minimum price filter (0 = no minimum) |
maxPrice | Integer | 0 | Maximum price filter (0 = no maximum) |
minBeds | Integer | 0 | Minimum bedrooms (0 = no filter) |
minBaths | Integer | 0 | Minimum bathrooms (0 = no filter) |
minSqFt | Integer | 0 | Minimum square footage (0 = no filter) |
sortOrder | String | redfin-recommended-asc | Sort: price-asc, price-desc, days-on-market-asc, newest, etc. |
Output examples
A single listing output item looks like this:
{"propertyId": 31219656,"listingId": 213537338,"mlsId": "4563912","mlsStatus": "Active","address": "2301 W 10th St","unitNumber": null,"city": "Austin","state": "TX","zip": "78703","neighborhood": "Lloyd Maury Allen","latitude": 30.2833939,"longitude": -97.7707162,"price": 1250000,"pricePerSqFt": 567,"beds": 5,"baths": 3,"fullBaths": 3,"sqFt": 2203,"lotSizeSqFt": 6712,"yearBuilt": 1935,"stories": 2,"hoaPerMonth": null,"propertyTypeName": "Single Family Residential","daysOnMarket": 1,"soldDate": null,"isHot": false,"isNewConstruction": false,"hasVirtualTour": false,"numPhotos": 31,"listingAgent": "John Smith","listingBroker": "Redfin Corporation","listingRemarks": "Classic Deep Eddy / Tarrytown Opportunity...","keyFacts": ["6,712 sq ft lot", "3 parking spots", "Built 1935"],"url": "https://www.redfin.com/TX/Austin/2301-W-10th-St-78703/home/31219656"}
Tips for best results
- 🗺️ Find the right URL: Browse Redfin normally, navigate to the city/ZIP/neighborhood you want, and copy the URL from your browser's address bar.
- 🔢 Start small: Use
maxListings: 20for your first run to verify the data looks correct before running larger batches. - 📅 Schedule for monitoring: Use Apify's scheduler to run this actor daily or weekly to track new listings or price changes in your target market.
- 🏘️ Multiple areas in one run: You can scrape several cities or ZIP codes in a single run by adding multiple URLs to the
searchUrlsarray. - 🔍 Use filters: Combining
minPrice,maxPrice,minBeds, andpropertyTypessignificantly narrows results to exactly what you need. - ⚡ No rate limit concerns: This actor uses Redfin's public JSON API at a respectful pace with a 500ms delay between pages.
Integrations
Redfin Scraper → Google Sheets Export listings as CSV and import to Google Sheets for market analysis. Use Google Sheets formulas to calculate price-per-sqft ranges, average DOM by neighborhood, or spot outliers. Set up a recurring run with Apify's scheduler to automatically refresh your sheet with new listings each morning.
Redfin Scraper → Slack alerts Connect via Apify's webhook or Make.com to send Slack notifications when new listings appear in a specific ZIP code under your target price. Schedule the scraper to run hourly and filter the dataset for new items since the last run.
Redfin Scraper → Make.com / Zapier pipeline Trigger an automation whenever new results appear: add leads to a CRM (HubSpot, Salesforce), send email alerts to clients, or populate a property comparison spreadsheet automatically.
Redfin Scraper → PostgreSQL / BigQuery Use Apify's dataset API to pull results directly into your data warehouse for long-term trend analysis, price history tracking, or ML model training.
Scheduled monitoring Run the scraper daily on target ZIP codes and compare datasets over time to identify price reductions, new listings, or days-on-market trends in specific neighborhoods.
API usage
Node.js:
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/redfin-scraper').call({searchUrls: ['https://www.redfin.com/city/30818/TX/Austin'],maxListings: 100,minBeds: 3,});const dataset = await client.dataset(run.defaultDatasetId).listItems();console.log(dataset.items);
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("automation-lab/redfin-scraper").call(run_input={"searchUrls": ["https://www.redfin.com/city/30818/TX/Austin"],"maxListings": 100,"minBeds": 3,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["address"], item["price"])
cURL:
curl -X POST "https://api.apify.com/v2/acts/automation-lab~redfin-scraper/runs?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchUrls": ["https://www.redfin.com/city/30818/TX/Austin"],"maxListings": 100}'
MCP and AI-agent workflows
This actor returns structured JSON that can be called from the Apify API, scheduled runs, webhooks, or integrations such as Make and Zapier. Use it to feed property-search agents, market-monitoring agents, valuation/RAG pipelines, CRM enrichment, or daily alerts without maintaining your own scraper.
You can also call this actor through the Apify MCP server from Claude Desktop, Cursor, Windsurf, or any MCP-compatible agent. Add the Apify MCP server with your Apify API token:
$claude mcp add apify -- npx -y @apify/actors-mcp-server --actors automation-lab/redfin-scraper
Example MCP server configuration:
{"mcpServers": {"apify": {"command": "npx","args": ["-y", "@apify/actors-mcp-server", "--actors", "automation-lab/redfin-scraper"],"env": {"APIFY_TOKEN": "YOUR_APIFY_TOKEN"}}}}
Example prompts for an MCP-enabled real-estate agent:
- "Run Redfin Scraper for Austin active listings under $750k and summarize neighborhoods with the most results."
- "Scrape these San Marino ZIP-code Redfin URLs, then return only properties over $3M with full address, price, beds, baths, and URL."
- "Compare Redfin listings from two city URLs and identify unusually low price-per-square-foot homes."
For multi-source coverage, combine:
- Zillow Scraper for Zillow search/detail data and Zestimates
- Redfin Scraper for fast Redfin listing data
- Realtor.com Scraper for for-sale, rental, and recently sold coverage
- Realtor.com Agents Scraper for active agent/contact enrichment
Useful search terms: real estate data API, property listings API, Zillow API alternative, Redfin API alternative, Realtor.com API alternative, housing market data, AI agent real estate data, property data for LLM, real estate scraper, property scraper.
Legality: is it legal to scrape Redfin?
Redfin's data is derived from public MLS (Multiple Listing Service) feeds and is displayed publicly without requiring login. Web scraping publicly available data is generally lawful under U.S. law, as affirmed by the hiQ v. LinkedIn ruling.
This scraper:
- Only accesses publicly available listing data (no login required)
- Does not access any private user data or agent-only sections
- Operates at a respectful rate with built-in delays
Always ensure your use of scraped data complies with your local laws and Redfin's Terms of Service. This actor is intended for personal research, market analysis, and educational purposes.
FAQ
How many listings can I get per search area? Redfin's API returns up to approximately 350 listings per search area. For cities with more active listings, use smaller sub-areas (ZIP codes or neighborhoods) and combine the results.
Why does the ZIP code search return fewer results than expected? Some ZIP codes have limited active inventory at any given time, especially in rural areas. This is normal — the scraper returns all available listings in that area.
How fast does it run? For 100 listings, expect 5–15 seconds. For 500 listings, expect 30–60 seconds. No proxy is used so speed is consistent.
Why are some listings missing fields like price or sqft?
Some Redfin listings have restricted data access levels (level field). Listings from certain MLS providers hide specific fields. The scraper returns null for restricted fields.
Can I get sold/historical listings?
Yes — add "listingStatus": ["sold"] to your input to get recently sold properties.
How is this different from Redfin's official API? Redfin's official Data Center API has a waitlist and is designed for enterprise users. This scraper gives independent developers and researchers immediate access to listing data in a structured format.
Why do some city pages return 0 results? This can happen if the city ID in the URL is incorrect or the area has no active listings. Double-check by navigating to the Redfin page directly in your browser first, then copy the exact URL.
Build a production real-estate data workflow
Use this actor as one source in a repeatable property-data pipeline: scrape listings from the source site, export structured JSON/CSV/Excel, schedule refreshes, and send results to your dashboard, CRM, warehouse, or AI/LLM workflow.
Use Redfin as a fast US listing source in a repeatable property-data pipeline: collect prices, beds/baths, sqft, addresses, MLS status, agent/source URLs, and listing details, then export or schedule results for market monitoring, comps, alerts, PropTech products, or AI/RAG workflows.
For broader coverage, combine it with related Automation Lab actors:
- US residential listings: Zillow Scraper, Redfin Scraper, Realtor.com Scraper
- US agent lead data: Realtor.com Agents Scraper
- UK and Europe: Rightmove Scraper, ImmoScout24 Germany Real Estate Scraper, Imovirtual Scraper, RE/MAX Portugal Scraper, Sreality.cz Real Estate Scraper, Pisos.com Real Estate Scraper
- Middle East / South Asia: PropertyFinder Scraper, Zameen Property Scraper
- Short-term rentals: Airbnb Scraper and Airbnb Reviews Scraper
Related real-estate actors
- Zillow Scraper — Zillow search/detail data, property attributes, photos, and Zestimates
- Redfin Scraper — fast Redfin listing data for cities, ZIP codes, neighborhoods, and counties
- Realtor.com Scraper — Realtor.com for-sale, rental, and recently sold listings
- Realtor.com Agents Scraper — active real-estate agent contacts and brokerage enrichment