# Redfin Property Scraper - Cheap 🇺🇸🏠 (`scrapestorm/redfin-property-scraper-cheap`) Actor

🏡 Scrape Redfin Real Estate Across the USA 🇺🇸

Extract properties from Redfin, including listing price, bedrooms, bathrooms, living area, address, listing URL, status, property type, brokerage & transaction type. Ideal for real estate analytics, lead generation, and property intelligence 🚀🔍

- **URL**: https://apify.com/scrapestorm/redfin-property-scraper-cheap.md
- **Developed by:** [Storm\_Scraper](https://apify.com/scrapestorm) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 17 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

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

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## 🏠🇺🇸 Redfin Property Search Scraper

The Redfin Property Search Scraper is a tool designed to extract property listings data directly from Redfin search pages. Simply provide one or multiple Redfin URLs, and this scraper will retrieve:

- Property listings from Redfin search results 🏠

- Property prices 💰

- Bedrooms and bathrooms 🛏️🚿

- Property size (sqft) 📏

- Property addresses 📍

- Listing URLs 🌐

- Listing status information 🔖

- Listing agency details 🏢

- Property type information 🏘️

- And more additional real estate information 🔍

### Description 💪

Its strength 💪 lies in its ability to scrape Redfin property listings directly from search result pages while automatically handling pagination and listing discovery.

The scraper supports multiple Redfin URL types, including:

- City pages 🏙️
- ZIP code pages 📮
- County pages 🗺️
- Neighborhood pages 🏘️
- State pages 🇺🇸

You can scrape:

- For Sale properties 🏠
- Rental properties 🏢
- Sold properties 📊

making it a powerful solution for real estate market research and property intelligence.

### How to Use Redfin Property Search Scraper? 🔍

Using the Redfin Property Search Scraper is straightforward! It's designed to be user-friendly and accessible for all skill levels. Here's how you can use it:

1. **Sign up** for an account on **Apify**.

2. Open the **Redfin Property Search Scraper** on the Apify platform.

3. Input one or multiple Redfin URLs.

4. Select the listing type you want to scrape.

5. Define the maximum number of properties per URL.

6. Click the **"Start"** button and wait for the scraping process to complete.

7. Download the extracted data in various formats:

   - JSON
   - CSV
   - XML
   - Excel
   - HTML

### Pricing for Redfin Property Search Scraper 💰

This scraper operates on a **pay-per-result** basis. You only pay for successfully extracted property listings.

- **Price:** $2.99 per 1,000 results.

### Related Actors

If you're interested in other real estate, social media, or lead generation Actors:

- Facebook Followers & Following Scraper 📊👥
- Facebook Comments Scraper 💬
- YouTube Scraper 🎥
- YouTube Channel Scraper 📺
- YouTube Shorts Scraper 📺
- Zillow (Find a Home Improvement Agent) 🛠️
- YouTube Transcript Video Scraper 📝
- YouTube Playlist Scraper 🎵

***

### Why scrape Redfin property listings?

🏠 Monitor real estate markets across cities, states, and neighborhoods.

💰 Identify investment opportunities and pricing trends.

📊 Analyze housing supply and demand.

🏢 Track rental inventory and rental market activity.

📈 Generate real estate intelligence datasets.

🤖 Build AI and machine learning datasets for housing analytics.

### Input for Redfin Property Search Scraper

The scraper accepts one or multiple Redfin URLs as input. Here's how to structure the input JSON:

```
{
    "urls": [
        "https://www.redfin.com/city/11203/CA/Los-Angeles",
        "https://www.redfin.com/state/Texas"
    ],
    "listing_type": "for_sale",
    "max_items_per_url": 100
}
```

Supported listing types:

- for\_sale
- for\_rent
- sold\_3mo
- sold\_6mo
- sold\_1yr

### Output for Redfin Property Search Scraper 📊

```
{
    "price": "$239000",
    "beds": "1 beds",
    "baths": "1.0 baths",
    "sqft": "750",
    "address": "11813 Runnymede St #27, North Hollywood, CA 91605",
    "listingUrl": "https://www.redfin.com/CA/North-Hollywood/11813-Runnymede-St-91605/unit-27/home/193153767",
    "badges": "Active",
    "keyFacts": "Condo/Co-op",
    "listingAgency": "N/A",
    "listingType": "for_sale",
    "sourceUrl": "https://www.redfin.com/city/11203/CA/Los-Angeles"
}
```

The results may differ from what you see when browsing Redfin due to location, personalization, availability, and listing updates.

# Actor input Schema

## `urls` (type: `array`):

List of Redfin city, zipcode, county, or neighborhood base URLs (without pagination or listing-type suffixes — those are applied automatically based on 'Listing Type' below).

Examples:
• https://www.redfin.com/city/11203/CA/Los-Angeles
• https://www.redfin.com/zipcode/90017

## `listing_type` (type: `string`):

Determines which URL suffix is appended to each base URL:
• For Sale → no suffix
• For Rent → /rentals (always uses the browser path, not the fast API)
• Sold (3/6/12 months) → /filter/include=sold-Xmo|1yr

## `max_items_per_url` (type: `integer`):

Maximum number of listings to extract per URL. For 'For Sale' and 'Sold' types, the actor first tries a fast direct API call (capped at 350 listings per URL); if that's blocked or unavailable it automatically falls back to slower browser-based scraping, where pagination stops earlier if 2 consecutive pages return no new results.

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

Recommended: use residential proxies to reduce detection risk.

## Actor input object example

```json
{
  "urls": [
    "https://www.redfin.com/city/11203/CA/Los-Angeles"
  ],
  "listing_type": "for_sale",
  "max_items_per_url": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (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 = {
    "urls": [
        "https://www.redfin.com/city/11203/CA/Los-Angeles"
    ],
    "listing_type": "for_sale",
    "max_items_per_url": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapestorm/redfin-property-scraper-cheap").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 = {
    "urls": ["https://www.redfin.com/city/11203/CA/Los-Angeles"],
    "listing_type": "for_sale",
    "max_items_per_url": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapestorm/redfin-property-scraper-cheap").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 '{
  "urls": [
    "https://www.redfin.com/city/11203/CA/Los-Angeles"
  ],
  "listing_type": "for_sale",
  "max_items_per_url": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scrapestorm/redfin-property-scraper-cheap --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/971lrQdZJbmdYb61l/builds/ZsDlDOWvapgdObfvq/openapi.json
