# 🏠 Redfin Motivated Seller & Price Drop Scraper (`automation_studio/redfin-motivated-seller-scraper`) Actor

Real estate investor & wholesaler deal finder. Scrapes Redfin for motivated sellers, consecutive price cuts, high DOM, distress keywords, and Redfin Estimate equity spreads.

- **URL**: https://apify.com/automation\_studio/redfin-motivated-seller-scraper.md
- **Developed by:** [Automation Studio](https://apify.com/automation_studio) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 verified property & motivated seller leads

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🏠 Redfin Motivated Seller & Price Drop Scraper

> **The ultimate real estate investor & wholesaler deal finder.** Scan Redfin's real-time MLS syndication feed to uncover motivated homeowners, consecutive price cuts, stale listings, below-market equity spreads, and distress keywords.

***

### 🎯 Why Redfin Motivated Seller Scraper?

Most real estate scrapers dump thousands of generic, overpriced retail listings that waste hours of your time.

**Redfin Motivated Seller & Price Drop Scraper is built specifically for real estate investors, wholesalers, and flippers.** It continuously filters for distress indicators and seller urgency:

- 📉 **Consecutive Price Drops**: Pinpoint properties where sellers have cut prices multiple times or dropped 5%+ below original listing price.
- 💰 **Redfin Estimate Equity Spread**: Automatically calculates the equity discount ($ and %) by comparing listing price against Redfin's automated valuation model (AVM).
- 🚨 **Distress Keyword AI**: Analyzes listing remarks for 30+ motivation signals (*"must sell"*, *"as-is"*, *"estate sale"*, *"tlc"*, *"handyman special"*, *"cash only"*, *"relocating"*, *"probate"*).
- 📅 **Stale Inventory Targeting**: Target high-DOM (Days on Market) homes where seller fatigue and desperation peak.
- 📞 **Direct Contact Details**: 100% populated with listing agent names, brokerage firms, and direct inquiry contact details.
- ⭐ **Algorithmic Deal Score (0–100)**: Proprietary multi-factor scoring index prioritizing the highest-conviction deals first.
- 🔔 **Instant Webhook Alerts**: Push newly detected deals straight to Discord or Slack channels the moment they appear.

***

### 👥 Who Is This For?

- **Real Estate Wholesalers**: Lock up deeply discounted contracts before competing investors or retail buyers see them.
- **Fix-and-Flippers**: Find properties with structural or cosmetic upside and high gross margins.
- **Buy-and-Hold Landlords**: Scoop up cash-flowing rental properties with built-in equity.
- **Acquisition Managers & Agents**: Feed your buyers pipeline with pre-screened motivated seller leads.

***

### ⚙️ Input Configuration

| Parameter | Type | Default | Description |
| :--- | :---: | :---: | :--- |
| `location` | `String` | `"Dallas, TX"` | Target US City/State (e.g. `Dallas, TX`, `Atlanta, GA`) or 5-digit ZIP code (`75201`). |
| `minPriceDropPercent` | `Integer` | `5` | Minimum cumulative price cut percentage (e.g., 5 = at least 5% off original price). |
| `minPriceDropsCount` | `Integer` | `1` | Minimum number of separate price drops recorded on the MLS. |
| `minDaysOnMarket` | `Integer` | `14` | Minimum days listed on Redfin (DOM). Set to 0 to include fresh price drops. |
| `distressKeywordsOnly`| `Boolean` | `false` | When enabled, only returns properties containing distress keywords in remarks. |
| `customKeywords` | `Array` | `[]` | Optional list of custom distress keywords to scan (e.g., `["fire damage", "divorce"]`). |
| `minDealScore` | `Integer` | `40` | Deal Score threshold (0–100). Only deals meeting this score are exported. |
| `maxResults` | `Integer` | `40` | Maximum qualified deals to collect per run. |
| `webhookUrl` | `String` | `null` | Optional Discord or Slack webhook URL for real-time deal alerts. |
| `proxyConfiguration` | `Object` | `RESIDENTIAL` | Apify Residential Proxy configuration for anti-bot resilience. |

***

### 📊 Output Data Format

Each qualified deal record in the Apify dataset contains complete property specifications and motivation intelligence:

```json
{
  "propertyId": "30877630",
  "mlsId": "21384120",
  "address": "5814 Meaders Ln, Dallas, TX 75230",
  "streetLine": "5814 Meaders Ln",
  "city": "Dallas",
  "state": "TX",
  "zip": "75230",
  "price": 2450000,
  "priceFormatted": "$2,450,000",
  "originalPrice": 2690000,
  "originalPriceFormatted": "$2,690,000",
  "priceCutAmount": 240000,
  "priceCutAmountFormatted": "$240,000",
  "priceCutPercent": 8.92,
  "priceCutPercentFormatted": "8.9%",
  "priceDropsCount": 2,
  "redfinEstimate": 2750000,
  "redfinEstimateFormatted": "$2,750,000",
  "equityDiscount": 300000,
  "equityDiscountFormatted": "$300,000",
  "equitySpreadPercent": 10.91,
  "daysOnMarket": 42,
  "yearBuilt": 2006,
  "beds": 5.0,
  "baths": 5.0,
  "squareFeet": 4829,
  "lotSizeSqFt": 18992,
  "pricePerSqFt": 507,
  "pricePerSqFtFormatted": "$507/sqft",
  "dealScore": 72,
  "distressKeywordsFound": [
    "motivated seller",
    "must sell",
    "bring all offers"
  ],
  "distressSignalsCount": 3,
  "remarksExcerpt": "Motivated seller says bring all offers! Located on an expansive 0.44-acre lot in prestigious Preston Hollow...",
  "sellerContactPhone": "(844) 759-7732",
  "sellerContactEmail": "agent.camilleduhoux@directseller-inquiry.com",
  "listingAgentName": "Camille Duhoux",
  "listingBrokerage": "Redfin Corporation",
  "url": "https://www.redfin.com/TX/Dallas/5814-Meaders-Ln-75230/home/30877630",
  "scrapedAt": "2026-09-20T23:00:00.000Z"
}
```

***

### 💰 Transparent Pay-Per-Event (PPE) Pricing

- **$0.005** per Actor startup (initializes market queries and proxy routing).
- **$0.005** per verified motivated seller deal record extracted ($5.00 / 1,000 leads).
- **Platform usage (compute & proxy)**: Paid by subscriber directly to Apify (`isPPEPlatformUsagePaidByUser: true`). Zero surprise bills.

# Actor input Schema

## `location` (type: `string`):

Target city and state (e.g. 'Dallas, TX', 'Atlanta, GA', 'Phoenix, AZ') or specific 5-digit ZIP code (e.g. '75201').

## `minPriceDropPercent` (type: `integer`):

Filter for properties where price cuts equal or exceed this percentage of original listing price (e.g. 5 = at least 5% off original price).

## `minPriceDropsCount` (type: `integer`):

Minimum number of separate price drops recorded on Redfin MLS (e.g. 1 = at least one price drop, 2 = multiple consecutive drops indicating increasing seller urgency).

## `minDaysOnMarket` (type: `integer`):

Target stale inventory listed for at least this many days (e.g. 14 = listed for 2 weeks or more). Set to 0 to include fresh price cuts.

## `distressKeywordsOnly` (type: `boolean`):

When enabled, only returns properties whose listing remarks contain high-intent distress keywords (e.g. 'must sell', 'as-is', 'estate sale', 'tlc', 'cash only', 'probate').

## `customKeywords` (type: `array`):

Optional list of additional keywords to scan in listing remarks (e.g. 'code violation', 'divorce', 'handyman', 'foundation issue').

## `minDealScore` (type: `integer`):

Algorithmic Deal Score index based on price cut magnitude (+35), distress keywords (+25), stale DOM (+20), and Redfin Estimate equity spread (+20). Only deals meeting or exceeding this score are exported.

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

Maximum number of qualified motivated seller deals to collect per run.

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

Redfin enforces Akamai bot detection. Apify Residential Proxies are strongly recommended for reliable extraction.

## `webhookUrl` (type: `string`):

Optional: Discord or Slack incoming webhook URL to receive instant alert cards when high-conviction deals (Score >= 75) are identified.

## Actor input object example

```json
{
  "location": "Dallas, TX",
  "minPriceDropPercent": 5,
  "minPriceDropsCount": 1,
  "minDaysOnMarket": 14,
  "distressKeywordsOnly": false,
  "customKeywords": [],
  "minDealScore": 35,
  "maxResults": 40,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Default dataset containing filtered motivated seller real estate deals with calculated price drops, distress keywords, and contact info.

# 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 = {
    "location": "Dallas, TX",
    "customKeywords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation_studio/redfin-motivated-seller-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 = {
    "location": "Dallas, TX",
    "customKeywords": [],
}

# Run the Actor and wait for it to finish
run = client.actor("automation_studio/redfin-motivated-seller-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 '{
  "location": "Dallas, TX",
  "customKeywords": []
}' |
apify call automation_studio/redfin-motivated-seller-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation_studio/redfin-motivated-seller-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/e1WS3w5J5TxoQAT3p/builds/AGoypz6hQl9P3s8de/openapi.json
