# Real Estate Scraper for Redfin Home Listings Data (`logiover/redfin-scraper`) Actor

Scrape US home listings without an API or login. Export for-sale, sold and rental MLS data to CSV/JSON for comps and market analysis. Independent tool, not affiliated with, endorsed by or sponsored by Redfin.

- **URL**: https://apify.com/logiover/redfin-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** E-commerce
- **Stats:** 4 total users, 0 monthly users, 96.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Real Estate Scraper for Redfin Home Listings Data — MLS & Comps (No API)

![Apify Actor](https://img.shields.io/badge/Apify-Actor-00A67E?logo=apify\&logoColor=white) ![No API key](https://img.shields.io/badge/No%20API%20key-required-2ea44f) ![Pay per result](https://img.shields.io/badge/Pricing-Pay%20per%20result-1C7ED6) ![Real Estate](https://img.shields.io/badge/Category-Real%20Estate-8B5CF6) ![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-F59E0B)

***

> **Disclaimer:** This Actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by** Redfin Corporation or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Redfin" is used here only to describe the publicly available data source this Actor reads.

***

Scrape US home listings from **Redfin** without a login or API key. Paste any Redfin city, ZIP or neighborhood URL — or just a 5-digit US ZIP code — and this Redfin scraper turns it into a clean, structured real-estate dataset with **list price, price/sqft, beds & baths, square footage, lot size, year built, HOA dues, MLS number & status, days on market and exact GPS coordinates**. Choose **for sale**, **recently sold** or **for rent**, and the Actor pulls thousands of homes per region with full property detail. **Fast, no browser, no API key, no login.**

> ### 🏆 Why this real estate scraper?
>
> **20+ fields per home** · **up to 350 homes per page, thousands per region** · direct public-data extraction · US residential proxy by default · export to JSON / CSV / Excel. The unofficial **Redfin API alternative** for real-estate comps, CMAs, market analysis and investor deal flow.

***

### ✨ What this Actor does / Key features

- 🏠 **Three listing types** — pull homes that are **for sale**, **recently sold** or **for rent** with a single toggle.
- 🔗 **URL or ZIP input** — paste a Redfin city, ZIP, neighborhood or county URL, or just a plain 5-digit US ZIP code such as `78704`.
- 📊 **Full MLS & comps data** — every record carries `mlsId`, `mlsStatus`, `price`, `pricePerSqFt` and `daysOnMarket`, ideal for CMAs and sold-comp analysis.
- 🛏️ **Detailed property attributes** — beds, baths (with `fullBaths` and `partialBaths` broken out), `sqFt`, `lotSize`, `yearBuilt`, `stories`, `hoaFee` and `propertyType`.
- 📍 **Exact GPS coordinates** — `latitude` and `longitude` on every home for mapping, GIS and BI dashboards.
- 💰 **Powerful filters** — cap results by **min/max price**, **min beds** and choose a **sort order** (recommended, newest, price low-to-high or high-to-low).
- ⚡ **Fast pagination** — each Redfin page returns up to 350 homes and the Actor paginates automatically, streaming rows into your dataset as it goes.
- 🛡️ **US residential proxy ready** — Redfin blocks datacenter and non-US traffic, so the Actor defaults to Apify US residential proxy for reliable, clean reads.

### 🚀 Quick start (3 steps)

1. **Configure** — open redfin.com, search a location and copy the URL into **Redfin search URLs** (a city, ZIP or neighborhood). Plain 5-digit ZIPs also work. Pick a **Listing type**: for sale, recently sold or for rent.
2. **Run** — click **Start**. The Actor paginates the region (up to 350 homes per page) and streams homes into your dataset.
3. **Get your data** — open the **Output** tab and export to **JSON, CSV, Excel or XML**, or pull it via the Apify API.

### 📥 Input

Give the Actor at least one **Redfin search URL** (or ZIP code). Everything else is optional.

#### Example — homes for sale in Austin, TX

```json
{
  "searchUrls": ["https://www.redfin.com/city/30818/TX/Austin"],
  "listingType": "forSale",
  "sortBy": "newest",
  "minPrice": 300000,
  "maxPrice": 900000,
  "minBeds": 3,
  "maxResults": 500,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }
}
```

#### Example — recently sold homes by ZIP (build comps / CMAs)

```json
{
  "searchUrls": ["90210", "https://www.redfin.com/zipcode/60601"],
  "listingType": "sold",
  "sortBy": "recommended",
  "maxResults": 1000
}
```

#### Example — rentals in Miami Beach

```json
{
  "searchUrls": ["33139"],
  "listingType": "rent",
  "minBeds": 2,
  "maxResults": 300
}
```

| Field | Type | Description |
|-------|------|-------------|
| `searchUrls` | array | Redfin region URLs (city, ZIP, neighborhood or county) — e.g. `https://www.redfin.com/city/30818/TX/Austin`, `https://www.redfin.com/zipcode/90210`. Plain 5-digit US ZIP codes like `78704` also work. **Required.** |
| `locations` | array | Alternative to `searchUrls`. Also accepts 5-digit US ZIP codes or Redfin region URLs. |
| `listingType` | string | `forSale`, `sold` (recently sold) or `rent`. Default `forSale`. |
| `sortBy` | string | `recommended`, `newest`, `priceLow` or `priceHigh`. Default `recommended`. |
| `minPrice` / `maxPrice` | integer | Keep only homes at/above and at/below these USD prices. |
| `minBeds` | integer | Keep only homes with at least this many bedrooms. |
| `maxResults` | integer | Global cap on homes saved across all locations. Each page returns up to 350 homes. `0` = unlimited (default 1000). |
| `proxyConfiguration` | object | Apify Proxy settings. Redfin requires US residential — leave the default (Apify Proxy · RESIDENTIAL · US). |

> **Finding a Redfin URL:** open redfin.com, type a city or ZIP into the search box, and copy the resulting URL from your browser — a city path like `.../city/30818/TX/Austin`, a ZIP path like `.../zipcode/90210`, or a neighborhood page. Or skip the URL entirely and paste a bare 5-digit ZIP such as `78704`.

### 📤 Output

One row per home — **20+ fields**, exportable to JSON, CSV, Excel or XML. Here is a trimmed sample record:

```json
{
  "address": "1234 Barton Springs Rd",
  "city": "Austin",
  "state": "TX",
  "zip": "78704",
  "price": 749000,
  "pricePerSqFt": 412,
  "beds": 3,
  "baths": 2.5,
  "fullBaths": 2,
  "partialBaths": 1,
  "sqFt": 1817,
  "lotSize": 6534,
  "propertyType": "Single Family Residential",
  "yearBuilt": 1998,
  "stories": 2,
  "hoaFee": 0,
  "daysOnMarket": 12,
  "status": "Active",
  "mlsId": "1234567",
  "mlsStatus": "For Sale",
  "latitude": 30.2549,
  "longitude": -97.7681,
  "numPhotos": 34,
  "url": "https://www.redfin.com/TX/Austin/1234-Barton-Springs-Rd-78704/home/12345678"
}
```

<details>
<summary><b>📋 Full field reference (click to expand)</b></summary>

| Field | Description |
|-------|-------------|
| `address` | Street address |
| `city` | City |
| `state` | State (2-letter code) |
| `zip` | ZIP code |
| `price` | List or sold price (USD) |
| `pricePerSqFt` | Price per square foot |
| `beds` | Bedrooms |
| `baths` | Total bathrooms |
| `fullBaths` | Full bathrooms |
| `partialBaths` | Partial / half bathrooms |
| `sqFt` | Interior living area (square feet) |
| `lotSize` | Lot size |
| `propertyType` | Single-family, condo, townhouse, multi-family or land |
| `yearBuilt` | Construction year |
| `stories` | Number of stories |
| `hoaFee` | Monthly HOA dues |
| `daysOnMarket` | Days on Redfin |
| `status` | For sale, sold, pending or contingent |
| `mlsId` | MLS number |
| `mlsStatus` | MLS status |
| `latitude` | GPS latitude |
| `longitude` | GPS longitude |
| `numPhotos` | Number of listing photos (view the gallery via the listing URL) |
| `url` | Direct link to the Redfin listing |

</details>

### 💡 Use cases

- **Comps & valuation** — pull recently sold homes by ZIP to build CMAs and price models with real MLS data (`mlsId`, `mlsStatus`, `price`, `pricePerSqFt`, `daysOnMarket`).
- **Market analysis** — track inventory, price-per-sqft, days on market and HOA fees across cities and ZIPs.
- **Investor deal flow** — filter by price and beds to surface rentals and value-add opportunities that fit your buy box.
- **Mapping & dashboards** — feed `latitude`/`longitude` plus property attributes into a GIS map or BI dashboard.
- **Rental analysis** — scrape `rent` listings alongside `sold` and `forSale` to model gross yields per neighborhood.
- **Lead & farm lists** — assemble target lists of homes by ZIP, price band and property type for agent farming.

### 👥 Who uses it

Real-estate agents & brokers · property investors & flippers · appraisers & valuation analysts · proptech and CMA tools · mortgage & lending teams · market researchers and data journalists.

### 💰 Pricing

This Actor runs on a simple **pay-per-result** model — you pay for the homes you extract, with no separate Apify platform fees to calculate. Try it on the **free tier** first, then scale up. See the **Pricing** tab on this page for the current rate.

### ❓ Frequently Asked Questions

**Is this a Redfin API alternative?**
Yes. Redfin has no public listings API, so this Actor works as an unofficial Redfin API alternative: paste a region URL or ZIP and get structured home data back as JSON, CSV or Excel — no developer key required.

**Do I need a Redfin account or API key?**
No. The Actor reads only public Redfin listing data through US residential proxies — no login, no cookies and no API key.

**Can I scrape Redfin without an API or login?**
Yes. The Actor scrapes Redfin without an API key, account or cookies — it reads only public listing data through US residential proxies.

**How do I export Redfin data to CSV or JSON?**
After a run, download the dataset as CSV, JSON, Excel or XML from the Apify console, or pull it via the Apify API. It's a quick Redfin data export for spreadsheets and BI tools.

**Is scraping Redfin legal?**
This Actor collects only publicly available listing data. You are responsible for complying with Redfin's terms and applicable laws (such as GDPR/CCPA where personal data is involved). Use it responsibly.

**How much data can I get?**
Each Redfin page returns up to 350 homes, and the Actor paginates automatically. Use **Max results** to cap output or set it to `0` for unlimited — a busy metro can return thousands of homes per run.

#### Can I scrape sold homes with MLS data to build real estate comps?

Yes. Set **Listing type** to **Recently sold** and pass a city or ZIP URL to pull sold homes with `mlsId`, `mlsStatus`, `price`, `pricePerSqFt`, `sqFt` and `daysOnMarket` — everything needed for CMAs and comps.

#### How do I scrape Redfin listings by ZIP code?

Paste a Redfin ZIP URL such as `https://www.redfin.com/zipcode/90210`, or just a bare 5-digit ZIP such as `78704`, into **searchUrls** — the scraper returns every listing in that ZIP with full property detail.

#### Why does Redfin require a US residential proxy?

Redfin blocks datacenter and non-US traffic, so the Actor defaults to Apify US residential proxy to read public listing data reliably. Keep the default proxy setting for the best success rate.

#### Can I get for-rent listings too?

Yes. Set **Listing type** to **For rent** to pull rental homes with price, beds, baths, `sqFt` and location — useful for yield modelling next to sale and sold data.

### 🔗 More real estate scrapers by logiover

Building a cross-market property dataset? Pair Redfin with the rest of the real-estate suite:

| Country | Actor |
|---|---|
| 🇺🇸 USA | [Realtor.com Scraper](https://apify.com/logiover/realtor-com-scraper) |
| 🇨🇦 Canada | [Realtor.ca Scraper](https://apify.com/logiover/realtor-ca-scraper) |
| 🇧🇷 Brazil | [VivaReal Scraper](https://apify.com/logiover/vivareal-scraper) |
| 🇬🇧🇦🇪 UAE / Global | [Property Finder Scraper](https://apify.com/logiover/propertyfinder-scraper) |
| 🇩🇪 Germany | [ImmobilienScout24 Scraper](https://apify.com/logiover/immobilienscout24-de-scraper-germany-real-estate) · [WG-Gesucht Scraper](https://apify.com/logiover/wg-gesucht-scraper) |
| 🇳🇱 Netherlands | [Funda Scraper](https://apify.com/logiover/funda-scraper) |
| 🇮🇪 Ireland | [Daft.ie Scraper](https://apify.com/logiover/daft-ie-scraper) · [MyHome.ie Scraper](https://apify.com/logiover/myhome-ie-scraper) |
| 🇪🇸 Spain | [Habitaclia Scraper](https://apify.com/logiover/habitaclia-com-spain-scraper) · [Pisos.com Scraper](https://apify.com/logiover/pisos-com-property-scraper) |
| 🇵🇱 Poland | [Otodom.pl Scraper](https://apify.com/logiover/otodom-pl-scraper-polish-real-estate-data) |
| 🇷🇴 Romania | [Storia.ro Scraper](https://apify.com/logiover/storia-ro-scraper-romania-real-estate) |

👉 Browse all **[logiover scrapers on Apify Store](https://apify.com/logiover)** — 180+ actors across real estate, jobs, crypto, social media & B2B data.

### ⏰ Scheduling & integration

Schedule this Actor on Apify to track the US housing market daily or weekly. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to your database, BI tools and webhooks through the Apify API. Connect it to **Make, n8n or Zapier** to build automated real-estate and CMA pipelines.

### ⭐ Support & feedback

Found a bug or need an extra field? Open an issue on the **Issues** tab — response is usually fast. If this Actor saves you time, a **★★★★★ review** on the Store page genuinely helps and is hugely appreciated. 🙏

### ⚖️ Legal & trademark disclaimer

This Actor is an **independent tool** and is **not affiliated with, endorsed by, or sponsored by Redfin Corporation** or any of its subsidiaries. All trademarks, service marks and trade names — including "Redfin" — are the property of their respective owners and are used here purely descriptively, to identify the publicly available data source this Actor reads.

This Actor extracts only publicly available data and is intended for legitimate research, analytics and lead-generation use. You are responsible for complying with the data source's terms of service, GDPR/CCPA and any applicable local laws.

***

### 📝 Changelog

#### 2026-08-05

- ⚖️ Renamed the Actor to a descriptive title and added a clear trademark disclaimer: this is an independent tool, not affiliated with, endorsed by or sponsored by Redfin Corporation. Functionality is unchanged.

#### 2026-07-06

- ✨ README overhaul: richer output sample, ready-to-run example scenarios, cross-market real-estate suite links, expanded FAQ and clearer quick-start.

#### 2026-07-01

- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.

#### 2026-06-07

- Docs: added coverage for Redfin unofficial API use, CSV/JSON data export, and scraping Redfin without an API or login.

***

\*Maintained: last verified 2026-09-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).

# Actor input Schema

## `metro` (type: `string`):

Pick a major US metro to scrape without hunting for a URL. Leave as default (or empty everything) to get recent listings for the default metro. Ignored if you provide your own URLs below.

## `searchUrls` (type: `array`):

Paste Redfin region URLs (city, zip, neighborhood or county). Open redfin.com, search a location, copy the URL. 5-digit US zip codes also work directly. Examples: 'https://www.redfin.com/city/30818/TX/Austin', 'https://www.redfin.com/zipcode/90210', '78704'.

## `locations` (type: `array`):

Alternative to searchUrls. Accepts 5-digit US zip codes or Redfin region URLs.

## `listingType` (type: `string`):

Which listings to collect.

## `propertyType` (type: `string`):

Restrict to one property type, or All.

## `sortBy` (type: `string`):

Sort order for results.

## `minPrice` (type: `integer`):

Only keep homes priced at or above this value (USD).

## `maxPrice` (type: `integer`):

Only keep homes priced at or below this value (USD).

## `minBeds` (type: `integer`):

Only keep homes with at least this many bedrooms.

## `maxResults` (type: `integer`):

Global cap on homes saved across all locations. Each page returns up to 350 homes. 0 = unlimited.

## `proxyConfiguration` (type: `object`):

Redfin requires US residential proxies. Leave the default (Apify Proxy · RESIDENTIAL · US).

## Actor input object example

```json
{
  "metro": "austin-tx",
  "searchUrls": [
    "https://www.redfin.com/city/30818/TX/Austin",
    "90210"
  ],
  "locations": [
    "33139",
    "https://www.redfin.com/zipcode/60601"
  ],
  "listingType": "forSale",
  "propertyType": "all",
  "sortBy": "recommended",
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All records extracted by this run. Open the Dataset tab to browse, filter, and export as CSV, JSON, or Excel.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/redfin-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/redfin-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call logiover/redfin-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,logiover/redfin-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gI2tTK4h132I6YmJp/builds/LaUcuXlWqFpLixl10/openapi.json
