
Redfin Scraper
hipersoft/redfin-scraper
Scrape Redfin for-sale real estate listings by location: price, beds, baths, square footage, lot size, property type, address, coordinates, days on market and listing URL. No setup.
Total users
1Monthly users
1Total runs
97Per property scraped
$0.002Last rebuilt
Oct 28, 2026Overview
Scrape Redfin for-sale real estate listings for any location — price, beds, baths, square footage, lot size, property type, address, coordinates, days on market and the listing URL — into clean JSON, CSV or Excel. Just type a city, ZIP or "City, ST" and get back structured records ready for spreadsheets, maps or analytics. No account, no API key. Fast and reliable.

Great for real estate analysis, investing, agent lead lists, market research and mapping.
What does Redfin Scraper do?
It geocodes each location you pass and returns one clean record per for-sale listing — price, beds, baths, size, property type, address, coordinates, status and days on market, plus a direct link and photo. Pass many locations and export the whole inventory in one run.
What you get

- 📍 Search by place — pass any number of
locationslike "Austin, TX", "Miami, FL" or "90210"; each is geocoded to a search area automatically. - 🏠 Full property detail — every home carries
price,beds,baths,sqFt,pricePerSqFt,lotSize,yearBuilt,propertyType,storiesandhoa. - 🎚️ Exact filters —
minPrice,maxPriceandminBedsso results match precisely. - 🗺️ Map-ready geo — each record includes
latitudeandlongitudeplus fulladdress,city,stateandzip. - ⏱️ Market timing — capture
daysOnMarket, listingstatus,mlsIdand a directurlto the Redfin page. - 📸 Photos included — a
photoURL comes with every listing.
Output schema
| Field | Type | Description |
|---|---|---|
location |
string | The search location this listing was found for. |
mlsId |
string | MLS identifier of the listing. |
price |
integer | List price in USD. |
beds |
integer | Number of bedrooms. |
baths |
number | Number of bathrooms. |
sqFt |
integer | Interior area in square feet. |
pricePerSqFt |
integer | Price per square foot in USD. |
lotSize |
integer | Lot size in square feet. |
yearBuilt |
integer | Year the home was built. |
propertyType |
string | Property type (e.g. Single Family, Condo). |
stories |
integer | Number of stories. |
hoa |
integer | Monthly HOA fee in USD. |
address |
string | Street address of the home. |
unit |
string | Unit or apartment number, if any. |
city |
string | City. |
state |
string | Two-letter state code. |
zip |
string | ZIP code. |
latitude |
number | Latitude coordinate. |
longitude |
number | Longitude coordinate. |
status |
string | Listing status (e.g. Active). |
daysOnMarket |
integer | Days the listing has been on market. |
listingId |
integer | Redfin listing identifier. |
url |
string (URL) | Direct link to the Redfin listing page. |
photo |
string (URL) | URL of the listing's main photo. |
Use cases
- Market inventory — pull an up-to-date list of homes for sale in target markets.
- Trend analysis — analyze price-per-sqft, beds/baths and days-on-market by area.
- Mapping — plot listings using the built-in coordinates.
- Investor comps — build comparable-sales and valuation datasets.
- Agent lead lists — feed listings into agent and outreach workflows.
- Research — track supply and pricing across cities over time.
How to scrape Redfin data
- Add the Redfin Scraper to your Apify account.
- Add one or more places to
locations— a city, "City, ST" or ZIP. - Set
maxHomesPerLocationand optionalminPrice,maxPrice,minBedsfilters. - Click Run.
- Export the results as JSON, CSV or Excel, or pull them via the Apify API.
Input
{
"locations": ["Austin, TX", "Miami, FL"],
"maxHomesPerLocation": 300,
"minPrice": 0,
"maxPrice": 0,
"minBeds": 0
}
| Field | Description |
|---|---|
locations |
Places to search — city, "City, ST" or ZIP; each is geocoded. |
maxHomesPerLocation |
Max listings per location (1–350, default 300). |
minPrice / maxPrice |
Price bounds in USD (0 = no bound). |
minBeds |
Minimum bedrooms. |
proxyConfiguration |
Optional proxy settings; works without one, add for high volume. |
Output
{
"location": "Austin, TX",
"mlsId": "1234567",
"price": 625000,
"beds": 3,
"baths": 2,
"sqFt": 1840,
"pricePerSqFt": 340,
"lotSize": 6500,
"yearBuilt": 2015,
"propertyType": "Single Family",
"stories": 2,
"hoa": 45,
"address": "1234 Maple St",
"unit": null,
"city": "Austin",
"state": "TX",
"zip": "78704",
"latitude": 30.245,
"longitude": -97.77,
"status": "Active",
"daysOnMarket": 12,
"listingId": "987654",
"url": "https://www.redfin.com/TX/Austin/1234-Maple-St-78704/home/987654",
"photo": "https://ssl.cdn-redfin.com/photo/..."
}
Need more property data?
- Crexi Scraper — commercial real estate listings
- Domain Inspector — domain & DNS intelligence
- Contact Details Scraper — emails, phones and socials
FAQ
Do I need a Redfin account? No. This reads publicly available for-sale listing data — no account, no API key.
How many homes can I scrape?
Up to about 350 per location; set maxHomesPerLocation to control the run.
Can I filter by price or beds?
Yes — use minPrice, maxPrice and minBeds so results match precisely.
Do listings include coordinates?
Yes — each record carries latitude and longitude plus full address, city, state and ZIP.
What export formats are supported? JSON, CSV, Excel and XML, plus the Apify API.
Can I integrate it with other tools? The Redfin Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
How does billing work? You pay only per item you get — cheap per listing, cheapest in its class.
Notes
Original clean-room implementation. Reads only publicly available Redfin for-sale listing data — no login-walled content or private accounts. You are responsible for how you use the data. Not affiliated with, authorized or endorsed by Redfin; "Redfin" and related marks belong to their respective owners.
Input
| Field | Type | Description |
|---|---|---|
locations requiredLocations | array | Places to search, e.g. "Austin, TX", "Miami, FL", "90210". Each is geocoded to a search area. |
maxHomesPerLocationMax homes per location | integer | Maximum listings to collect per location (Redfin returns up to ~350 per area). Default: 300 |
minPriceMin price (USD) | integer | Only include listings at or above this price. Default: 0 |
maxPriceMax price (USD) | integer | Only include listings at or below this price (0 = no cap). Default: 0 |
minBedsMin bedrooms | integer | Only include listings with at least this many bedrooms. Default: 0 |
proxyConfigurationProxy | object | Optional proxy. Redfin works without one; add a proxy for high volume. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~redfin-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"locations": [
"Austin, TX"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/redfin-scraper").call(run_input={
"locations": [
"Austin, TX"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/redfin-scraper').call({
"locations": [
"Austin, TX"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Property scraped One property listing scraped with full details. | $0.002 | $0.002 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
CNN Fear & Greed Index Scraper
Scrape the CNN Fear & Greed Index: current market-sentiment score and rating, a full historical timeline, and all seven component indicators. Clean structured JSON, CSV or Excel for trading signals, backtesting, dashboards and alerting.
547 runs · 6 users · $0.003 / item scrapedDivar Scraper
Scrape classified ads from Divar, Iran's largest marketplace: title, price (Toman), category, city, district, images and the listing URL. Search any Iranian city with an optional keyword and export one clean row per ad as JSON, CSV or Excel. For market research, price tracking and n8n.
224 runs · 22 users · $0.003 / listing scrapedAirbnb Scraper
Search Airbnb by location and scrape listings: name, property type, price, rating, reviews, coordinates, photos, badges and link. For short-term rental, pricing and market research.
122 runs · 2 users · $0.005 / listing scrapedSingapore HDB Property Information Scraper
Export master data for every HDB block in Singapore (~13,300 blocks): address, town, year completed, max floor, total units, unit mix by flat type (sold & rental) and amenities (market/hawker, carpark, commercial, pavilion). Filter by town, street, year. Public open data, no setup.
113 runs · 1 users · $0.002 / block scrapedPropertyGuru Singapore Scraper
Scrape PropertyGuru Singapore property listings: price, beds, baths, size, address, property type, agent and URL. For property research and lead generation.
106 runs · 3 users · $0.004 / listing scrapedEdgeProp Singapore Property Scraper
Scrape EdgeProp Singapore property listings for sale and rent: price, address, beds, baths, size, PSF and URL.
105 runs · 1 users · $0.004 / listing scrapedSend the site and the fields. We build it and you get it first.