# 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:** 3 total users, 0 monthly users, 96.4% 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/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

## 🏠 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(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 '{
  "locations": [
    "california",
    "texas",
    "florida"
  ],
  "startUrls": [],
  "maxAgents": 10
}' |
apify call scrapersdelight/fastexpert-agent-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapersdelight/fastexpert-agent-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/qyt7Pd5vgAVA1YPhh/builds/EJ9brl5F8XzThEXoK/openapi.json
