Redfin Scraper: Property Listings, Sold Listings & Rentals
Pricing
from $0.25 / 1,000 homes
Redfin Scraper: Property Listings, Sold Listings & Rentals
Scrape Redfin property listings: homes for sale, sold and for rent by search URL with its filters, city, ZIP code, neighborhood, county or home URL. Property data: id, URL, price, beds, baths, sq ft, lot size, year built, HOA fee, status, days on market, coordinates, MLS id, photos. No login.
Pricing
from $0.25 / 1,000 homes
Rating
0.0
(0)
Developer
Hyperbach
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Features
Share
Redfin homes, logged out: Redfin search URLs of a city, ZIP code, neighborhood or county with every filter you set on the site, place names or ZIP codes with a listing type (for sale, for rent, sold in the last month to 5 years), or home URLs in, one row per home out — the property id and URL, the listing type and status, the home type, price, price per square foot, HOA fee, beds, baths, square feet, lot size, year built, the address and coordinates, days on market, the sold date and price, the MLS id, the remarks and every photo URL; a rental's rent, bed, bath and size ranges with its building and units — several searches in one run, a max per search. One free search row per input carries a completeness verdict: COMPLETE (the search's end), CAPPED (your limit), TRUNCATED (the site's own limit, with its reason) or PARTIAL. No login, no API key, no browser, proxies handled for you.
$0.50 per 1,000 home rows on the Free plan, $0.425 on Starter. A run start is $0.0035. The default input returns about 50 rows for about $0.0285. A value that names nothing is a free row that says why.

Why this Redfin scraper
- Any Redfin search, as you set it. Paste a search URL from your browser: a city, ZIP code, neighborhood or county, or a map area, with every filter you set on the site (price, beds, baths, home type, square feet, year built, sold within a period, rentals). Redfin's own search reads the filters, so the rows are what the site shows for that search.
- Or just a place. A city with its state (
Austin, TX), a ZIP code, a neighborhood or a county, one a line, resolved by Redfin's own place search, for sale, for rent or sold in the last month to 5 years. - Sale, sold and rentals in one shape. Every row has the same columns: a sold home carries its sale date and price, a home for sale its days on market and last sale date, a rental its rent, bed, bath and size ranges with the building's name and its available units. Column names follow our Zillow scraper's, so the two datasets join.
- Every photo. The full-size URL of every photo of the listing, and the count.
- Whole searches, fast. Redfin's own search gives up to 10,000 homes of a search in one request (measured 2026-10-31: 5,778 Austin homes for sale in 10.7 s); rentals come 350 a request with the site's count. A search past 10,000 homes says TRUNCATED: split it by price or area in the URL.
- Honest runs. A place Redfin does not know, a region that is not there and an empty search are checked twice before a free row says so; a home another search already delivered is delivered and charged once. Every input gets a row.
Who it's for
- Real estate investors and agents — every home for sale in a city or ZIP code with its price per square foot, days on market and HOA fee, read again every day to see what is new and what moved.
- Appraisers and market analysts — sold comparables of a neighborhood or a county over a month to 5 years, with sale dates and prices, square feet, lot size and year built.
- Rental market research — the rentals of a city or ZIP code with their rent ranges, unit sizes and buildings.
Quick start
The first 100 homes for sale in a city
{"locations": ["Austin, TX"],"listingType": "for_sale","maxItemsPerSearch": 100}
A filtered search URL and the sold homes of a ZIP code
{"searchUrls": ["https://www.redfin.com/city/30818/TX/Austin/filter/property-type=house,max-price=500k,min-beds=3","https://www.redfin.com/zipcode/78731/filter/include=sold-1yr"],"maxItemsPerSearch": 200}
Rentals of a county and a home by URL
{"searchUrls": ["https://www.redfin.com/county/2866/TX/Travis-County/apartments-for-rent","https://www.redfin.com/TX/Austin/3808-Balcones-Dr-78731/home/34166255"],"maxItemsPerSearch": 300}
Output
One row per home (and one free search row per input):
| field | meaning |
|---|---|
row_type | home (one home, charged) or search (the input's row with the walk's verdict; free). |
input_index | The 1-based position of the input this row answers: searchUrls first, then locations. |
input_value | The input as you gave it (the URL or the place). |
input_kind | Which input it came from: url (searchUrls) or location (locations). |
search_url | The Redfin search the input was read as (a place resolved to its region with the listing type), or the home's URL. |
status | A search row: ok, no_results, not_found, invalid, duplicate, failed or not_read (see the FAQ). A home row: ok. |
status_detail | Why a search row is not ok, in a sentence. |
scraped_at | When the row was read (UTC). |
position | The home's place among this input's delivered homes, in Redfin's own order (1 = first). |
property_id | Redfin's property id (the number at the end of the home's URL): one row per property id a run. |
listing_id | Redfin's listing id of this sale, or the rental's id. |
url | The home's page on Redfin. |
listing_type | for_sale, sold or for_rent. |
status_text | The listing's status as Redfin shows it (Active, Coming Soon, Pending, Closed, For rent …). |
home_type | single_family, condo, townhouse, multi_family, manufactured, land, apartment or other. |
price | The list price, the sold price of a sold home, or a rental's lowest rent a month, in USD. |
price_max | A rental's highest rent a month, in USD (its units' range). |
currency | USD. |
price_per_sqft | The price per square foot, in USD. |
hoa_fee | The HOA fee a month, in USD, where the listing has one. |
beds | Bedrooms (a rental: the fewest of its units). |
beds_max | A rental: the most bedrooms of its units. |
baths | Bathrooms, half baths as .5 (a rental: the fewest of its units). |
baths_max | A rental: the most bathrooms of its units. |
full_baths | Full bathrooms. |
partial_baths | Partial bathrooms. |
living_area | The living area in square feet (a rental: its smallest unit). |
living_area_max | A rental: its largest unit in square feet. |
lot_area | The lot size in square feet. |
year_built | The year the home was built. |
stories | Stories. |
address | The full address: street, unit, city, state and ZIP code. |
street | The street line. |
unit | The unit number. |
city | The city. |
state | The state (two letters). |
zipcode | The ZIP code. |
neighborhood | The neighborhood or subdivision name the listing gives. |
latitude | The latitude. |
longitude | The longitude. |
days_on_market | Days on market (for sale). |
sold_date | A sold home: the sale date (YYYY-MM-DD). |
sold_price | A sold home: the sale price in USD. |
last_sold_date | A home for sale: the date of its last sale, where Redfin has one. |
mls_id | The listing's MLS number. |
description | The listing's remarks as Redfin's search gives them (often cut short by the site), or a rental's description. |
image_url | The first photo's URL. |
photos | Every photo's URL, full size. |
photo_count | How many photo URLs photos holds. |
has_3d_tour | The listing has a 3D tour. |
has_video | The listing has a video tour. |
is_new_construction | The home is new construction. |
tags | Redfin's tags for the listing (RESORT STYLE POOL, GUEST HOUSES …). |
building_name | A rental: the building's or community's name. |
units_available | A rental: the units available in it. |
rent_updated_at | A rental: when Redfin last updated it (UTC). |
place_resolved | A search row: the place Redfin resolved the input to. |
region_id | A search row: Redfin's region id of the search. |
region_type | A search row: Redfin's region type (1 neighborhood, 2 ZIP code, 5 county, 6 city). |
filters | A search row: the search's filters as Redfin writes them in a URL. |
homes_count | A search row: Redfin's own count of the search's homes (rentals). |
homes_delivered | A search row: the homes delivered for this input in this run. |
repeats_skipped | A search row: homes met twice, or delivered by another input, and skipped. |
calls | A search row: the calls to Redfin's search this input took. |
verdict | A search row: COMPLETE, CAPPED, TRUNCATED or PARTIAL. |
verdict_detail | A search row: the verdict in a sentence, with the counts. |
Example record:
{"row_type": "home","input_index": 5,"input_value": "https://www.redfin.com/TX/Austin/3808-Balcones-Dr-78731/home/34166255","input_kind": "url","search_url": "https://www.redfin.com/TX/Austin/3808-Balcones-Dr-78731/home/34166255","status": "ok","status_detail": null,"scraped_at": "2026-10-31T01:20:14Z","position": 1,"property_id": "34166255","listing_id": "224954003","url": "https://www.redfin.com/TX/Austin/3808-Balcones-Dr-78731/home/34166255","listing_type": "for_sale","status_text": "Active","home_type": "single_family","price": 22000000,"price_max": null,"currency": "USD","price_per_sqft": 1467,"hoa_fee": null,"beds": 5,"beds_max": null,"baths": 9.5,"baths_max": null,"full_baths": 8,"partial_baths": 3,"living_area": 15000,"living_area_max": null,"lot_area": 51836,"year_built": 2027,"stories": 3.0,"address": "3808 Balcones Dr, Austin, TX 78731","street": "3808 Balcones Dr","unit": null,"city": "Austin","state": "TX","zipcode": "78731","neighborhood": "Colorado Foothills Sec 02","latitude": 30.3176005,"longitude": -97.7665438,"days_on_market": 1,"sold_date": null,"sold_price": null,"last_sold_date": "2009-06-22","mls_id": "1191266","description": "Set behind private gates on prestigious Balcones Drive, The Gatsby is the ultimate trophy estate, where exceptional scale, craftsmanship, and timeless design converge. Spanning app …(truncated for display)","image_url": "https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_0.jpg","photos": ["https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_1_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_2_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_3_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_4_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_5_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_6_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_7_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_8_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_9_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_10_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_11_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_12_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_13_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_14_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_15_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_16_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_17_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_18_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_19_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_20_0.jpg","https://ssl.cdn-redfin.com/photo/92/bigphoto/266/1191266_21_0.jpg"],"photo_count": 22,"has_3d_tour": false,"has_video": false,"is_new_construction": true,"tags": ["PRIVATE WELLNESS CENTER","CUSTOM WHISKEY ROOM","SHOWPIECE KITCHEN","DEDICATED PLAYROOM","RESORT STYLE POOL","GUEST HOUSES"],"building_name": null,"units_available": null,"rent_updated_at": null,"place_resolved": null,"region_id": null,"region_type": null,"filters": null,"homes_count": null,"homes_delivered": null,"repeats_skipped": null,"calls": null,"verdict": null,"verdict_detail": null}
Pricing
Pay for the homes a run delivers, plus one run start; no platform usage is billed to you. The home price falls with your Apify plan.
| event | unit | Free | Starter | Scale | Business |
|---|---|---|---|---|---|
Home (home) | per 1,000 | $0.50 | $0.425 | $0.35 | $0.25 |
Run start (start) | per run | $0.0035 | $0.0035 | $0.0035 | $0.0035 |
A home is $0.50 per 1,000 on the Free plan ($0.0005 a home), with every photo URL included. Each run that delivers a charged home also pays the run start, $0.0035 once; a run that delivers no charged home pays nothing at all. So one search of 100 homes costs $0.054 on the Free plan, and several searches in one run share one start. The free search row of every input, a value that is not a Redfin search or home URL (invalid), a place, region or home Redfin does not have (not_found), a search with no home (no_results), a repeated input (duplicate), an input left at a cap, the charge limit or the time limit (not_read) and a refusal the run could not pass (failed) are never charged. A home is charged once a run, also when several searches list it. A run that stops early (a timeout, an abort) is charged for the homes it delivered. Before the first request the log names the price of each row at your plan and the most the run can cost. Enterprise plans have their own rates: the Actor's Pricing tab shows the price for your plan.
Usage patterns
- URLs and places —
searchUrlstakes Redfin search URLs as your browser shows them (/city/<id>/<state>/<name>,/zipcode/<ZIP>,/neighborhood/<id>/<state>/<city>/<name>,/county/<id>/<state>/<name>, each with its/filter/…part,/rentalsor/apartments-for-rent), and home URLs (/<state>/<city>/<address>-<ZIP>/home/<id>).locationstakes place names and ZIP codes, searched forlistingType. A URL keeps its own listing type. - What a row is —
row_type=home: one home, in Redfin's own order (position).row_type=search: the free row of one input value — theplace_resolved, theregion_id, thefilters,homes_count(the site's count, rentals),homes_delivered,repeats_skipped,calls, theverdictwith itsverdict_detail, and thestatuswith its reason. - How far a search goes —
maxItemsPerSearch(default 1,000; 0 = all) stops each search after that many new homes, andmaxItemsstops the run. Redfin's search gives one search at most 10,000 homes for sale or sold (measured 2026-10-31: Los Angeles asked 20,000, gave 10,000); a run that reaches it says TRUNCATED, and a price band, a ZIP code or a neighborhood in the URL reads the others. Rentals page to the site's own count. - Home URLs — A home URL is found in its ZIP code's lists on Redfin's search: for sale, sold in the last 5 years, then for rent. The row is the same row a search gives. A home URL takes 5-15 s (a ZIP code's sold list holds up to several thousand homes; measured 2026-10-31: four homes in four ZIP codes in 57 s), and the homes of one ZIP code share its lists in a run. A home in none of them (off the market for longer) gets a free
not_foundrow: its own page sits behind a browser check this actor does not run.
Input configuration
| field | type | default | what it does |
|---|---|---|---|
searchUrls | array | Redfin search URLs as your browser shows them, one a line: a city, ZIP code, neighborhood or county search (https://www.redfin.com/city/30818/TX/Austin), with every filter you set on the site kept (/filter/property-type=house,max-price=500k,min-beds=3, a map area viewport=…, sold homes include=sold-3mo, rentals /apartments-for-rent or /rentals). A home URL (https://www.redfin.com/TX/Austin/3808-Balcones-Dr-78731/home/34166255) is found in its ZIP code's for-sale, sold (5 years) and rental lists. | |
locations | array | Places to search, one a line: a city with its state (Austin, TX), a ZIP code (78731), a neighborhood (Hyde Park, Austin) or a county (Travis County, TX). Each is resolved by Redfin's own place search (its first place) and searched for the listing type below. A place Redfin does not know gives a free row with no home. | |
listingType | for_sale / for_rent / sold_1mo / sold_3mo / sold_6mo / sold_1yr / sold_3yr / sold_5yr | "for_sale" | What the places above search: homes for sale, homes for rent, or homes sold in the last month to 5 years. A Redfin URL keeps its own (sold or rentals in the URL). |
maxItemsPerSearch | integer | 1000 | Stop each search after this many new homes. 0 = every home Redfin gives the search: up to 10,000 for sale or sold (the site's limit of one search), every rental. |
maxItems | integer | 0 | Stop the whole run after this many home rows, over every search. 0 = no run cap (each search keeps its own cap). |
feedback | string | A note to the people who maintain this Actor: what you needed and did not get. For example a missing field, a wrong or empty result, or the Actor you switch from or to, and why. The run does not read it: the rows and the charges stay the same. A person reads every note. |
Errors
A run does not fail because of your input. When an input cannot be used — a date that is not a date, an id in the wrong form, two settings that contradict each other — the run ends Succeeded, charges nothing, and says what to change:
- the status message starts with
INPUT REJECTED; - the dataset holds one row,
{"error": true, "code": "…", "message": "…"}, and no results; - the key-value store record
ERRORholds the same object.
From code, check error on the first row before reading results.
A URL that is not a Redfin search or home URL (a market report, an apartment building's page, another site) is not an error: it gets one free search row with status invalid that says why, and the run goes on with the others. A run that ends Failed is a fault on our side, never your input; it charges nothing, and we are alerted.
FAQ
Which status is which?
A search row's status is ok (homes served), no_results (Redfin lists nothing for it; read on two connections), not_found (a place, region or home Redfin does not have; checked on two connections), invalid (an empty value or a URL that is not a Redfin search or home URL), duplicate (the same search or home again in the input: read once; or a home another input already delivered), failed (the site refused every try; free) or not_read (left at a cap, the charge limit or the run's time limit). A home row's status is ok.
Does it give the listing agent, the broker or the Redfin Estimate?
No. Those are on each home's own page, which sits behind a browser check; this actor reads Redfin's search, where every field of the row is, up to 10,000 homes a request. The listing agent is a person, and no agent's name is delivered.
Does it give a rental's phone number?
No. A rental's leasing number can be a private landlord's, and it is not delivered.
Does it need a Redfin account or API key?
No. Everything is read from Redfin's public search, logged out.
Integration
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('hyperbach/redfin-scraper').call({"locations": ["Austin, TX"], "listingType": "for_sale", "maxItemsPerSearch": 100});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('hyperbach/redfin-scraper').call(run_input={'locations': ['Austin, TX'], 'listingType': 'for_sale', 'maxItemsPerSearch': 100})items = client.dataset(run['defaultDatasetId']).list_items().items
CLI
$apify call hyperbach/redfin-scraper --input '{"locations": ["Austin, TX"], "listingType": "for_sale", "maxItemsPerSearch": 100}'
REST
curl -X POST "https://api.apify.com/v2/acts/hyperbach~redfin-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H 'Content-Type: application/json' -d '{"locations": ["Austin, TX"], "listingType": "for_sale", "maxItemsPerSearch": 100}'
AI agents and MCP
Apify's MCP server offers this Actor as a tool to Claude, Cursor, VS Code and any other MCP client. Connect https://mcp.apify.com?tools=hyperbach/redfin-scraper and ask, for example: "Get 50 homes for sale in Austin, Texas from Redfin with the price, beds, baths, square feet and days on market". The agent fills the input from the table above and reads the rows from the run's dataset. The input names are the ones in the table above. An agent or a person can add feedback to any run and say what was needed and not delivered: a missing field, a wrong or empty result, the Actor switched from or to, and why. The run returns the same rows at the same price, and a person reads every note.
n8n, Make and Zapier
The Apify node in n8n, the Apify app in Make and the Apify integration in Zapier run this Actor on a schedule or from a trigger and read its dataset. A webhook on the run's end (Integrations on the Actor page) sends the rows on to your own endpoint. Nothing to install on our side.
Support
Disagree with a charge? Write to apify@hyperbach.com with the run ID. We will ask Apify to compensate you, and the charge comes back to your Apify account as platform credit.
Did it do the job? A short review on the Store, at any rating, helps the next buyer choose.
See also
- Zillow Scraper — Zillow listings for sale, for rent and sold, by ZIP, city or search URL, with the Zestimate, and a property's price history.
- Immobiliare.it Scraper — Immobiliare.it homes for sale and for rent by search URL or place name, with the price, surface, rooms, the address and coordinates, and the agency.
- Fotocasa Scraper — Fotocasa.es homes for sale and for rent in Spain by place name or search URL, with the price, surface, rooms, the coordinates and the agency.
- StreetEasy Scraper — StreetEasy NYC rentals and sales by search link, listing link or neighborhood, with the price, net effective rent, beds, baths, square feet, days on market, the building and the agents.
- Rightmove Scraper — Rightmove UK homes to buy or to rent by search link, listing link or place name, with the price, beds, baths, type, tenure, size, key features, floorplans and the agent branch.
This page is generated from the Actor's schemas and a live sample — it cannot describe a field the Actor does not have.