# Zoopla Agents Search Scraper (`powerai/zoopla-agents-search-scraper`)

Search and scrape real estate agents from Zoopla with advanced filtering and sorting options using our API wrapper service

- **URL**: https://beta-securitybyobscurity.apify.com/powerai/zoopla-agents-search-scraper.md
- **Developed by:** [PowerAI](https://beta-securitybyobscurity.apify.com/powerai) (community)
- **Categories:** Real estate, Lead generation, Other
- **Stats:** 7 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$9.99 / 1,000 results

This Actor is paid per result. You are not charged for the Apify platform usage, but only a fixed price for dataset items the Actor outputs.

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

# README

## Zoopla Agents Search Scraper

This actor searches for real estate agents on Zoopla using our API wrapper service to find property professionals based on various criteria.

### Features

- **Comprehensive Agent Search**: Search agents by location or company name
- **Multiple Agent Types**: Support for estate agents, letting agents, and commercial agents
- **Advanced Sorting**: Sort results by name, average price, or average age
- **Real-time Results**: Get instant agent listings from Zoopla
- **API Integration**: Uses our secure API wrapper service
- **Error Handling**: Comprehensive error handling and logging
- **Automatic Pagination**: Automatically fetches multiple pages to reach the requested number of results

### Input

The actor accepts the following input parameters:

#### Required Parameters

Either **location** OR **company\_name** must be provided:

- **location**: Location to search for agents (e.g., 'oxford')
- **company\_name**: Company name to search for (alternative to location)

#### Optional Parameters

- **maxResults**: Maximum number of agents to fetch
- **search\_type**: Type of agents to search for (estate-agents, letting-agents, commercial-agents)
- **agents\_sort**: Sort order for results (a\_z, lowest\_avg\_price, highest\_avg\_price, shortest\_avg\_age, longest\_avg\_age)
- **radius**: Search radius in miles
- **pn**: Page number (automatically handled by pagination)

### Output

The actor outputs each agent as an individual data item. Each agent contains:

```json
{
	"aweme_id": "v15044gf0000d0f6jtnog65t69t3dme0",
	"video_id": "7502551047378832671",
	"region": "US",
	"title": "\"find your joy in what's happening today\" 🥺❤️ @Torchy Swinson ",
	"cover": "https://p16-pu-sign-useast8.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oMAIAaioIfhIqwPEKePGeIUjUHALAANAA98QQp~tplv-tiktokx-cropcenter-q:300:400:q72.jpeg?dr=14782&refresh_token=9a81de7e&x-expires=1747270800&x-signature=uMBOSoUR1V94wdNXQatmkOMilFs%3D&t=bacd0480&ps=933b5bde&shp=d05b14bd&shcp=132edbea&idc=maliva&s=PUBLISH&sc=cover&biz_tag=tt_video",
	"ai_dynamic_cover": "https://p16-pu-sign-useast8.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oMAIAaioIfhIqwPEKePGeIUjUHALAANAA98QQp~tplv-tiktokx-origin.image?dr=1364&refresh_token=1128aed4&x-expires=1747270800&x-signature=nvWhc1YYcQNbmFpDCwNxZe%2BD0bk%3D&t=bacd0480&ps=4f5296ae&shp=d05b14bd&shcp=132edbea&idc=maliva&biz_tag=tt_video&s=PUBLISH&sc=dynamic_cover",
	"origin_cover": "https://p16-pu-sign-useast8.tiktokcdn-us.com/tos-useast8-p-0068-tx2/ogmBat2fQeVoFEA6Qno4RasDAEzEViBPZRHCQ6~tplv-tiktokx-360p.webp?dr=1363&refresh_token=e6451a3f&x-expires=1747270800&x-signature=i8x4vSiblQKAxusjPK7qZxFnGmc%3D&t=bacd0480&ps=d97f9a4f&shp=d05b14bd&shcp=132edbea&idc=maliva&sc=feed_cover&biz_tag=tt_video&s=PUBLISH",
	"duration": 58,
	"play": "https://v16m.tiktokcdn.com/4622c355b936c4a5b974ff0153c757d7/68253e97/video/tos/maliva/tos-maliva-ve-0068c799-us/oofoutR4ExDHRe7EZaFn2Q7pE4NPIAB6msgVZA/?a=1233&bti=M0BzMzU8OGYpNzo5Zi5wIzEuLjpkNDQwOg%3D%3D&ch=0&cr=13&dr=0&er=0&lr=all&net=0&cd=0%7C0%7C0%7C&cv=1&br=1960&bt=980&cs=0&ds=6&ft=4pTgzjjM9-px8Zq8ZmCM5y7EkcAlyBywNLrFDDo5Xmoag3&mime_type=video_mp4&qs=0&rc=N2Q7ZGdmNDk7NjU4Z2ZmN0BpM3A2PHc5cnc5MzMzaTczNEAvLmEwMDRiXzYxMzEyYC0vYSNiYXEzMmRrZ2NhLS1kMTJzcw%3D%3D&vvpl=1&l=20250514090740528ACCDE0257330263AA&btag=e00088000&cc=3",
	"wmplay": "https://v16m.tiktokcdn.com/e20fb37e1d1bf0e64a0c619e0181a72e/68253e97/video/tos/maliva/tos-maliva-ve-0068c799-us/okoQVI1eAAnlEZ6sRFfPmoDBgOHd4EEtSVR2g8/?a=1233&bti=M0BzMzU8OGYpNzo5Zi5wIzEuLjpkNDQwOg%3D%3D&ch=0&cr=13&dr=0&er=0&lr=all&net=0&cd=0%7C0%7C0%7C&cv=1&br=2016&bt=1008&cs=0&ds=3&ft=4pTgzjjM9-px8Zq8ZmCM5y7EkcAlyBywNLrFDDo5Xmoag3&mime_type=video_mp4&qs=0&rc=PGk3ZDk6NTw2ODs1Njk1M0BpM3A2PHc5cnc5MzMzaTczNEBiNC8vNl4uNS0xYjRiLl4xYSNiYXEzMmRrZ2NhLS1kMTJzcw%3D%3D&vvpl=1&l=20250514090740528ACCDE0257330263AA&btag=e00088000&cc=3",
	"size": 7307087,
	"wm_size": 7517478,
	"music": "https://sf19.tiktokcdn-us.com/obj/ies-music-tx2/7502556269832719135.mp3",
	"music_info": {
		"id": "7502556199716391711",
		"title": "original sound - tiktok",
		"play": "https://sf19.tiktokcdn-us.com/obj/ies-music-tx2/7502556269832719135.mp3",
		"cover": "https://p16-amd-va.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter-q:1080:1080:q75.webp?dr=10796&idc=maliva&ps=87d6e48a&s=PUBLISH&sc=avatar&shcp=132edbea&shp=45126217&t=223449c4",
		"author": "TikTok",
		"original": true,
		"duration": 58,
		"album": ""
	},
	"play_count": 1287045,
	"digg_count": 7611,
	"comment_count": 5358,
	"share_count": 754,
	"download_count": 77,
	"collect_count": 796,
	"create_time": 1746823813,
	"anchors": null,
	"anchors_extras": "",
	"is_ad": false,
	"commerce_info": {
		"adv_promotable": false,
		"auction_ad_invited": false,
		"branded_content_type": 0,
		"organic_log_extra": "{\"req_id\":\"20250514090740528ACCDE0257330263AA\"}",
		"with_comment_filter_words": false
	},
	"commercial_video_info": "",
	"item_comment_settings": 0,
	"mentioned_users": "6797898940689925126",
	"author": {
		"id": "107955",
		"unique_id": "tiktok",
		"nickname": "TikTok",
		"avatar": "https://p16-amd-va.tiktokcdn.com/tos-maliva-avt-0068/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter-q:300:300:q75.webp?dr=10793&idc=maliva&ps=87d6e48a&s=PUBLISH&sc=avatar&shcp=132edbea&shp=45126217&t=223449c4"
	},
	"is_top": 0,
	"scrapedAt": "2025-05-14T01:07:42.299Z"
}
```

### Usage

1. **Input Configuration**: Provide location or company name and search criteria
2. **Set Max Results**: Specify how many agents you want to fetch
3. **Run the Actor**: Execute the actor with your input
4. **Get Results**: Receive individual agent listings in the dataset

### Examples

#### Search by Location

```json
{
  "location": "oxford",
  "search_type": "estate-agents",
  "agents_sort": "a_z",
  "maxResults": 100
}
```

#### Search by Company Name

```json
{
  "company_name": "Foxtons",
  "search_type": "estate-agents",
  "maxResults": 50
}
```

#### Letting Agents Search

```json
{
  "location": "oxford",
  "search_type": "letting-agents",
  "agents_sort": "lowest_avg_price",
  "radius": 10,
  "maxResults": 75
}
```

#### Commercial Agents Search

```json
{
  "location": "oxford",
  "search_type": "commercial-agents",
  "agents_sort": "highest_avg_price",
  "maxResults": 25
}
```

### Agent Data Structure

Each agent listing includes:

#### Basic Information

- **displayName**: Agent company display name
- **description**: Agent company description
- **id**: Unique agent identifier
- **name**: Agent company name
- **uriName**: URL-friendly agent name
- **displayAddress**: Agent office address

#### Contact Information

- **contactNumber**: Agent contact phone number
- **logo**: Agent company logo information (height, width, URI)

#### Statistics

- **listingsStatistics.residential.forSale**: Statistics for residential properties for sale
  - **avgAskingPrice**: Average asking price
  - **avgWeeksOnMarket**: Average weeks on market
  - **availableListings**: Number of available listings
- **listingsStatistics.residential.toRent**: Statistics for residential properties to rent
- **listingsStatistics.commercial**: Statistics for commercial properties

#### Status

- **featured**: Whether the agent is featured
- **\_\_typename**: Type identifier

### Agent Types

#### Estate Agents

Specialize in buying and selling residential properties.

#### Letting Agents

Specialize in rental properties and property management.

#### Commercial Agents

Specialize in commercial properties, offices, and retail spaces.

### Support

For technical support or questions about this actor, please contact our support team.

# Actor input Schema

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

Location to search for agents (e.g., 'oxford', 'Greenwich, London')

## `company_name` (type: `string`):

Company name to search for (alternative to location)

## `search_type` (type: `string`):

Type of agents to search for

## `agents_sort` (type: `string`):

Sort order for agent results

## `radius` (type: `integer`):

Search radius in miles

## `maxResults` (type: `integer`):

Maximum number of agents to fetch (default: 50, max: 1000)

## Actor input object example

```json
{
  "location": "oxford",
  "search_type": "estate-agents",
  "agents_sort": "a_z",
  "maxResults": 25
}
```

# 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 = {};

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

# Run the Actor and wait for it to finish
run = client.actor("powerai/zoopla-agents-search-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 '{}' |
apify call powerai/zoopla-agents-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Zoopla Agents Search Scraper",
        "description": "Search and scrape real estate agents from Zoopla with advanced filtering and sorting options using our API wrapper service",
        "version": "0.0",
        "x-build-id": "aI9G5QKD139vaddni"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/powerai~zoopla-agents-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-powerai-zoopla-agents-search-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/powerai~zoopla-agents-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-powerai-zoopla-agents-search-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/powerai~zoopla-agents-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-powerai-zoopla-agents-search-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": {
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Location to search for agents (e.g., 'oxford', 'Greenwich, London')",
                        "default": "oxford"
                    },
                    "company_name": {
                        "title": "Company Name",
                        "type": "string",
                        "description": "Company name to search for (alternative to location)"
                    },
                    "search_type": {
                        "title": "Search Type",
                        "enum": [
                            "estate-agents",
                            "letting-agents",
                            "commercial-agents"
                        ],
                        "type": "string",
                        "description": "Type of agents to search for",
                        "default": "estate-agents"
                    },
                    "agents_sort": {
                        "title": "Sort Order",
                        "enum": [
                            "a_z",
                            "lowest_avg_price",
                            "highest_avg_price",
                            "shortest_avg_age",
                            "longest_avg_age"
                        ],
                        "type": "string",
                        "description": "Sort order for agent results",
                        "default": "a_z"
                    },
                    "radius": {
                        "title": "Search Radius",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Search radius in miles"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of agents to fetch (default: 50, max: 1000)",
                        "default": 25
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
