# FastExpert Real Estate Agent Scraper - Emails, Phones & Sales (`scrapersdelight/fastexpert-agent-scraper`) Actor

Scrape curated US real-estate agent leads from FastExpert by state or city: name, direct phone, email, brokerage, website, Zillow/social links, ratings, reviews and sold-transaction history. No login.

- **URL**: https://apify.com/scrapersdelight/fastexpert-agent-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Automation, Lead generation, Real estate
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$12.00 / 1,000 per agent returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## 🏠 FastExpert Real Estate Agent Scraper — Emails, Phones, Brokerage & Sales

**Export curated US real-estate agent leads from FastExpert — direct phone, email, brokerage, website, ratings, and sold-transaction history.**

> 🕒 Last updated: 2026-07-07 · 📊 25+ fields per agent · 🇺🇸 All 50 states + top cities · 🚫 No login or API key · ⚡ Plain HTTP, fast & cheap

Turn FastExpert's "top agents" directory into a clean, ready-to-use lead list in minutes. Search by **state or city**, and get back a flat JSON record per agent — **name, direct cell, brokerage email, brokerage, website, Zillow + social links, star rating, review count, and (optionally) their sold-transaction history**. Export to JSON, CSV, Excel, or Google Sheets, or pull it straight into your CRM via API.

Unlike phone-only realtor.com / Zillow agent scrapers, **FastExpert publishes the agent/brokerage email** — so each row ships as a contactable lead, not just a name and number.

---

### 📊 What you get — 25+ fields per agent

| Field | Example |
|---|---|
| 👤 `full_name` / `first_name` / `last_name` | `Josh Barker` |
| 📧 `email` | `clientcare@reddinghomes.com` |
| 📱 `cell_phone` | `(530) 296-8615` |
| ☎️ `office_phone` | `(619) 648-2140` |
| 🏢 `brokerage` | `Josh Barker Real Estate` |
| 🌐 `website` | `https://www.reddinghomes.com/` |
| 🔗 `zillow_url` / `facebook_url` / `linkedin_url` / `instagram_url` / `youtube_url` / `twitter_url` | social profiles |
| ⭐ `avg_rating` / `review_count` | `5` / `998` |
| 🏆 `agent_ranking` | `29` |
| 📍 `city` / `state` | `Redding` / `CA` |
| 🖼️ `photo_url` | headshot image URL |
| 🔗 `profile_url` | `https://www.fastexpert.com/agents/josh-barker-103618/` |
| 🏷️ `recent_sales` + `recent_sales_count` *(optional)* | sold-transaction history (address, city, price, date, side) |
| 💬 `reviews` *(optional)* | up to 50 reviews (author, rating, body, date) |

> ⚠️ **Honest note:** `email` is the agent/brokerage email **exactly as published on FastExpert** — no external email enrichment or guessing is performed. Most agents publish one; a few omit email or a secondary phone.

---

### 🎯 Who it's for

- 🏦 **Mortgage lenders & loan officers** — build agent referral-partner lists (one closed referral is worth thousands).
- 🧰 **Real-estate CRM / SaaS vendors** (kvCORE, Follow Up Boss, BoomTown-style) — agents are your ICP; prospect them at scale.
- 🎯 **Recruiters & brokerages** — target producing agents by market, rating, and sold volume.
- 📸 **Transaction coordinators, photographers, stagers, title & escrow** — reach active agents in your metro.
- 📊 **Market & competitor analysts** — map the top agents, brokerages, and rankings per city/state.

---

### ▶️ How to use it

1. Click **Try for free**.
2. Enter one or more **States or cities** as FastExpert slugs — e.g. `california`, `texas`, `houston-tx`, `miami-fl`. Leave empty to scrape **all states**.
3. *(Optional)* toggle **Include recent sold transactions** and/or **Include reviews**.
4. Set **Max agents** and click **Start**. Export from the **Dataset** tab (JSON, CSV, Excel, Google Sheets) or via API.

#### Input

| Field | What it does |
|---|---|
| `locations` | State/city slugs (`california`, `houston-tx`). Empty = all states from the index. |
| `startUrls` | Paste specific listing or agent-profile URLs to scrape directly. |
| `maxAgents` | Stop after this many agents (`0` = no limit). |
| `includeSales` | Attach the agent's sold-transaction history array. |
| `includeReviews` | Attach up to 50 review objects. |

#### Example

```json
{
  "locations": ["california", "texas", "florida"],
  "maxAgents": 500,
  "includeSales": false,
  "includeReviews": false
}
````

All agents in one city, with their sold history:

```json
{ "locations": ["houston-tx"], "includeSales": true }
```

#### Output — sample agent record

```json
{
  "agent_id": "103618",
  "full_name": "Josh Barker",
  "first_name": "Josh",
  "last_name": "Barker",
  "email": "clientcare@reddinghomes.com",
  "cell_phone": "(530) 296-8615",
  "office_phone": null,
  "brokerage": "Josh Barker Real Estate",
  "website": "https://www.reddinghomes.com/",
  "zillow_url": "https://www.zillow.com/profile/Josh%20Barker",
  "facebook_url": "https://www.facebook.com/joshbarkerrealestate/",
  "avg_rating": 5,
  "review_count": 998,
  "agent_ranking": 29,
  "city": "Redding",
  "state": "CA",
  "photo_url": "https://assets.fastexpert.com/fastexpert-users-profiles-photos/thumb/103618_1734022012_thumb_300.jpg",
  "profile_url": "https://www.fastexpert.com/agents/josh-barker-103618/",
  "scraped_at": "2026-07-07T00:00:00Z"
}
```

***

### ⚙️ How it works & limits

- **Source:** the actor reads FastExpert's public **"top agents"** listing and profile pages via plain HTTP — no browser, no login, no API key.
- **Curated, not exhaustive:** FastExpert lists curated *top* agents per market — this is a high-quality lead list, **not** every licensed agent in a state.
- **Contact coverage:** most agents publish an email + cell; some omit an email or a secondary office phone. Rows with **no** email, phone, or website at all are skipped.
- **Ratings/reviews** reflect FastExpert's own data.
- **Pagination** is automatic — the actor walks every result page per location until the listing ends.

***

### ❓ FAQ

**Is this legal?** The actor reads publicly available directory data that FastExpert publishes and Google indexes. You are responsible for complying with FastExpert's Terms of Service and with how you use contact data (e.g. CAN-SPAM, TCPA, GDPR/CCPA where applicable).

**Does it get email *and* phone?** Yes, when the agent publishes them on FastExpert. Email is the published agent/brokerage email — no external enrichment.

**Can I scrape all 50 states?** Yes — leave `locations` empty and it discovers and walks every state/city slug from the index. Use `maxAgents` to cap cost.

**How do I target one city?** Use the city slug, e.g. `houston-tx`, `miami-fl`, `seattle-wa`.

**Can I export to Excel or Google Sheets?** Yes — the dataset exports to JSON, CSV, Excel, or Google Sheets, or pull it via API.

**How much does it cost?** Pay-per-result — you pay per agent returned. A targeted city run stays small and cheap, and it's free to try.

### Notes & fair use

You are responsible for complying with FastExpert's Terms of Service. This actor reads publicly available agent directory listings.

# Actor input Schema

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

FastExpert location slugs, e.g. 'california', 'houston-tx', 'miami-fl'. Leave empty to scrape ALL states from the index.

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

Paste specific listing or agent-profile URLs to scrape directly.

## `maxAgents` (type: `integer`):

Stop after this many agents (0 = no limit).

## `includeSales` (type: `boolean`):

Attach the agent's sold-transaction history array (larger output).

## `includeReviews` (type: `boolean`):

Attach up to 50 review objects (rating, body, author, date).

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

Proxy settings. Uses Apify auto proxy by default (FastExpert serves the full contact block to datacenter-class IPs); the actor auto-escalates to RESIDENTIAL on a blocked retry.

## `requestConcurrency` (type: `integer`):

Max parallel profile requests. Higher = faster; keep modest to respect the site.

## Actor input object example

```json
{
  "locations": [
    "california",
    "texas",
    "florida"
  ],
  "startUrls": [],
  "maxAgents": 10,
  "includeSales": false,
  "includeReviews": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "requestConcurrency": 6
}
```

# Actor output Schema

## `records` (type: `string`):

The dataset of scraped FastExpert real-estate agents (one item per agent).

# 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": [
        "california",
        "texas",
        "florida"
    ],
    "startUrls": [],
    "maxAgents": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/fastexpert-agent-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": [
        "california",
        "texas",
        "florida",
    ],
    "startUrls": [],
    "maxAgents": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/fastexpert-agent-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": [
    "california",
    "texas",
    "florida"
  ],
  "startUrls": [],
  "maxAgents": 10
}' |
apify call scrapersdelight/fastexpert-agent-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FastExpert Real Estate Agent Scraper - Emails, Phones & Sales",
        "description": "Scrape curated US real-estate agent leads from FastExpert by state or city: name, direct phone, email, brokerage, website, Zillow/social links, ratings, reviews and sold-transaction history. No login.",
        "version": "0.1",
        "x-build-id": "EJ9brl5F8XzThEXoK"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapersdelight~fastexpert-agent-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapersdelight-fastexpert-agent-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/scrapersdelight~fastexpert-agent-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapersdelight-fastexpert-agent-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/scrapersdelight~fastexpert-agent-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapersdelight-fastexpert-agent-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",
                "properties": {
                    "locations": {
                        "title": "States or cities",
                        "type": "array",
                        "description": "FastExpert location slugs, e.g. 'california', 'houston-tx', 'miami-fl'. Leave empty to scrape ALL states from the index.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Start URLs (optional)",
                        "type": "array",
                        "description": "Paste specific listing or agent-profile URLs to scrape directly.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxAgents": {
                        "title": "Max agents",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many agents (0 = no limit)."
                    },
                    "includeSales": {
                        "title": "Include recent sold transactions",
                        "type": "boolean",
                        "description": "Attach the agent's sold-transaction history array (larger output).",
                        "default": false
                    },
                    "includeReviews": {
                        "title": "Include reviews",
                        "type": "boolean",
                        "description": "Attach up to 50 review objects (rating, body, author, date).",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Proxy settings. Uses Apify auto proxy by default (FastExpert serves the full contact block to datacenter-class IPs); the actor auto-escalates to RESIDENTIAL on a blocked retry.",
                        "default": {
                            "useApifyProxy": true
                        }
                    },
                    "requestConcurrency": {
                        "title": "Request concurrency",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "Max parallel profile requests. Higher = faster; keep modest to respect the site.",
                        "default": 6
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
