# Zoopla Agents Scraper 🏢👨‍💼👩‍💼 (`scrapestorm/zoopla-agents-scraper`) Actor

Unlock the power of Zoopla with automated agent profile scraping – effortlessly gather key insights and data on property agents, with the ability to customize your advanced queries! 🏠👨‍💼📈🔍💻🚀👩‍💼
No proxy required!

- **URL**: https://apify.com/scrapestorm/zoopla-agents-scraper.md
- **Developed by:** [Storm\_Scraper](https://apify.com/scrapestorm) (community)
- **Categories:** Jobs, Lead generation, Real estate
- **Stats:** 27 total users, 0 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

$15.99/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Zoopla Find Agents Scraper 🇬🇧🏠

🚀 **The Zoopla Find Agents Scraper** is a fast and customizable tool designed to extract detailed information about estate agents and agency branches listed on Zoopla. 🏡📊

Simply provide one or more **Zoopla Find Agents directory URLs**, and the scraper will collect valuable information about each agency, including its name, address, description, property statistics, profile links, and more.

[Zoopla](https://www.zoopla.co.uk/?utm_source=chatgpt.com) is one of the UK's leading property platforms, making this actor useful for real estate professionals, lead generation, market research, property analysts, and businesses looking to build targeted agency databases. 🇬🇧📈

### 📊 What You Can Extract

The Zoopla Find Agents Scraper can retrieve:

```
Branch ID 🆔
Agent / Branch Name 🏢
Address 📍
Description 📝
Featured Status ⭐
Average Listing Time ⏱️
Average Asking Price 💷
Currently For Sale 🏠
Logo URL 🖼️
Branch Page URL 🌐
Contact / Valuation URL 📞
Source Search URL 🔗
Scraped At 📅
```

Each result is stored in the Apify dataset and can be downloaded in multiple formats, including **JSON, CSV, XML, RSS, and HTML table**.

### ✨ Key Features

- 🔎 Extract estate agents from Zoopla's **Find Agents** directory
- 🌍 Support multiple Zoopla search URLs in a single run
- 🏢 Collect detailed information for each agency branch
- 📊 Extract property-related statistics such as average asking price and listing time
- 🔢 Control the maximum number of agents to scrape
- 🔗 Retrieve branch, contact, and source URLs
- 🖼️ Extract agency logo URLs
- 🇬🇧 Residential proxy support with **GB proxy recommended**
- 📥 Export results in JSON, CSV, XML, RSS, or HTML Table

### 🛠️ How to Use

#### 1. Enter Search URLs

Provide one or more Zoopla **Find Agents** directory URLs.

Example:

```
{
  "urls": [
    "https://www.zoopla.co.uk/find-agents/estate-agents/london/",
    "https://www.zoopla.co.uk/find-agents/estate-agents/manchester/"
  ],
  "maxitems": 50
}
```

You can add as many Find Agents URLs as needed. The `maxitems` parameter controls the **total number of agents to scrape across all provided URLs**.

#### 2. Configure the Proxy

A **RESIDENTIAL proxy** is recommended for Zoopla, preferably using a **GB (United Kingdom) proxy location**.

Default configuration:

```
{
  "useApifyProxy": true,
  "apifyProxyGroups": ["RESIDENTIAL"],
  "apifyProxyCountry": "GB"
}
```

Using a GB residential proxy can help ensure that requests are made from an appropriate geographic location for Zoopla.

#### 3. Start Scraping

Click **Start** to launch the actor.

The scraper will visit the provided Zoopla Find Agents directory pages, extract the available agency information, and store the results in the Apify dataset.

#### 4. Download Your Data

Once the run is complete, you can download your results in your preferred format:

- JSON
- CSV
- XML
- RSS
- HTML Table

### ⚠️ No Data Available

If no agents are found for the provided Zoopla search URLs, the scraper will return an **empty dataset**.

The number of results may also vary depending on the availability of agents and listings on Zoopla at the time of scraping.

### 💷 Pricing

This scraper operates on a **pay-per-month basis** at a cost of **$15.99/month**.

### 🔑 Input Configuration

The Zoopla Find Agents Scraper requires a list of Zoopla Find Agents directory URLs.

#### Input Schema

```
{
  "urls": [
    "https://www.zoopla.co.uk/find-agents/estate-agents/london/"
  ],
  "maxitems": 50,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}
```

#### Input Parameters

| Parameter  | Type    | Description                                | Default                |
| ---------- | ------- | ------------------------------------------ | ---------------------- |
| `urls`     | Array   | One or more Zoopla Find Agents search URLs | London Find Agents URL |
| `maxitems` | Integer | Maximum total number of agents to scrape   | `50`                   |
| `proxy`    | Object  | Apify proxy configuration                  | GB Residential         |

### 📊 Data Output

For each Zoopla agent or branch, the scraper can extract the following information:

```
{
  "branch_id": "12345",
  "name": "Example Estate Agents",
  "address": "London, UK",
  "description": "Estate and letting agents...",
  "featured": true,
  "avg_listing_time": "42 days",
  "avg_asking_price": "£625,000",
  "currently_for_sale": "35 properties",
  "logo_url": "https://...",
  "branch_url": "https://www.zoopla.co.uk/find-agents/branch/...",
  "contact_url": "https://www.zoopla.co.uk/...",
  "source_url": "https://www.zoopla.co.uk/find-agents/estate-agents/london/",
  "scraped_at": "2026-08-11T10:30:00Z"
}
```

#### Output Fields

- **`branch_id`** — Unique identifier of the agency branch
- **`name`** — Estate agent or branch name
- **`address`** — Agency branch address
- **`description`** — Description displayed on Zoopla
- **`featured`** — Whether the branch is marked as featured
- **`avg_listing_time`** — Average time properties remain listed
- **`avg_asking_price`** — Average asking price of properties
- **`currently_for_sale`** — Number or information about properties currently for sale
- **`logo_url`** — Agency logo image URL
- **`branch_url`** — Zoopla branch/profile page
- **`contact_url`** — Contact or valuation page
- **`source_url`** — Original Zoopla search URL
- **`scraped_at`** — Timestamp of the scraping operation

### 📍 Supported Searches

You can use any supported Zoopla **Find Agents** directory URL, for example:

```
London
Manchester
Birmingham
Liverpool
Leeds
Bristol
Nottingham
Sheffield
Edinburgh
Glasgow
```

You can also provide multiple locations in the same run to build larger UK estate-agent datasets.

### 🔗 Related Actors

If you're interested in other real estate and property scraping solutions, check out these related actors:

- **Zillow – Find a Real Estate Agent** 🏡
- **Zillow – Find a Home Improvement Agent** 🛠️
- **Airbnb Reviews Scraper – Fast & Cheap** 📈
- **Airbnb Scraper – Fast & Cheap – Rental** 🏠

***

### 🚀 Build Your UK Estate Agent Database

The **Zoopla Find Agents Scraper** is ideal for:

- 🏢 Real estate agencies
- 📈 Property market research
- 🎯 Lead generation
- 🏠 Property management businesses
- 💼 Real estate professionals
- 📊 Market analysis
- 🤝 B2B prospecting
- 🔍 Competitor research

Simply provide your Zoopla Find Agents URLs, select the number of results you need, and let the scraper handle the extraction automatically.

# Actor input Schema

## `urls` (type: `array`):

One or more Zoopla "find-agents" directory URLs.

Examples:
• https://www.zoopla.co.uk/find-agents/estate-agents/london/
• https://www.zoopla.co.uk/find-agents/estate-agents/manchester/

## `maxitems` (type: `integer`):

Total number of agents to scrape, shared across all the URLs above.

## `proxy` (type: `object`):

RESIDENTIAL proxy required (GB recommended for zoopla.co.uk).

## Actor input object example

```json
{
  "urls": [
    "https://www.zoopla.co.uk/find-agents/estate-agents/london/"
  ],
  "maxitems": 50,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "urls": [
        "https://www.zoopla.co.uk/find-agents/estate-agents/london/"
    ],
    "maxitems": 50,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "GB"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapestorm/zoopla-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 = {
    "urls": ["https://www.zoopla.co.uk/find-agents/estate-agents/london/"],
    "maxitems": 50,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "GB",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapestorm/zoopla-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 '{
  "urls": [
    "https://www.zoopla.co.uk/find-agents/estate-agents/london/"
  ],
  "maxitems": 50,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}' |
apify call scrapestorm/zoopla-agents-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapestorm/zoopla-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/DUR9QW8MchDpyDGM3/builds/pgCTIiWawof5OUWAY/openapi.json
