# Zoopla Urls (`hello.datawizards/zoopla-urls`) Actor

Zoopla-Urls Apify Actor: Easily extract key property details from Zoopla, including price, description, and agent info. Uses Apify proxies for reliable scraping. Ideal for real estate pros and data analysts. Simple: input URLs, run and Get started today!

- **URL**: https://apify.com/hello.datawizards/zoopla-urls.md
- **Developed by:** [datawizards](https://apify.com/hello.datawizards) (community)
- **Categories:** Real estate, Automation, Agents
- **Stats:** 4 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.005 / actor start

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?

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-Urls Apify Actor

Welcome to the **Zoopla-Urls** Apify Actor! This powerful tool is designed to extract detailed property information from Zoopla, one of the UK's top property websites. Ideal for real estate professionals, data analysts, or anyone needing property data, this actor simplifies scraping Zoopla listings with ease.

### Features

- **Comprehensive Property Data Extraction**: Extracts key details such as:
  - Listing ID
  - Title
  - Property type (e.g., flat, house)
  - Price
  - Description
  - Number of bedrooms and bathrooms
  - Address
  - Coordinates (latitude and longitude)
  - Features
  - Images
  - Agent name and contact number
- **Proxy Support**: Leverages Apify's proxy services for reliable, anonymous scraping.
- **Simple to Use**: Input a list of Zoopla property URLs, and let the actor do the work.
- **SEO-Optimized Output**: Structured data ready for integration into websites or applications.

### Input

The actor requires a JSON input with the following structure:

```json
{
  "urls": [
    "https://www.zoopla.co.uk/new-homes/details/70439341/?featured=1"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

- **`urls`**: An array of Zoopla property URLs to scrape.
- **`proxyConfiguration`**: Proxy settings for reliable scraping. Residential proxies are recommended.

### Output

The actor returns a JSON array with detailed property data for each URL. Example output:

```json
[
  {
    "Listing_Id": "70439341",
    "Title": "Newmarket Road, Teversham, Cambridge CB5, New home, 2 bed flat for sale, £97,500 - Zoopla",
    "Listing_Type": "flat",
    "Listing_Price": 97500,
    "Listing_Description": "A new 2 bed flat for sale in Newmarket Road, Teversham, Cambridge CB5, selling for £97,500 from L&Q - Marleigh. See property details on Zoopla or browse all our range of properties in Newmarket Road, Teversham, Cambridge CB5.",
    "Bedrooms": 2,
    "Bathrooms": null,
    "address": "Newmarket Road, Teversham, Cambridge CB5",
    "Coordinates": {
      "latitude": 52.211394,
      "longitude": 0.181133
    },
    "Listing_Features": [
      "Reserve a brand new Shared Ownership home between 1 - 30 June and receive £1,000 towards buying costs*!",
      "All homes are ready to move into now - book your appointment to view these homes in-person!",
      "Prices start from £97,500 for a 25% share. Full market value of £390,000",
      "Open-plan living/dining/kitchen area with integrated appliances",
      "Private patio area",
      "Bedroom one boasts an ensuite",
      "All homes will be finished to a fully inclusive specification and complete with private outdoor space and allocated parking",
      "Cycle to Cambridge North station in just over 10 minutes*",
      "Travel to London Kings Cross in 1 hour*"
    ],
    "Images": [
      "https://lc.zoocdn.com/9212f810dd73f4da0e07d5d7b2941ea5858b96d2.jpg",
      "https://lc.zoocdn.com/8cabca6991f4c7c1903099629e97ab8b59154bca.jpg",
      "https://lc.zoocdn.com/69f9024575ae57a6d5314cb1c71265b1f01832b3.jpg",
      "https://lc.zoocdn.com/4b17aac733c5b8b9efb894dd1106bcce154e88de.jpg",
      "https://lc.zoocdn.com/776a277cd4f4d0698024872a33358c47bb7a4125.jpg",
      "https://lc.zoocdn.com/4b268b7e0646d67578be5b983677606d4f09a661.jpg",
      "https://lc.zoocdn.com/05862c4cb1437c353e32d73c35545fed2aac259e.jpg",
      "https://lc.zoocdn.com/10e5c8a014c9f4c92625bb977dacf0da8a04d9a2.jpg",
      "https://lc.zoocdn.com/0da2868720f18a261f9c5ad3985b8b8f0f1eb53c.jpg",
      "https://lc.zoocdn.com/0fd8926d4379a4b66d5139b10adc98eade49a38a.jpg",
      "https://lc.zoocdn.com/6821ba845f6d41e31b5bb1ddaf834ef7c364643a.jpg",
      "https://lc.zoocdn.com/d9639a744aad2a7e7fb38aca8f740650a056ab75.jpg",
      "https://lc.zoocdn.com/d13b473aa5abab8500356f19e757c65b1f93af3b.jpg",
      "https://lc.zoocdn.com/679650ecbafada8e5db116f5b8cb40c625889857.jpg",
      "https://lc.zoocdn.com/c91093f70c7a98949e1af828dc25756dd0405769.jpg",
      "https://lc.zoocdn.com/c6c2d8ce2c485a7bbbfd5c95f5d5db2728759a7a.jpg",
      "https://lc.zoocdn.com/fcfedf383bb3c3ab1de5bb793debe6f54d3bb36a.jpg"
    ],
    "Agent_Name": "L&Q - Marleigh",
    "Agent_Contact_Number": "01223 801303"
  }
]
```

### Usage

Follow these steps to use the **Zoopla-Urls** Apify Actor:

1. **Sign Up**: Create an account on [Apify](https://apify.com/).
2. **Locate the Actor**: Find "Zoopla-Urls" in the Apify Store.
3. **Set Input**: Add your Zoopla property URLs in the JSON input.
4. **Run It**: Launch the actor and wait for processing.
5. **Download Data**: Retrieve the JSON output once complete.

### Configuration

- **Proxy Settings**: Uses Apify residential proxies by default to prevent blocks. Customize as needed.

### Examples

#### Input Example

```json
{
  "urls": [
    "https://www.zoopla.co.uk/new-homes/details/70439341/?featured=1",
    "https://www.zoopla.co.uk/for-sale/details/12345678"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

#### Output Example

```json
[
  {
    "Listing_Id": "70439341",
    "Title": "Newmarket Road, Teversham, Cambridge CB5, New home, 2 bed flat for sale, £97,500 - Zoopla",
    "Listing_Type": "flat",
    "Listing_Price": 97500,
    // ... other fields
  },
  {
    "Listing_Id": "12345678",
    "Title": "Another Property Title",
    // ... other fields
  }
]
```

### Support

For custom outputs, bug reports, or questions, email us at <hello.datawizard@gmail.com> with "Custom Support" in the subject line. Alternatively, report issues connect with us on [LinkedIn](https://linkedin.com/in/data-wizards-aa8080342).

Thank you for choosing the **Zoopla-Urls** Apify Actor!

# Actor input Schema

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

A list of URLs of the web pages you want to scrape data from.

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

Specifies proxy servers that will be used by the scraper in order to hide its origin.

## Actor input object example

```json
{
  "urls": [
    "https://www.remax.com/tx/san-antonio/home-details/7809-sandpiper-park-dr-san-antonio-tx-78249/9770276309152446781/M00000616/1844007"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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.remax.com/tx/san-antonio/home-details/7809-sandpiper-park-dr-san-antonio-tx-78249/9770276309152446781/M00000616/1844007"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("hello.datawizards/zoopla-urls").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.remax.com/tx/san-antonio/home-details/7809-sandpiper-park-dr-san-antonio-tx-78249/9770276309152446781/M00000616/1844007"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("hello.datawizards/zoopla-urls").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.remax.com/tx/san-antonio/home-details/7809-sandpiper-park-dr-san-antonio-tx-78249/9770276309152446781/M00000616/1844007"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call hello.datawizards/zoopla-urls --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hello.datawizards/zoopla-urls"
        }
    }
}

```

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/whX2ke3F7p329cMRt/builds/K67YjCZwzhjTp4s1P/openapi.json
