Redfin Property Scraper - Homes for Sale, Rent, and Sold Data
Pricing
from $0.35 / 1,000 results
Redfin Property Scraper - Homes for Sale, Rent, and Sold Data
Fast, low-cost Redfin scraper for homes for sale, rentals, sold, coming-soon, and pending listings. Returns 50+ fields per home (price, beds, baths, sqft, lat/long, photos, MLS, key facts) with rich filters. 350 results per request.
Pricing
from $0.35 / 1,000 results
Rating
0.0
(0)
Developer
Crikit
Maintained by CommunityActor stats
0
Bookmarked
15
Total users
4
Monthly active users
11 days ago
Last modified
Categories
Share
Scrape Redfin listings across every status Redfin publishes: for sale, for rent, sold, coming soon, and pending. This Redfin scraper returns 50+ fields per home — price, beds, baths, square footage, lot size, year built, coordinates, MLS number, days on market, and broker — with rich server-side filtering and up to 350 results per request.
No Redfin API key, no login, and no headless browser. Results land in a structured dataset you can export to JSON, CSV, Excel, or XML, or pull straight from the Apify API.
What is Redfin Property Scraper - Homes for Sale, Rent, and Sold Data?
Redfin Property Scraper - Homes for Sale, Rent, and Sold Data is an Apify Actor that extracts homes for sale, rent, sold, and coming soon from Redfin and returns them as clean, structured records. Sold data is the differentiator: Redfin publishes closed sale prices and dates, which makes this one of the few public sources for real transaction comps rather than asking prices.
What data can this Redfin scraper extract?
Every run writes one row per home. The full schema carries 46 fields; the most-used ones are below.
| Field | Type | Description |
|---|---|---|
propertyId | integer | Redfin internal property ID. Stable across listings (a property keeps the same propertyId when relisted). |
listingId | integer | Redfin internal listing ID. Unique per listing instance. |
homeUrl | string | Absolute URL to the property page on redfin.com. |
mlsNumber | string | MLS listing number as reported by the source MLS. |
mlsStatus | string | Raw MLS status string from the source MLS (e.g. Active, Pending, Sold). |
listingStatus | string | Human-readable listing status decoded from Redfin's searchStatus code. |
listingTypeName | string | Human-readable listing type decoded from Redfin's listingType code (For Sale, Sold, Rental, etc.). |
propertyTypeName | string | Human-readable property type decoded from Redfin's uiPropertyType code (Single Family Home, Condo, Townhouse, etc.). |
priceUsd | number | List price or sold price in USD. |
pricePerSqFtUsd | number | Price per square foot in USD. |
hoaUsd | number | HOA dues per Redfin's reported cadence (typically monthly), in USD. |
sqFt | integer | Livable square footage of the home. |
lotSizeSqFt | integer | Lot size in square feet. |
beds | integer | Bedroom count. |
baths | number | Total bathroom count (half baths count as 0.5). |
fullBaths | integer | Number of full bathrooms. |
partialBaths | integer | Number of half or partial bathrooms. |
yearBuilt | integer | Year the property was built. |
addressFull | string | Comma-joined full address (street + unit, city, state zip). |
streetLine | string | Street address line including house number. |
unitNumber | string | Unit, apartment, or suite designator when present. |
city | string | City name. |
See the Output tab in Apify Console for all 46 fields.
How to scrape Redfin property listings
- Open Redfin Property Scraper - Homes for Sale, Rent, and Sold Data and click Try for free.
- Paste Redfin search URLs into
searchUrls, or give plain place names insearches. - Pick
listingType— for sale, rented, sold, coming soon, or pending. - Filter server-side with
minPrice,maxPrice,minBeds,minSqft,minYearBuilt, andhasGarage. - For sold comps, set
soldWithinDaysto the lookback window you need. - Click Start and watch rows appear live in the Output tab.
- Export the dataset as JSON, CSV, Excel, or XML — or fetch it from the Apify API once the run finishes.
Redfin Property Scraper - Homes for Sale, Rent, and Sold Data input options
| Input | Type | What it does | Default |
|---|---|---|---|
searchUrls | array | Redfin URLs for a city, zip code, county, or neighborhood. Each URL is scraped page by page (up to maxPagesPerRegion). | see schema |
searches | array | Additional regions to scrape. Each item can be a 5-digit U.S. zip code string (e.g. "10001") or a structured object... | |
listingType | string | Which listing status to scrape. | "forSale" |
sortBy | string | Sort order for search results, applied via Redfin's 'ord' parameter. | "redfinRecommended" |
propertyTypes | array | Filter listings to the selected property types. | see schema |
minPrice | integer | Filter listings priced at or above this USD value. | |
maxPrice | integer | Filter listings priced at or below this USD value. | |
minBeds | integer | Minimum number of bedrooms. | |
minBaths | integer | Minimum number of bathrooms. | |
minSqft | integer | Minimum livable square footage. | |
maxSqft | integer | Maximum livable square footage. | |
minYearBuilt | integer | Minimum year built. | |
maxYearBuilt | integer | Maximum year built. | |
hasGarage | boolean | Only homes that report a garage. | false |
soldWithinDays | integer | Sold within N days (only when listingType=sold). | |
maxItems | integer | Hard cap across all regions combined. | 50 |
Proxy is configured through the standard proxyConfiguration object; the defaults shipped with this Actor are already tuned for the target site.
Example output
{"searchUrls": [{ "url": "https://www.redfin.com/city/30749/NY/New-York" }],"listingType": "forSale","sortBy": "newest","minPrice": 500000,"maxPrice": 2000000,"minBeds": 2,"maxItems": 1000}
How much does it cost to scrape Redfin?
This Actor runs on pay per result pricing: $0.00035 per home ($0.35 per 1,000). A one-time start fee of $0.00005 applies per run.
| Results | Approximate cost |
|---|---|
| 1,000 | $0.35 |
| 10,000 | $3.50 |
| 100,000 | $35.00 |
You pay for rows you actually receive, so a search that returns nothing costs nothing beyond the start fee. Every Apify account includes free monthly usage credit, so you can trial Redfin Property Scraper - Homes for Sale, Rent, and Sold Data at no cost.
What can you build with Redfin data?
Pull real sold comps for an appraisal or offer
soldDateIso and the sold price give you closed-transaction comps, which carry far more weight than active list prices when pricing an offer.
Track days-on-market across a submarket
daysOnRedfin aggregated by ZIP and price band is one of the fastest reads on whether a local market is tightening or softening.
Catch coming-soon inventory before it lists
The coming-soon status surfaces homes days before they hit the active market — a real edge for buyer agents and investors.
Feed an investment screening model
Price per square foot, HOA, lot size, and year built together let you filter thousands of homes down to a shortlist automatically.
Compare Redfin and Zillow coverage
Running the same market through both catches listings that appear on one portal and not the other.
Redfin scraping tips and limits
- Redfin returns up to 350 results per request, which is more generous than most portals — but a large metro still needs splitting by region or price band for full coverage.
listingTypechanges which fields are populated. Sold rows carry sale price and date; active rows do not.- Use
flattenFieldswhen you want a CSV-friendly shape rather than nested objects. - This is among the cheapest per-row real-estate Actors in the fleet, so broad sweeps are affordable — but set
maxItemson a first run to learn the market size.
Integrations and automation
Run Redfin Property Scraper - Homes for Sale, Rent, and Sold Data on a schedule to keep a Redfin dataset fresh, or trigger it from your own stack through the Apify API and the official JavaScript and Python clients. Native integrations push results into Google Sheets, Slack, Airtable, Zapier, Make, GitHub, or any webhook endpoint. The Actor also works as an MCP tool, so an AI agent can call it directly.
Related scrapers
| Actor | What it does |
|---|---|
| Zillow Search Scraper | The same market on Zillow. |
| Zillow Detail Scraper | Deep per-property enrichment including tax and price history. |
| Realtor.com Property Scraper (Search + Detail) | Realtor.com search and detail in one Actor. |
| Apartments.com Listings Scraper | Dedicated rental inventory from Apartments.com. |
Frequently asked questions
Can I get sold home prices from Redfin?
Yes. Set listingType to sold and use soldWithinDays to control the lookback. Rows come back with the closed sale price and sold date, which is what makes Redfin valuable for comps.
Does it include MLS numbers?
Yes, mlsNumber and mlsStatus are on every row where Redfin publishes them, which makes reconciliation against an MLS feed straightforward.
Do I need a Redfin API key?
No. Redfin Property Scraper - Homes for Sale, Rent, and Sold Data reads publicly available Redfin pages and endpoints directly, so there is no key to obtain, no OAuth app to register, and no account to connect.
Can I export Redfin data to CSV, Excel, or Google Sheets?
Yes. Every run stores results in an Apify dataset that exports to JSON, JSONL, CSV, Excel, XML, or HTML with one click, and the Google Sheets integration writes rows straight into a spreadsheet.
Can I run Redfin Property Scraper - Homes for Sale, Rent, and Sold Data on a schedule?
Yes. Apify schedules run the Actor hourly, daily, weekly, or on any cron expression, and webhooks can notify your systems the moment a run finishes.
Is it legal to scrape Redfin?
Scraping publicly available data is broadly lawful in the US and EU, but the answer depends on what you collect and how you use it. This Actor is built to gather public property listing information Redfin publishes publicly, including broker and agent names. Personal data carries extra obligations under GDPR and CCPA. Read Apify's guide on whether web scraping is legal and take your own legal advice for your use case.
Support and feedback
Found a bug, a missing field, or a Redfin page shape this Actor does not handle yet? Open an issue from the Issues tab on the Actor page. Feature requests and custom-scraper enquiries are welcome there too.