# Realtor.com Scraper — Listings, Agents & 200K+ DB (`scrapepilot/realtor-com-scraper-listings-agents-200k-db`) Actor

Extract real estate listings, MLS property details & 200K+ verified agent contacts from Realtor.com. Prices, beds, baths, schools, taxes, emails, phones. Zero login, clean JSON, proxy ready.

- **URL**: https://apify.com/scrapepilot/realtor-com-scraper-listings-agents-200k-db.md
- **Developed by:** [Scrape Pilot](https://apify.com/scrapepilot) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 property listing scrapeds

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/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

***

## 🏡 Realtor.com Scraper — Listings, Agents & 200K+ Agent Instant Database

***

**Realtor.com Scraper** — extract 100% genuine real estate listings, verified MLS property records, and a nationwide **200K+ agent instant database** from Realtor.com. Get full property details with 33+ fields (list price, beds, baths, sqft, schools, taxes, agent contacts, popularity stats), plus verified licensed agent records with phone, email, brokerage, license numbers, and specializations. **Zero login required.**

If you searched for **realtor.com scraper**, **realtor scraper**, **realtor.com API alternative**, **MLS listings scraper**, **real estate agent database**, **realtor agent finder**, **property data scraper**, **US real estate listings API**, **realtor.com property extractor**, **agent contact scraper**, **real estate lead generation tool**, or a **no-login realtor.com data extractor** — this is the actor you're looking for. ✅

***

### 💡 What is the Realtor.com Scraper?

**Realtor.com** is the #1 real estate listing platform in the United States, operated by Move Inc. (a subsidiary of News Corp) with **1.2M+ active listings** and **200K+ verified agents**. This **Realtor.com scraper** turns that data into a structured, ready-to-use dataset.

The actor has **2 powerful modes**:

1. **⚡ Instant Agent Database Mode** — Search the nationwide directory of **200K+ verified real estate agents & brokers** by state, city, or brokerage.
2. **🌐 Live Scraping Mode** — Scrape real MLS property listings, property details, rentals, communities, shortlinks, and agent search pages in real time.

Everything works **100% autonomously** — no login, no cookie, no API key required.

***

***

### 🚀 Key Features

| Feature | Description |
|---------|-------------|
| **2 Powerful Modes** | Instant Agent Database + Live Scraping. |
| **200K+ Verified Agents** | Nationwide directory with license numbers, brokerages, specialties. |
| **33+ Property Fields** | List price, beds, baths, sqft, lot size, schools, taxes, HOA, agent contacts. |
| **MLS-Verified Listings** | 100% genuine property data from Realtor.com's live API. |
| **Additional Popularity Stats** | Saves, views, LDP views across 1d / 7d / 30d periods. |
| **Direct Agent Contacts** | Real name, phone, email, and office brokerage per property. |
| **Nationwide Coverage** | All US states, 1000+ cities supported. |
| **Shortlink Resolution** | Automatically follows `apps.realtor.com` shortlinks. |
| **Zero Login Required** | No Realtor.com account, no cookie, no API key. |
| **Monitoring Mode** | Tracks seen keys across runs — perfect for scheduled monitoring. |
| **Multi-URL Support** | Scrape multiple URLs in one run with fair budget distribution. |
| **Pay-Per-Event Pricing** | Only charged for successfully delivered items. |

***

### 📥 Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `dbState` | string | No | – | **Instant Agent DB mode.** 2-letter US state code (e.g. `TX`, `CA`, `NY`, `FL`, `IL`). |
| `dbCity` | string | No | – | Filter agents by city (e.g. `Austin`, `Miami`). |
| `dbBrokerage` | string | No | – | Filter by brokerage (e.g. `Compass`, `Keller Williams`). |
| `startUrls` | array | No | Austin search | Any Realtor.com URL: search, detail, agent, rental, community, shortlink. |
| `agentZipCodes` | array | No | `[]` | Zip codes to search agents by. |
| `maxItems` | integer | No | `100` | Max total items to return. |
| `maxConcurrency` | integer | No | `5` | Parallel workers for live scraping. |
| `maxRequestRetries` | integer | No | `3` | Retry attempts per request. |
| `additionalStats` | boolean | No | `false` | Enrich properties with popularity stats (saves, views, LDP views). |
| `monitoringMode` | boolean | No | `false` | Skip previously seen items across runs. |
| `proxy` | object | No | – | Apify proxy config. Residential recommended. |

***

### 📤 Output Schemas

#### 1. Property Listing (`itemType: "property"`) — 33+ Fields

```json
{
  "itemType": "property",
  "property_id": "7407816286",
  "listing_id": "224427448",
  "listing_key": "",
  "status": "for_sale",
  "list_price": 2875000,
  "price_per_sqft": 683,
  "days_on_market": 1,
  "address_line": "3904 Bonnell Dr",
  "address_city": "Austin",
  "address_state_code": "TX",
  "address_postal_code": "78731",
  "county_name": "Travis",
  "beds": 4,
  "baths_consolidated": "3.0",
  "sqft": 4210,
  "lot_sqft": 30078,
  "year_built": 1995,
  "property_type": "single_family",
  "description_text": "Stunning single family home located in the desirable Austin area...",
  "primary_agent_name": "Lilea Enriquez",
  "primary_agent_phone": "(512) 701-5164",
  "primary_agent_email": "lileaenriquez@exp.com",
  "primary_office_name": "eXp Realty LLC",
  "latest_tax_amount": 46000,
  "hoa_fee": 350,
  "assigned_schools": [
    { "name": "Austin Elementary School", "rating": 9, "distance_miles": 1.2 }
  ],
  "photo_urls": [
    "https://ap.rdcpix.com/abc123rd-w1280_h960.jpg",
    "https://ap.rdcpix.com/def456rd-w1280_h960.jpg"
  ],
  "tags": ["central_air", "garage_2_or_more", "hardwood_floors", "fenced_yard"],
  "href": "https://www.realtor.com/realestateandhomes-detail/3904-Bonnell-Dr_Austin_TX_78731_M74078-16286"
}
```

#### 2. Agent Record (`itemType: "agent"`)

```json
{
  "itemType": "agent",
  "fullname": "Donna Scoggins",
  "broker_name": "Scoggins Realty, LLC",
  "office_name": "Scoggins Realty, LLC",
  "license_state": "TX",
  "license_number": ["0409279"],
  "experience_first_year": "1990",
  "experience_label": "34+ years of experience",
  "designations": ["GRI", "ABR", "e-PRO", "PSA", "TRLS", "TRPM"],
  "office_city": "Austin",
  "office_state_code": "TX",
  "office_postal_code": "78717",
  "office_address_line_1": "16238 RR 620",
  "served_areas": ["Austin, TX", "Round Rock, TX", "Leander, TX", "Cedar Park, TX"],
  "average_rating": 5.0,
  "reviews_count": 86,
  "recommendations_count": 94,
  "specializations": ["Residential", "Relocation", "Buyer Representation", "Farm & Ranch"],
  "bio": "Broker/Owner of Scoggins Realty, LLC...",
  "href": "https://www.realtor.com/realestateagents/donna-scoggins_austin_tx_409279",
  "scrapedAt": "2026-10-16T12:00:00Z"
}
```

#### 3. Additional Popularity Stats (when `additionalStats: true`)

```json
{
  "additionalStats": {
    "popularity": {
      "periods": [
        { "last_n_days": 1,  "saves_total": 2, "views_total": 1240 },
        { "last_n_days": 7,  "saves_total": 6, "views_total": 5890, "ldp_views_total": 120 },
        { "last_n_days": 30, "saves_total": 22, "views_total": 23450, "ldp_views_total": 380 }
      ]
    }
  }
}
```

***

### 📚 Full Input & Output Examples

#### 🔹 Example 1 — Instant Agent Database (Texas Agents)

**Input:**

```json
{
  "dbState": "TX",
  "dbCity": "Austin",
  "maxItems": 50
}
```

**Output:** Array of `agent` records with real license numbers, brokerages, phone numbers, and verified emails.

***

#### 🔹 Example 2 — Instant Agent Database (Compass Only)

**Input:**

```json
{
  "dbState": "CA",
  "dbBrokerage": "Compass",
  "maxItems": 20
}
```

**Output:** Compass-affiliated verified agents in California.

***

#### 🔹 Example 3 — Live Scrape Search Listings (Austin, TX)

**Input:**

```json
{
  "startUrls": [
    { "url": "https://www.realtor.com/realestateandhomes-search/Austin_TX" }
  ],
  "maxItems": 100,
  "additionalStats": true
}
```

**Output:** Array of 100+ properties with full 33-field records including popularity stats.

***

#### 🔹 Example 4 — Property Detail Scrape

**Input:**

```json
{
  "startUrls": [
    { "url": "https://www.realtor.com/realestateandhomes-detail/3904-Bonnell-Dr_Austin_TX_78731_M74078-16286" }
  ],
  "maxItems": 1
}
```

**Output:** Single complete property record.

***

#### 🔹 Example 5 — Multi-City Batch Scrape

**Input:**

```json
{
  "startUrls": [
    { "url": "https://www.realtor.com/realestateandhomes-search/Miami_FL" },
    { "url": "https://www.realtor.com/realestateandhomes-search/New-York_NY" },
    { "url": "https://www.realtor.com/realestateandhomes-search/Chicago_IL" }
  ],
  "maxItems": 150
}
```

**Output:** 150 properties distributed across Miami, New York, and Chicago.

***

#### 🔹 Example 6 — Search Agents by Zip Code

**Input:**

```json
{
  "agentZipCodes": ["78701", "90210", "33139"],
  "maxItems": 30
}
```

**Output:** Agent records for those zip codes.

***

#### 🔹 Example 7 — Monitoring Mode (Only New Listings)

**Input:**

```json
{
  "startUrls": [
    { "url": "https://www.realtor.com/realestateandhomes-search/Austin_TX" }
  ],
  "monitoringMode": true,
  "maxItems": 200
}
```

Only listings not seen in previous runs are pushed.

***

#### 🔹 Example 8 — Shortlink Resolution

**Input:**

```json
{
  "startUrls": [
    { "url": "https://apps.realtor.com/mUAZ/wvdkz0vp" }
  ],
  "maxItems": 5
}
```

The actor resolves the shortlink and scrapes the underlying property.

***

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

Only charged for **successfully delivered items**. Empty runs are **$0** (except actor start).

| Event | Event Name | Price / 1K | When Charged |
|-------|------------|------------|--------------|
| **Property Listing** | `property-scraped` | **$2.00 / 1,000** | Per property delivered. |
| **Agent Record** | `agent-delivered` | **$3.00 / 1,000** | Per agent delivered. |
| **Additional Popularity Stats** | `additional-stats` | **$1.00 / 1,000** | Per property enriched with stats. |
| **Actor Start** | `apify-actor-start` | **$0.02 / run** | One-time startup fee. |

**Example costs:**

- **100 properties** = 100 × $0.002 = **$0.20** + $0.02 start = **$0.22**
- **500 agents** = 500 × $0.003 = **$1.50** + $0.02 start = **$1.52**
- **200 properties + additionalStats** = (200 × $0.002) + (200 × $0.001) = **$0.60** + $0.02 = **$0.62**

***

### 🛠 How to Use This Realtor.com Scraper on Apify

1. **Create a task** with this actor.
2. **Choose your mode** — Instant Agent Database (`dbState`) or Live Scraping (`startUrls`).
3. **Configure options** — additionalStats, monitoringMode, maxItems.
4. **Enable residential proxies** — recommended for high-volume runs.
5. **Run** — data lands in the Dataset.
6. **Export** — download as JSON, CSV, or Excel.

#### Running via API

```bash
curl -X POST "https://api.apify.com/v2/acts/your-username~realtor-scraper/runs" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
    "startUrls": [{"url": "https://www.realtor.com/realestateandhomes-search/Austin_TX"}],
    "maxItems": 100,
    "additionalStats": true
  }'
```

***

### 🎯 Use Cases (Who Uses This Realtor.com Scraper)

- **Real estate investors** — analyze price trends and identify deals.
- **Agents & brokers** — build lead lists with direct contact information.
- **Market researchers** — benchmark pricing across cities and neighborhoods.
- **PropTech startups** — enrich property valuation and AVM models.
- **Data scientists** — build real estate training datasets for AI.
- **Lead generation agencies** — build targeted agent + property lists.
- **Property managers** — monitor competitor listings and rents.
- **Mortgage & lending companies** — enrich borrower applications.
- **Real estate educators & coaches** — teach data-driven investing.
- **Journalists & analysts** — publish data-driven real estate stories.

***

### ❓ Frequently Asked Questions

**1. Do I need a Realtor.com account?**\
No. The actor works fully anonymously — no login, no cookie, no API key.

**2. What's the difference between the two modes?**\
**Instant Agent DB** returns verified agents nationwide by state/city/brokerage. **Live Scraping** returns live property listings from search URLs, detail pages, agent pages, etc.

**3. Are the property records real?**\
Yes. All property records are sourced from Realtor.com's live public API and MLS-listed data.

**4. What's `additionalStats`?**\
When enabled, the actor appends saves, views, and LDP views data across 1-day, 7-day, and 30-day windows — great for gauging market interest.

**5. Why does the actor include a valid agent name & phone in every property?**\
Because every genuine MLS listing is associated with a listing agent. The actor maps real, verified agent contacts to each property record.

**6. What URLs are supported?**

- `/realestateandhomes-search/` (search)
- `/realestateandhomes-detail/` (property detail)
- `/realestateagents/` (agent search/detail)
- `/rentals/details/` (rental detail)
- `/community-detail/` (community)
- `apps.realtor.com/...` (shortlinks)

**7. What's monitoring mode?**\
Tracks seen property/agent keys across runs. Only new items are pushed — perfect for scheduled monitoring.

**8. Do I need a proxy?**\
Not for small runs. For 500+ items per run, use Apify residential proxies.

**9. What if I get 0 results?**\
Empty runs cost $0 for PPE (only the actor start fee applies).

**10. Can I filter agents by brokerage?**\
Yes. Use `dbBrokerage` in the input (e.g. `"Compass"`, `"Keller Williams"`, `"RE/MAX"`).

**11. Can I run this on a schedule?**\
Yes. Combine with Apify Scheduler + `monitoringMode: true` for a live real-estate feed.

**12. Can I scrape rentals?**\
Yes. Pass a rental detail URL to `startUrls`.

***

### 📝 Technical Notes

- Built with a production-grade HTTP pipeline optimized for Realtor.com's modern Angular + API hybrid architecture.
- Handles anonymous access, optional proxy configuration, and payload integrity automatically.
- Uses Realtor.com's live Move AWS Suggest API (`parser-external.geo.moveaws.com/suggest`) for resolving addresses and property IDs.
- Uses Redfin's public GIS API as a secondary MLS listing source for maximum reliability.
- Runs entirely server-side on Apify — no local setup required.
- **Empty runs (0 results) are always free** (no PPE charges). You only pay for successfully delivered records.
- **Robust error handling:** a single item failure never stops the run. Failures are logged and skipped.
- **Duplicate protection:** property and agent keys are deduplicated automatically.
- **Monitoring state** and per-run summaries are stored in Apify Key-Value Store for scheduled monitoring.
- **Multi-URL support** with fair budget distribution across all provided targets.
- **Shortlink resolution** via HTTP HEAD, then GET fallback.
- All records are validated for JSON-serializable output and sanitized for special characters.

***

### 🔗 Related Actors

- **[HiringCafe Scraper — Real-Time Jobs & Salaries](https://apify.com/your-username/hiringcafe-scraper)**
- **[Glassdoor Scraper — Reviews, Jobs, Salaries & AI Insights](https://apify.com/your-username/glassdoor-scraper)**
- **[RedNote Scraper — Xiaohongshu Posts, Comments, Profiles & Video](https://apify.com/your-username/rednote-scraper)**
- **[LinkedIn Jobs Scraper — Ratings, Pros & Cons](https://apify.com/your-username/linkedin-jobs-scraper)**

***

### 🔥 SEO Keywords (Why This Realtor Scraper Ranks)

This actor ranks for **realtor.com scraper**, **realtor scraper**, **realtor.com API**, **MLS data scraper**, **real estate listings scraper**, **property data extractor**, **real estate agent scraper**, **agent database scraper**, **realtor agent finder**, **US real estate data**, **real estate lead generation**, **property search scraper**, **realtor.com export tool**, **real estate market intelligence**, **agent contact extractor**, **realtor.com data API alternative**, **no login realtor scraper**, **apify realtor actor**, **property listing API**, **MLS listing extractor**, **real estate investor data**.

***

**Start scraping Realtor.com today — 200K+ agents + live MLS listings. Zero login required.**

````



# Actor input Schema

## `dbState` (type: `string`):

2-letter US State Code (e.g. TX, CA, FL, NY, IL, GA, NC, WA, AZ). Pulls instantly and uncapped from our 500,000+ Realtor.com agent database with zero scraping and zero blocks.
## `dbCity` (type: `string`):

Optional city filter for instant database mode (e.g. Austin, Miami, Los Angeles, Dallas, Houston, Chicago).
## `dbBrokerage` (type: `string`):

Optional brokerage or office name filter (e.g. eXp Realty, Keller Williams, Coldwell Banker, RE/MAX, Compass, Dale Sorensen).
## `startUrls` (type: `array`):

Realtor.com URLs to scrape live. Supports: (1) Property search result URLs (e.g. /realestateandhomes-search/Austin_TX), (2) Individual property detail URLs (/realestateandhomes-detail/...), (3) Community detail URLs (/community-detail/...), (4) Rental URLs (/rentals/details/...), (5) Property shortlinks (apps.realtor.com/...), and (6) Agent profiles or search URLs (/realestateagents/...).
## `agentZipCodes` (type: `array`):

List of 5-digit US ZIP codes (e.g. ["32963", "90210"]). The scraper will automatically construct and scrape Realtor.com agent search URLs for all agents in those areas.
## `maxItems` (type: `integer`):

Maximum number of property or agent records to output and charge for. Bounded to prevent unexpected costs.
## `maxConcurrency` (type: `integer`):

Maximum number of pages processed concurrently. Keeping this around 3-5 ensures stability and avoids memory bottlenecks.
## `minConcurrency` (type: `integer`):

Minimum concurrency level during scraping.
## `maxRequestRetries` (type: `integer`):

Number of retry attempts if a page request fails or is rate-limited.
## `additionalStats` (type: `boolean`):

When enabled, fetches detailed property popularity metrics (views, saves, and listing detail page views across 1, 7, 14, 21, 28, and 30-day periods).
## `monitoringMode` (type: `boolean`):

When enabled, tracks previously scraped properties in 'realtor-properties-kv-1' and agents in 'realtor-agents-kv-1'. Only NEW items will be output and charged on subsequent runs.
## `proxy` (type: `object`):

Residential proxies are recommended for scraping Realtor.com to bypass bot detection and georestrictions.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.realtor.com/realestateandhomes-search/Austin_TX/shw-nc-3d"
    }
  ],
  "maxItems": 100,
  "maxConcurrency": 5,
  "minConcurrency": 1,
  "maxRequestRetries": 3,
  "additionalStats": false,
  "monitoringMode": false,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
````

# Actor output Schema

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

Collection of extracted property listings with complete MLS details, verified agent contacts, tax, schools, and popularity stats.

# 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 = {
    "startUrls": [
        {
            "url": "https://www.realtor.com/realestateandhomes-search/Austin_TX/shw-nc-3d"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapepilot/realtor-com-scraper-listings-agents-200k-db").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 = { "startUrls": [{ "url": "https://www.realtor.com/realestateandhomes-search/Austin_TX/shw-nc-3d" }] }

# Run the Actor and wait for it to finish
run = client.actor("scrapepilot/realtor-com-scraper-listings-agents-200k-db").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 '{
  "startUrls": [
    {
      "url": "https://www.realtor.com/realestateandhomes-search/Austin_TX/shw-nc-3d"
    }
  ]
}' |
apify call scrapepilot/realtor-com-scraper-listings-agents-200k-db --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapepilot/realtor-com-scraper-listings-agents-200k-db"
        }
    }
}
```

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/zgZ6IdQIIAPtCVdIw/builds/IDc8qbdiCijxk0e7p/openapi.json
