# Zillow Agent Scraper (`reefapi/zillow-agents-scraper`) Actor

Scrape Zillow real-estate agents as clean JSON — find agents by location with rating, review count and top-agent status, get a full agent profile (portfolio, sales, experience, reviews), or the listing agent for a property. Great for real-estate lead lists. No proxies, no CAPTCHAs, no login.

- **URL**: https://apify.com/reefapi/zillow-agents-scraper.md
- **Developed by:** [ReefAPI](https://apify.com/reefapi) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

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

## Zillow Agent Scraper — Real-Estate Agents, Profiles & Reviews as JSON

> 📮 **Need help, hit a problem, want a new feature, or a field that's missing from the output?** Email **support@reefapi.com** or open an issue on the **Issues** tab of this Actor — we reply fast and take feature requests seriously.

Scrape **Zillow real-estate agents** as clean, structured JSON. **Find agents by location** (with rating, review count and top-agent status), pull a **full agent profile** (portfolio of active + sold listings, all-time sales, experience, license, reviews), or get the **listing agent for a property**. Perfect for building real-estate agent directories and broker lead lists. **No proxies, no CAPTCHAs, no login** — just send a location and get the data.

### What is the Zillow Agent Scraper?

The Zillow Agent Scraper is a **Zillow agent data API** that turns Zillow's agent finder into a structured dataset. Send a city or ZIP and it returns the local agent directory — each agent's name, brokerage, star rating, review count, top-agent flag and profile URL. Give it a specific agent (by profile URL, zuid or username) and it returns that agent's full profile. Point it at a property (zpid) and it returns the **listing agent** attached to that home. It's the fastest way to **scrape Zillow agents** for recruiting, partnership outreach, market analysis and CRM enrichment — no manual copy-paste and no login.

### What can this Zillow Agent Scraper do?

- 🧭 **Agents by location** — the agent directory for any city / ZIP, with name, brokerage, rating, review count, top-agent flag and profile URL.
- 👤 **Agent profile** — one agent's full profile: rating, total reviews, all-time sales, years of experience, license, active & sold listings and recent reviews.
- 🏠 **Listing agent for a property** — the agent (and broker / MLS) attached to a given property (zpid).

### What data can I extract?

`agents_by_location` returns one record per agent. Key fields (from real output):

| Field | What it is |
|---|---|
| `name` | Agent or team name |
| `subtitle` | Brokerage / team affiliation |
| `encoded_zuid` | Zillow agent id (use it to pull the full **Agent profile**) |
| `profile_url` | Link to the agent's Zillow profile |
| `review_average` | Average star rating |
| `review_count_text` | Review count as shown on Zillow (e.g. `(3,115)`) |
| `is_top_agent` | Whether Zillow flags them a top agent |
| `tags` | Zillow finder tags (e.g. `TEAM`) |

The **Agent profile** action additionally returns all-time sales, years of experience, license info, active & sold listings and recent reviews for a single agent. **Listing agent for a property** returns the agent, broker and MLS attached to a zpid.

> Field availability can vary — not every agent publishes every field, and Zillow can change its directory layout. Core fields (name, brokerage, profile URL, rating, zuid) are present for real agents.

### How do I scrape Zillow agents?

1. Open the Actor and go to the **Input** tab.
2. Pick an **Action** — Agents by location, Agent profile, or Listing agent for a property.
3. Enter a **Location** (e.g. `Austin, TX`) for the directory, or an agent **profile URL / zuid / username** for a profile, or a property **zpid** for its listing agent.
4. Click **Start**, then download the results as **JSON, CSV or Excel** from the **Dataset** tab.

### Input

```json
{ "action": "agents_by_location", "location": "Austin, TX" }
````

- `location` — city / ZIP / neighborhood (agents\_by\_location).
- `profile_url` / `zuid` / `username` — target one agent for **Agent profile** (`zuid` comes from *Agents by location*).
- `zpid` — a property id, to get its **listing agent**.
- `params` — advanced JSON, merged into the request.

### Output

Real `agents_by_location` response (trimmed to one representative agent):

```json
{
  "name": "Eric Bramlett",
  "subtitle": "Bramlett Partners",
  "encoded_zuid": "X1-ZUz2ygtvdkcjd5_7sxq5",
  "profile_url": "https://www.zillow.com/profile/ericbramlett",
  "is_top_agent": false,
  "review_average": 5,
  "review_count_text": "(2,146)",
  "tags": [ { "tagType": "WARNING", "text": "TEAM" } ]
}
```

### Use cases

- **Real-estate agent leads** — build directories of agents by market, ranked by rating and review count.
- **Recruiting & partnerships** — find top-rated agents and teams by area for brokerage recruiting.
- **Listing enrichment** — attach the listing agent, broker and MLS id to each property in your dataset.
- **Competitor / market analysis** — measure agent volume, ratings and top-agent share by region.
- **CRM enrichment** — resolve an agent's profile, sales history and reviews from a name or zuid.

### FAQ

**Is there an official Zillow API?**
Zillow retired most of its public APIs, and there's no open endpoint for the agent finder. This Actor is the practical way to get Zillow agent data as structured JSON.

**Why scrape Zillow agents?**
Zillow's agent directory is one of the largest public sources of active real-estate agents, complete with ratings and review counts — valuable for recruiting, partnership outreach, market sizing and lead lists.

**How much does it cost?**
Billed on Apify's pay-as-you-go model, benchmarked to be competitive with other Zillow scrapers. See the **Pricing** section on this Actor's page for the current rate.

**Can I integrate it?**
Yes — run it from the Apify **API** or the **Python / Node.js clients**, and connect the output to **Make, Zapier, n8n, Google Sheets, webhooks** or your CRM via Apify integrations.

**Is it legal to scrape Zillow agents?**
This Actor reads public agent directory and profile pages (no login, no accounts). Agent listings are business/professional data, but they can include personal names — handle personal data responsibly and per GDPR/CCPA. Not legal advice.

***

Unofficial — not affiliated with Zillow. Public data only.

# Actor input Schema

## `action` (type: `string`):

Find agents in an area, get one agent's full profile, or the listing agent for a property.

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

City / ZIP / neighborhood to list agents for. e.g. 'Austin, TX'.

## `profile_url` (type: `string`):

A Zillow agent profile URL for the 'Agent profile' action. (Or pass zuid / username below.)

## `zuid` (type: `string`):

The agent's encoded\_zuid (returned by 'Agents by location') — an alternative to the profile URL.

## `username` (type: `string`):

The agent's Zillow username — another way to target 'Agent profile'.

## `zpid` (type: `string`):

A Zillow property id, to get its listing agent (the 'Listing agent for a property' action).

## `params` (type: `object`):

Any extra parameters as key/value JSON. Merged into the request.

## Actor input object example

```json
{
  "action": "agents_by_location",
  "location": "Austin, TX"
}
```

# Actor output Schema

## `agents` (type: `string`):

The Zillow agents scraped (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 = {
    "location": "Austin, TX"
};

// Run the Actor and wait for it to finish
const run = await client.actor("reefapi/zillow-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" }

# Run the Actor and wait for it to finish
run = client.actor("reefapi/zillow-agents-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 '{
  "location": "Austin, TX"
}' |
apify call reefapi/zillow-agents-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Zillow Agent Scraper",
        "description": "Scrape Zillow real-estate agents as clean JSON — find agents by location with rating, review count and top-agent status, get a full agent profile (portfolio, sales, experience, reviews), or the listing agent for a property. Great for real-estate lead lists. No proxies, no CAPTCHAs, no login.",
        "version": "0.1",
        "x-build-id": "jgXTm1FaC17b1rAS0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/reefapi~zillow-agents-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-reefapi-zillow-agents-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/reefapi~zillow-agents-scraper/runs": {
            "post": {
                "operationId": "runs-sync-reefapi-zillow-agents-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/reefapi~zillow-agents-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-reefapi-zillow-agents-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": {
                    "action": {
                        "title": "Action",
                        "enum": [
                            "agents_by_location",
                            "agent_profile",
                            "agent"
                        ],
                        "type": "string",
                        "description": "Find agents in an area, get one agent's full profile, or the listing agent for a property.",
                        "default": "agents_by_location"
                    },
                    "location": {
                        "title": "Location (agents_by_location)",
                        "type": "string",
                        "description": "City / ZIP / neighborhood to list agents for. e.g. 'Austin, TX'."
                    },
                    "profile_url": {
                        "title": "Agent profile URL (agent_profile)",
                        "type": "string",
                        "description": "A Zillow agent profile URL for the 'Agent profile' action. (Or pass zuid / username below.)"
                    },
                    "zuid": {
                        "title": "Agent zuid (agent_profile)",
                        "type": "string",
                        "description": "The agent's encoded_zuid (returned by 'Agents by location') — an alternative to the profile URL."
                    },
                    "username": {
                        "title": "Agent username (agent_profile)",
                        "type": "string",
                        "description": "The agent's Zillow username — another way to target 'Agent profile'."
                    },
                    "zpid": {
                        "title": "Property zpid (agent)",
                        "type": "string",
                        "description": "A Zillow property id, to get its listing agent (the 'Listing agent for a property' action)."
                    },
                    "params": {
                        "title": "Advanced parameters",
                        "type": "object",
                        "description": "Any extra parameters as key/value JSON. Merged into the request."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
