# 🇺🇸 Realtor.com Agents Scraper | Broker Directory (`misterkhan/realtor-agents-scraper`) Actor

Extract property listings from Realtor.com Agents & Brokers (realtor.com) across New York, Miami & Phoenix from $0.85/1k results — prices in USD, bedrooms, bathrooms, floor area, addresses, coordinates, photos & agent details.

- **URL**: https://apify.com/misterkhan/realtor-agents-scraper.md
- **Developed by:** [Khan](https://apify.com/misterkhan) (community)
- **Categories:** Real estate, AI, Automation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 90.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.85 / 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?

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

### What is Realtor.com Agents & Brokers Scraper?

Realtor.com Agents & Brokers Scraper is a real estate professional directory extraction tool built to collect structured agent, broker, and real estate team profiles from Realtor.com (`https://www.realtor.com/realestateagents/...`) across all 50 US states.

Provide any Realtor.com Agent Directory search URL (such as New York, Los Angeles, Miami, Chicago, Austin, Dallas, or Seattle) or direct agent profile URLs, and the Actor outputs clean, structured JSON/CSV datasets ready for brokerage recruitment, mortgage lender outreach, B2B PropTech sales, and regional market share analysis.

### What data can you extract from Realtor.com Agent Directories?

👤 **Agent & Profile Identity** — Unique profile record ID (`id`), Realtor.com agent directory slug or profile ID (`agent_id`), cleaned professional or directory name (`agent_name`), and full Realtor.com listing headline (`title`).<br>
🏢 **Brokerage & Professional Designation** — Affiliated real estate brokerage or office name (`brokerage`, `company`), professional designation (`role`), primary transaction specialization (`specialization`), and active directory status (`status`).<br>
📍 **Market Service Area & Geography** — Formatted service location (`location`), market address (`address`), primary city (`city`), two-letter US state code (`state`), ISO country code (`country`), market currency (`currency`), and source portal domain (`portal`).<br>
📝 **Bio Summary & Direct Links** — Professional bio and service coverage summary (`description`), direct Realtor.com profile URL (`url`, `profile_url`), originating directory search URL (`source_url`), and UTC extraction timestamp (`scraped_at`).

### Why use Realtor.com Agents & Brokers Scraper?

⚡ **Real-Time Dataset Streaming** — Agent and broker records are pushed to your Apify Dataset immediately as each profile is extracted, so you can preview and export results while the run is in progress.<br>
🧹 **Automatic Deduplication** — Built-in deduplication across `id`, `agent_id`, `url`, `agent_name`, and `title` guarantees zero duplicate profiles even when scraping overlapping city or ZIP code directories.<br>
🛡️ **Managed US Proxy Routing** — Automatically handles US geographic routing and session management out of the box without manual proxy configuration.<br>
📊 **CRM-Ready Schema** — Standardized flat JSON fields map directly into HubSpot, Salesforce, Pipedrive, Clay, Airtable, Google Sheets, and Snowflake without custom post-processing.

### How much does it cost to scrape Realtor.com Agents?

This Actor uses transparent **Pay-Per-Event (PPE)** pricing with **zero monthly subscription** — you only pay for the agent and broker records actually delivered to your dataset:

🆓 **Free Plan** — `$0.005` per result ($5.00 per 1,000 results)<br>
🥉 **Bronze Plan** — `$0.00135` per result ($1.35 per 1,000 results)<br>
🥈 **Silver Plan** — `$0.00095` per result ($0.95 per 1,000 results)<br>
🥇 **Gold Plan** — `$0.00085` per result ($0.85 per 1,000 results)

With the free Apify platform credits included on every account, you can test and extract Realtor.com agent directories at no upfront cost.

### How to scrape Realtor.com Agents & Brokers

1️⃣ **Open Realtor.com Agent Directory** — Visit `https://www.realtor.com/realestateagents/` and search for your target US city, county, or ZIP code (for example, `https://www.realtor.com/realestateagents/new-york_ny` or `https://www.realtor.com/realestateagents/miami_fl`).<br>
2️⃣ **Paste Start URLs** — Copy one or more directory or profile URLs into the `startUrls` input field.<br>
3️⃣ **Set Max Results** — Choose the maximum number of agent records to collect via `maxItems` (for example, 25, 100, or 1000).<br>
4️⃣ **Run & Export** — Click **Start** and download your dataset in JSON, CSV, Excel, Parquet, or XML format, or consume it directly via the Apify API.

### Input

Realtor.com Agents & Brokers Scraper accepts the following configuration parameters:

🔗 **Start URLs (`startUrls`)** — Array of Realtor.com Agent Directory search URLs (`https://www.realtor.com/realestateagents/<city>_<state>`) or individual agent profile URLs.<br>
🔢 **Max Results (`maxItems`)** — Maximum number of agent and broker profiles to extract across the run (1–10000, default 25).

Example input configuration:

```json
{
  "startUrls": [
    {
      "url": "https://www.realtor.com/realestateagents/new-york_ny"
    }
  ],
  "maxItems": 25
}
```

### Output sample

Each extracted Realtor.com agent or directory record is stored as a structured JSON object in your Apify Dataset:

```json
{
  "id": "New-York_NY",
  "agent_id": "New-York_NY",
  "agent_name": "Find Realtors & Real Estate Agents in New York, NY",
  "title": "Find Realtors & Real Estate Agents in New York, NY | realtor.com®",
  "brokerage": "NAR / Realtor.com Verified Brokerage",
  "company": "NAR / Realtor.com Verified Brokerage",
  "role": "Licensed Real Estate Agent & REALTOR®",
  "specialization": "Residential Buyer & Seller Representation",
  "status": "Active",
  "location": "New York, NY",
  "address": "New York, NY",
  "city": "New York",
  "state": "NY",
  "country": "US",
  "currency": "USD",
  "portal": "realtor.com",
  "description": "Find Realtors® & Real Estate agents in New York, NY that can help you with your real estate needs.",
  "url": "https://www.realtor.com/realestateagents/New-York_NY",
  "profile_url": "https://www.realtor.com/realestateagents/New-York_NY",
  "source_url": "https://www.realtor.com/realestateagents/new-york_ny",
  "scraped_at": "2026-10-29T08:02:32Z"
}
```

### Tips for getting the best results

🏙️ **Target City & Borough Directories** — Partition large states into city-level or borough-level URLs (new-york_ny, `brooklyn_ny`, `manhattan_ny`, `miami_fl`, `austin_tx`) to maximize local agent coverage.<br>
🔄 **Combine Multiple Metro URLs** — Pass multiple regional URLs inside `startUrls` in a single run; built-in deduplication automatically filters out agents who appear across neighboring suburbs.<br>
⏰ **Schedule Weekly Directory Refreshes** — Use Apify Schedules to track newly licensed REALTORS® and brokerage switches across your target metro markets.

### Use cases

🤝 **Brokerage Recruitment & Talent Acquisition** — Identify active residential agents and REALTORS® across target US cities to build recruiting pipelines.<br>
🏦 **Mortgage Lender & Title Company Partnerships** — Build regional referral partner lists for loan officers, title agencies, escrow firms, and home warranty providers.<br>
💼 **PropTech & Real Estate SaaS B2B Sales** — Populate outbound CRM campaigns for real estate CRM software, virtual staging, property photography, and lead generation platforms.<br>
📈 **Regional Brokerage Market Share Research** — Analyze brokerage presence and agent distribution across US metropolitan markets.

### Integrations and API usage

You can trigger Realtor.com Agents & Brokers Scraper programmatically via the official `apify-client` SDK in Node.js or Python, or connect it directly to Make, Zapier, n8n, Clay, Google Sheets, HubSpot, and webhooks.

**Node.js (`apify-client`)**

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

const run = await client.actor('misterkhan/realtor-agents-scraper').call({
    startUrls: [{ url: 'https://www.realtor.com/realestateagents/new-york_ny' }],
    maxItems: 25,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} Realtor.com agent profiles:`, items[0]);
```

**Python (`apify-client`)**

```python
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])

run = client.actor("misterkhan/realtor-agents-scraper").call(
    run_input={
        "startUrls": [{"url": "https://www.realtor.com/realestateagents/new-york_ny"}],
        "maxItems": 25,
    }
)

items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Extracted {len(items)} Realtor.com agent profiles:", items[0])
```

### Want to scrape more real estate & lead directories?

🏡 **[Realtor.com Property Scraper](https://apify.com/misterkhan/realtor-scraper)** — Extract residential for-sale, rental, and sold property listings across the United States and Canada from Realtor.com and Realtor.ca (From `$0.65` / 1K)<br>
🏠 **[Zillow Search Scraper](https://apify.com/misterkhan/zillow-scraper)** — Extract US homes for sale, rentals, sold prices, Zestimates, beds/baths, and coordinates (From `$0.90` / 1K)<br>
🇺🇸 **[ForSaleByOwner.com US FSBO Scraper](https://apify.com/misterkhan/forsalebyowner-us-scraper)** — Scrape direct commission-free US homeowner property listings and seller details (From `$0.75` / 1K)<br>
📍 **[Google Maps Places Scraper](https://apify.com/misterkhan/google-maps-scraper)** — Extract local brokerages, property managers, commercial businesses, phones, websites, and ratings (From `$0.55` / 1K)<br>
📧 **[Website Contact & Email Scraper](https://apify.com/misterkhan/contact-enricher-scraper)** — Crawl brokerage and company domains for verified business emails, phone numbers, and social links (From `$0.60` / 1K)

### FAQ

🎯 **Which Realtor.com URLs are supported?**<br>
You can pass any city or state agent directory URL (`https://www.realtor.com/realestateagents/<city>_<state>`) as well as direct Realtor.com agent profile URLs.

🔄 **Can I scrape multiple US cities in a single run?**<br>
Yes. Add as many city directory URLs as you need to `startUrls`, and the Actor will process them sequentially while deduplicating overlapping agent records.

📦 **In what formats can I export the extracted agent data?**<br>
All records are stored in your Apify Dataset and can be downloaded as JSON, CSV, Excel (.xlsx), Parquet, XML, or RSS, or fetched via REST API.

🔌 **Can I connect this Actor to HubSpot, Clay, Make, or n8n?**<br>
Yes. Use the native Apify integrations for Make, n8n, Zapier, Clay, Google Sheets, and webhooks to stream extracted agent records directly into your CRM or outreach workflow.

⚖️ **Is it legal to scrape public Realtor.com agent directories?**<br>
This Actor only extracts publicly accessible professional directory information published on the open web. Always ensure your downstream use complies with applicable data protection and outreach regulations.

### Your feedback

We continuously maintain and improve Realtor.com Agents & Brokers Scraper to keep pace with portal layout updates. If you encounter an issue, have a feature request, or need support for a specific directory filter, please open an issue on the **Issues** tab in Apify Console.

***

### Using 🤝 Realtor.com Agents & Brokers Scraper  — Input with AI Agents and Apify MCP

This Actor is optimized as an on-demand tool for AI developer assistants, Claude Desktop, Cursor, and autonomous agent workflows connected via the official Apify MCP Server (`https://mcp.apify.com`).

**Example prompts for Claude Desktop and Cursor:** <br>
• Extract property listings in Austin, TX and summarize pricing, bedrooms, and square meters. <br>
• Search the latest listings and identify high-yield investment opportunities. <br>
• Monitor new properties and compare square meter pricing. <br>

**Agent tool advantages:** <br>
• **Natural location input** — Pass simple city or region names (e.g. Austin, TX) without constructing portal URLs. <br>
• **Sub-second Rust streaming** — Returns live listings in 3 to 4 seconds to prevent agent tool-call timeouts. <br>
• **Context-protective JSON** — Clean, normalized fields designed to fit efficiently inside LLM prompt context windows. <br>
• **Pay-Per-Event pricing** — Only pay per extracted property listing with zero platform start fees. <br>

# Actor input Schema

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

US city, state, or ZIP code (e.g. 'Austin, TX', 'Miami, FL'). Optional when startUrls is provided.

## `startUrls` (type: `array`):

Paste one or more Realtor.com Agent Directory URLs (`https://www.realtor.com/realestateagents/<city>_<state>`) or individual agent profile URLs to extract.

## `maxItems` (type: `integer`):

Maximum number of agent and broker profiles to collect (`1`–`10000`, default `25`).

## Actor input object example

```json
{
  "location": "Austin, TX",
  "startUrls": [
    {
      "url": "https://www.realtor.com/realestateagents/new-york_ny"
    }
  ],
  "maxItems": 25
}
```

# Actor output Schema

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

All extracted property listings from Realtor.com Agents & Brokers (realtor.com).

## `usage_summary` (type: `string`):

Execution telemetry and extraction summary stored in the default key-value store.

# 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": "Austin, TX",
    "startUrls": [
        {
            "url": "https://www.realtor.com/realestateagents/new-york_ny"
        }
    ],
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("misterkhan/realtor-agents-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": "Austin, TX",
    "startUrls": [{ "url": "https://www.realtor.com/realestateagents/new-york_ny" }],
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("misterkhan/realtor-agents-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": "Austin, TX",
  "startUrls": [
    {
      "url": "https://www.realtor.com/realestateagents/new-york_ny"
    }
  ],
  "maxItems": 25
}' |
apify call misterkhan/realtor-agents-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,misterkhan/realtor-agents-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/giqmx5XeDYSni0XoG/builds/fZ4W98VbiPNttF1JY/openapi.json
