# Redfin Scraper (`brilliant_gum/redfin-scraper`) Actor

Scrape active and recently sold property listings from Redfin. Filter by price, beds, baths, property type, square footage, year built, HOA and new construction. Supports multiple US cities and Redfin search URLs. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/brilliant\_gum/redfin-scraper.md
- **Developed by:** [Yuliia Kulakova](https://apify.com/brilliant_gum) (community)
- **Categories:** Real estate, Developer tools
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

![Redfin Real Estate Scraper](https://i.imgur.com/oiO898Q.png)

## Redfin Real Estate Scraper — Active & Sold Listings

> **Pull US property listings from Redfin with prices, specs, agent info and market data — no browser, no login required.**

---

### What it does

Search any US city or Redfin URL and get a clean, structured export of matching property listings — active for-sale homes or recently sold properties. Each record includes the full address, price, property specs, listing agent, days on market, open house dates, and more. Apply filters to narrow results by price, beds, baths, property type, square footage, year built, HOA fee, and new construction status.

- Search by city name or any Redfin URL
- Active for-sale and recently sold listings
- Filter by price, beds, baths, property type, size, year built, HOA and more
- Export to JSON, CSV or Excel in one click

---

### Key features

| | |
|---|---|
| **2 listing modes** | For-sale (SALE) · Recently sold (SOLD) |
| **Powerful filters** | Price · Beds · Baths · Type · Sq ft · Year built · HOA · New construction |
| **Up to 500 results** | Per location, per run |
| **Multiple locations** | Run multiple cities in one go |
| **Rich property data** | Address · Price · Agent · Days on market · Open house · Coordinates |
| **Sold data** | Filter sold listings by recency — last 7, 30, 90, 180 or 365 days |

---

### Output fields

| Field | Description |
|---|---|
| `address`, `city`, `state`, `zip` | Full property address |
| `price` | Listing price |
| `pricePerSqFt` | Price per square foot |
| `soldDate` | Date sold (SOLD mode) |
| `beds`, `baths` | Bedrooms and bathrooms |
| `sqFt` | Interior square footage |
| `lotSizeSqFt` | Lot size in square feet |
| `yearBuilt` | Year the property was built |
| `propertyType` | Single Family, Condo, Townhouse, etc. |
| `listingStatus` | Active, Coming Soon, Pending, Sold, etc. |
| `daysOnMarket` | Days listed on Redfin |
| `hoaFee` | Monthly HOA fee |
| `isNewConstruction` | New construction flag |
| `has3DTour` | 3D virtual tour available |
| `isHot` | Redfin Hot Home flag |
| `openHouseDate` | Next open house date/time |
| `listingAgent` | Listing agent name |
| `listingBroker` | Brokerage name |
| `listingRemarks` | Full property description |
| `garageSpaces` | Number of garage spaces |
| `latitude`, `longitude` | Exact GPS coordinates |
| `url` | Direct link to Redfin listing |
| `scrapedAt` | Timestamp of scrape |

---

### Example input

```json
{
  "locations": ["Austin, TX", "Miami, FL"],
  "searchMode": "SALE",
  "minPrice": 300000,
  "maxPrice": 700000,
  "minBeds": 3,
  "minBaths": 2,
  "propertyTypes": ["house", "townhouse"],
  "maxDaysOnMarket": 30,
  "sortOrder": "newest",
  "maxListings": 100
}
````

***

### Filters

| Input | Type | Description |
|---|---|---|
| `locations` | array | City/state names or Redfin URLs |
| `searchMode` | string | `SALE` · `SOLD` |
| `maxListings` | number | Max results per location (1–500) |
| `minPrice` / `maxPrice` | number | Price range in USD |
| `minBeds` / `maxBeds` | number | Bedroom count range |
| `minBaths` | number | Minimum bathrooms |
| `propertyTypes` | array | house · condo · townhouse · multi-family · land · mobile |
| `minSqFt` / `maxSqFt` | number | Square footage range |
| `minYearBuilt` | number | Minimum year built |
| `maxDaysOnMarket` | number | Days on market cap (active listings only) |
| `maxHOA` | number | Max HOA fee per month (0 = no HOA) |
| `isNewConstruction` | boolean | New construction only |
| `sortOrder` | string | newest · price-asc · price-desc · days-asc |
| `soldWithin` | number | SOLD mode: last N days (7 / 30 / 90 / 180 / 365) |

**Supported city names (no URL needed):** Austin TX · New York NY · Los Angeles CA · Chicago IL · Philadelphia PA · Seattle WA · Miami FL · Manhattan NY · Brooklyn NY · Queens NY

For any other city — paste the Redfin search URL directly, e.g. `https://www.redfin.com/city/30818/TX/Austin`

***

### Use cases

**Real estate investors** — Screen markets fast. Get prices, days on market, HOA fees and sold comps in one export.

**Home buyers** — Compare listings across multiple neighborhoods side by side.

**Agents & brokers** — Pull comparable sales data and active inventory for any market in seconds.

**Data analysts** — Export bulk listing data to Excel or CSV for market trend analysis.

***

### Pricing

**$15.00 per 1,000 results** · ~$0.015 per listing

Pay only for what you scrape — no subscriptions, no plans, no minimums.

| Example run | Results | Cost |
|---|---|---|
| 1 city · 100 listings | 100 | ~$1.50 |
| 3 cities · 100 listings each | 300 | ~$4.50 |
| 5 cities · 200 listings each | 1,000 | ~$15.00 |
| Max run · 5 cities · 500 each | 2,500 | ~$37.50 |

# Actor input Schema

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

Redfin search URLs or city names. Supported city names: Austin TX, New York NY, Los Angeles CA, Chicago IL, Philadelphia PA, Seattle WA, Miami FL, Manhattan NY, Brooklyn NY, Queens NY. For any other city use a Redfin URL, e.g. "https://www.redfin.com/city/16163/WA/Seattle"

## `searchMode` (type: `string`):

SALE = active for-sale listings · SOLD = recently sold properties (last 90 days by default)

## `maxListings` (type: `integer`):

Maximum number of listings to return per location.

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

Minimum listing price in USD.

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

Maximum listing price in USD.

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

Minimum number of bedrooms.

## `minBaths` (type: `number`):

Minimum number of bathrooms (e.g. 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5).

## `propertyTypes` (type: `array`):

Filter by property type. Leave empty to include all types.

## `minSqFt` (type: `integer`):

Minimum property square footage.

## `maxSqFt` (type: `integer`):

Maximum property square footage.

## `minYearBuilt` (type: `integer`):

Only return properties built on or after this year (e.g. 1990).

## `maxDaysOnMarket` (type: `integer`):

Maximum number of days a listing has been on the market. Applies to active/sale listings only.

## `maxHOA` (type: `integer`):

Maximum HOA fee per month in USD. Set to 0 to disable this filter.

## `isNewConstruction` (type: `boolean`):

If enabled, return only new construction listings.

## `sortOrder` (type: `string`):

Sort results by the selected criterion. Leave blank for default Redfin sort.

## `soldWithin` (type: `integer`):

For SOLD mode only: return properties sold within this many days (e.g. 7, 30, 90, 180, 365). Leave blank to return all sold listings.

## Actor input object example

```json
{
  "locations": [
    "Austin, TX"
  ],
  "searchMode": "SALE",
  "maxListings": 100,
  "isNewConstruction": false
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "locations": [
        "Austin, TX"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("brilliant_gum/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 = { "locations": ["Austin, TX"] }

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

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

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

```

## CLI example

```bash
echo '{
  "locations": [
    "Austin, TX"
  ]
}' |
apify call brilliant_gum/redfin-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=brilliant_gum/redfin-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Redfin Scraper",
        "description": "Scrape active and recently sold property listings from Redfin. Filter by price, beds, baths, property type, square footage, year built, HOA and new construction. Supports multiple US cities and Redfin search URLs. Export to JSON, CSV or Excel.",
        "version": "1.0",
        "x-build-id": "39ODoM6Ufcu3yvaUg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/brilliant_gum~redfin-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-brilliant_gum-redfin-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/brilliant_gum~redfin-scraper/runs": {
            "post": {
                "operationId": "runs-sync-brilliant_gum-redfin-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/brilliant_gum~redfin-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-brilliant_gum-redfin-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "locations",
                    "searchMode"
                ],
                "properties": {
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "Redfin search URLs or city names. Supported city names: Austin TX, New York NY, Los Angeles CA, Chicago IL, Philadelphia PA, Seattle WA, Miami FL, Manhattan NY, Brooklyn NY, Queens NY. For any other city use a Redfin URL, e.g. \"https://www.redfin.com/city/16163/WA/Seattle\"",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchMode": {
                        "title": "Search Mode",
                        "enum": [
                            "SALE",
                            "SOLD"
                        ],
                        "type": "string",
                        "description": "SALE = active for-sale listings · SOLD = recently sold properties (last 90 days by default)",
                        "default": "SALE"
                    },
                    "maxListings": {
                        "title": "Max Listings per Location",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of listings to return per location.",
                        "default": 100
                    },
                    "minPrice": {
                        "title": "Min Price (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum listing price in USD."
                    },
                    "maxPrice": {
                        "title": "Max Price (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum listing price in USD."
                    },
                    "minBeds": {
                        "title": "Min Bedrooms",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Minimum number of bedrooms."
                    },
                    "minBaths": {
                        "title": "Min Bathrooms",
                        "minimum": 0,
                        "type": "number",
                        "description": "Minimum number of bathrooms (e.g. 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5)."
                    },
                    "propertyTypes": {
                        "title": "Property Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by property type. Leave empty to include all types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "house",
                                "condo",
                                "townhouse",
                                "multi-family",
                                "land",
                                "mobile"
                            ]
                        }
                    },
                    "minSqFt": {
                        "title": "Min Square Footage",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum property square footage."
                    },
                    "maxSqFt": {
                        "title": "Max Square Footage",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum property square footage."
                    },
                    "minYearBuilt": {
                        "title": "Min Year Built",
                        "minimum": 1800,
                        "maximum": 2025,
                        "type": "integer",
                        "description": "Only return properties built on or after this year (e.g. 1990)."
                    },
                    "maxDaysOnMarket": {
                        "title": "Max Days on Market",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of days a listing has been on the market. Applies to active/sale listings only."
                    },
                    "maxHOA": {
                        "title": "Max HOA Fee (USD/month)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum HOA fee per month in USD. Set to 0 to disable this filter."
                    },
                    "isNewConstruction": {
                        "title": "New Construction Only",
                        "type": "boolean",
                        "description": "If enabled, return only new construction listings.",
                        "default": false
                    },
                    "sortOrder": {
                        "title": "Sort Order",
                        "enum": [
                            "newest",
                            "price-asc",
                            "price-desc",
                            "days-asc"
                        ],
                        "type": "string",
                        "description": "Sort results by the selected criterion. Leave blank for default Redfin sort."
                    },
                    "soldWithin": {
                        "title": "Sold Within (days)",
                        "minimum": 1,
                        "maximum": 365,
                        "type": "integer",
                        "description": "For SOLD mode only: return properties sold within this many days (e.g. 7, 30, 90, 180, 365). Leave blank to return all sold listings."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
