# Zoopla.co.uk Fast Scraper

Zoopla.co.uk: Scrape fast, stay light!

Skip bloated browser tools. My Zoopla scraper extracts property data in a flash, no heavy lifting is needed. Scrape/monitor listings with ease, all without Puppeteer or Playwright. ⚡️

## Actor Statistics

- Total users: 9
- Monthly users: 1
- Runs succeeded: 0.00%
- Categories: Automation

## Pricing

$30.00/month + usage

## Input Schema

- **urls** (type: array): Direct URLs to property search pages (rent, sale, etc.)
- **postcodes** (type: array): Valid UK postcodes (full or outcode)
- **sampleUrl** (type: string): Enter a URL demonstrating desired filters for postcode searches.
- **onlyNew** (type: boolean): Only retrieve data from properties listed since the last run after activation of this flag. The first startup with this flag will perform a full scan.
- **delisting** (type: boolean): Monitor properties that have become unavailable since the last run. ( Enabling this has impact on billing )
- **proxySettings** (type: object): Select proxies to be used by your scraper.

## API example

## Zoopla.co.uk Fast Scraper

- **OpenAPI Version:** `3.1.1`
- **API Version:** `0.0`

Zoopla.co.uk: Scrape fast, stay light!

Skip bloated browser tools. My Zoopla scraper extracts property data in a flash, no heavy lifting is needed. Scrape/monitor listings with ease, all without Puppeteer or Playwright. ⚡️

### Servers

- **URL:** `https://api.apify.com/v2`

### Operations

#### Executes an Actor, waits for its completion, and returns Actor's dataset items in response.

- **Method:** `POST`
- **Path:** `/acts/mantisus~zoopla-actor/run-sync-get-dataset-items`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`proxySettings` (required)**

  `object` — Select proxies to be used by your scraper.

- **`delisting`**

  `boolean`, default: `false` — Monitor properties that have become unavailable since the last run. ( Enabling this has impact on billing )

- **`onlyNew`**

  `boolean`, default: `false` — Only retrieve data from properties listed since the last run after activation of this flag. The first startup with this flag will perform a full scan.

- **`postcodes`**

  `array` — Valid UK postcodes (full or outcode)

  **Items:**

  `string`

- **`sampleUrl`**

  `string` — Enter a URL demonstrating desired filters for postcode searches.

- **`urls`**

  `array` — Direct URLs to property search pages (rent, sale, etc.)

  **Items:**

  `string`

**Example:**

```
{
  "urls": [
    ""
  ],
  "postcodes": [
    ""
  ],
  "sampleUrl": "",
  "onlyNew": false,
  "delisting": false,
  "proxySettings": {}
}
```

##### Responses

###### Status: 200 OK

#### Executes an Actor and returns information about the initiated run in response.

- **Method:** `POST`
- **Path:** `/acts/mantisus~zoopla-actor/runs`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`proxySettings` (required)**

  `object` — Select proxies to be used by your scraper.

- **`delisting`**

  `boolean`, default: `false` — Monitor properties that have become unavailable since the last run. ( Enabling this has impact on billing )

- **`onlyNew`**

  `boolean`, default: `false` — Only retrieve data from properties listed since the last run after activation of this flag. The first startup with this flag will perform a full scan.

- **`postcodes`**

  `array` — Valid UK postcodes (full or outcode)

  **Items:**

  `string`

- **`sampleUrl`**

  `string` — Enter a URL demonstrating desired filters for postcode searches.

- **`urls`**

  `array` — Direct URLs to property search pages (rent, sale, etc.)

  **Items:**

  `string`

**Example:**

```
{
  "urls": [
    ""
  ],
  "postcodes": [
    ""
  ],
  "sampleUrl": "",
  "onlyNew": false,
  "delisting": false,
  "proxySettings": {}
}
```

##### Responses

###### Status: 200 OK

\####### Content-Type: application/json

- **`data`**

  `object`

  - **`actId`**

    `string`

  - **`buildId`**

    `string`

  - **`buildNumber`**

    `string`

  - **`containerUrl`**

    `string`

  - **`defaultDatasetId`**

    `string`

  - **`defaultKeyValueStoreId`**

    `string`

  - **`defaultRequestQueueId`**

    `string`

  - **`finishedAt`**

    `string`, format: `date-time`

  - **`id`**

    `string`

  - **`meta`**

    `object`

    - **`origin`**

      `string`

    - **`userAgent`**

      `string`

  - **`options`**

    `object`

    - **`build`**

      `string`

    - **`diskMbytes`**

      `integer`

    - **`memoryMbytes`**

      `integer`

    - **`timeoutSecs`**

      `integer`

  - **`startedAt`**

    `string`, format: `date-time`

  - **`stats`**

    `object`

    - **`computeUnits`**

      `integer`

    - **`inputBodyLen`**

      `integer`

    - **`rebootCount`**

      `integer`

    - **`restartCount`**

      `integer`

    - **`resurrectCount`**

      `integer`

  - **`status`**

    `string`

  - **`usage`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `integer`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`usageTotalUsd`**

    `number`

  - **`usageUsd`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `number`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`userId`**

    `string`

**Example:**

```
{
  "data": {
    "id": "",
    "actId": "",
    "userId": "",
    "startedAt": "2025-01-08T00:00:00.000Z",
    "finishedAt": "2025-01-08T00:00:00.000Z",
    "status": "READY",
    "meta": {
      "origin": "API",
      "userAgent": ""
    },
    "stats": {
      "inputBodyLen": 2000,
      "rebootCount": 0,
      "restartCount": 0,
      "resurrectCount": 0,
      "computeUnits": 0
    },
    "options": {
      "build": "latest",
      "timeoutSecs": 300,
      "memoryMbytes": 1024,
      "diskMbytes": 2048
    },
    "buildId": "",
    "defaultKeyValueStoreId": "",
    "defaultDatasetId": "",
    "defaultRequestQueueId": "",
    "buildNumber": "1.0.0",
    "containerUrl": "",
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 1,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    },
    "usageTotalUsd": 0.00005,
    "usageUsd": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 0.00005,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    }
  }
}
```

#### Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.

- **Method:** `POST`
- **Path:** `/acts/mantisus~zoopla-actor/run-sync`
- **Tags:** Run Actor

##### Request Body

###### Content-Type: application/json

- **`proxySettings` (required)**

  `object` — Select proxies to be used by your scraper.

- **`delisting`**

  `boolean`, default: `false` — Monitor properties that have become unavailable since the last run. ( Enabling this has impact on billing )

- **`onlyNew`**

  `boolean`, default: `false` — Only retrieve data from properties listed since the last run after activation of this flag. The first startup with this flag will perform a full scan.

- **`postcodes`**

  `array` — Valid UK postcodes (full or outcode)

  **Items:**

  `string`

- **`sampleUrl`**

  `string` — Enter a URL demonstrating desired filters for postcode searches.

- **`urls`**

  `array` — Direct URLs to property search pages (rent, sale, etc.)

  **Items:**

  `string`

**Example:**

```
{
  "urls": [
    ""
  ],
  "postcodes": [
    ""
  ],
  "sampleUrl": "",
  "onlyNew": false,
  "delisting": false,
  "proxySettings": {}
}
```

##### Responses

###### Status: 200 OK

### Schemas

#### inputSchema

- **Type:**`object`

* **`proxySettings` (required)**

  `object` — Select proxies to be used by your scraper.

* **`delisting`**

  `boolean`, default: `false` — Monitor properties that have become unavailable since the last run. ( Enabling this has impact on billing )

* **`onlyNew`**

  `boolean`, default: `false` — Only retrieve data from properties listed since the last run after activation of this flag. The first startup with this flag will perform a full scan.

* **`postcodes`**

  `array` — Valid UK postcodes (full or outcode)

  **Items:**

  `string`

* **`sampleUrl`**

  `string` — Enter a URL demonstrating desired filters for postcode searches.

* **`urls`**

  `array` — Direct URLs to property search pages (rent, sale, etc.)

  **Items:**

  `string`

**Example:**

```
{
  "urls": [
    ""
  ],
  "postcodes": [
    ""
  ],
  "sampleUrl": "",
  "onlyNew": false,
  "delisting": false,
  "proxySettings": {}
}
```

#### runsResponseSchema

- **Type:**`object`

* **`data`**

  `object`

  - **`actId`**

    `string`

  - **`buildId`**

    `string`

  - **`buildNumber`**

    `string`

  - **`containerUrl`**

    `string`

  - **`defaultDatasetId`**

    `string`

  - **`defaultKeyValueStoreId`**

    `string`

  - **`defaultRequestQueueId`**

    `string`

  - **`finishedAt`**

    `string`, format: `date-time`

  - **`id`**

    `string`

  - **`meta`**

    `object`

    - **`origin`**

      `string`

    - **`userAgent`**

      `string`

  - **`options`**

    `object`

    - **`build`**

      `string`

    - **`diskMbytes`**

      `integer`

    - **`memoryMbytes`**

      `integer`

    - **`timeoutSecs`**

      `integer`

  - **`startedAt`**

    `string`, format: `date-time`

  - **`stats`**

    `object`

    - **`computeUnits`**

      `integer`

    - **`inputBodyLen`**

      `integer`

    - **`rebootCount`**

      `integer`

    - **`restartCount`**

      `integer`

    - **`resurrectCount`**

      `integer`

  - **`status`**

    `string`

  - **`usage`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `integer`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`usageTotalUsd`**

    `number`

  - **`usageUsd`**

    `object`

    - **`ACTOR_COMPUTE_UNITS`**

      `integer`

    - **`DATA_TRANSFER_EXTERNAL_GBYTES`**

      `integer`

    - **`DATA_TRANSFER_INTERNAL_GBYTES`**

      `integer`

    - **`DATASET_READS`**

      `integer`

    - **`DATASET_WRITES`**

      `integer`

    - **`KEY_VALUE_STORE_LISTS`**

      `integer`

    - **`KEY_VALUE_STORE_READS`**

      `integer`

    - **`KEY_VALUE_STORE_WRITES`**

      `number`

    - **`PROXY_RESIDENTIAL_TRANSFER_GBYTES`**

      `integer`

    - **`PROXY_SERPS`**

      `integer`

    - **`REQUEST_QUEUE_READS`**

      `integer`

    - **`REQUEST_QUEUE_WRITES`**

      `integer`

  - **`userId`**

    `string`

**Example:**

```
{
  "data": {
    "id": "",
    "actId": "",
    "userId": "",
    "startedAt": "2025-01-08T00:00:00.000Z",
    "finishedAt": "2025-01-08T00:00:00.000Z",
    "status": "READY",
    "meta": {
      "origin": "API",
      "userAgent": ""
    },
    "stats": {
      "inputBodyLen": 2000,
      "rebootCount": 0,
      "restartCount": 0,
      "resurrectCount": 0,
      "computeUnits": 0
    },
    "options": {
      "build": "latest",
      "timeoutSecs": 300,
      "memoryMbytes": 1024,
      "diskMbytes": 2048
    },
    "buildId": "",
    "defaultKeyValueStoreId": "",
    "defaultDatasetId": "",
    "defaultRequestQueueId": "",
    "buildNumber": "1.0.0",
    "containerUrl": "",
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 1,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    },
    "usageTotalUsd": 0.00005,
    "usageUsd": {
      "ACTOR_COMPUTE_UNITS": 0,
      "DATASET_READS": 0,
      "DATASET_WRITES": 0,
      "KEY_VALUE_STORE_READS": 0,
      "KEY_VALUE_STORE_WRITES": 0.00005,
      "KEY_VALUE_STORE_LISTS": 0,
      "REQUEST_QUEUE_READS": 0,
      "REQUEST_QUEUE_WRITES": 0,
      "DATA_TRANSFER_INTERNAL_GBYTES": 0,
      "DATA_TRANSFER_EXTERNAL_GBYTES": 0,
      "PROXY_RESIDENTIAL_TRANSFER_GBYTES": 0,
      "PROXY_SERPS": 0
    }
  }
}
```

### 🔍 What is Zoopla.co.uk Fast Scraper?

It is a fast and efficient scraper for extracting data from Zoopla.co.uk, allowing you to quickly retrieve data on thousands of real estate listings for sale or rent on Zoopla.co.uk. It allows you to retrieve data both from links copied from the site, and from a list of Postal Codes and a sample link containing the necessary filters.

### 📝 What fields you will get with this tool

||||
|:---:|:---:|:---:|
|Listing Id|URL|Title|
|Description|Address|Coordinates|
|Published On|Category|Section|
|Price|Features|Bedrooms|
|Bathrooms|Living Rooms|Property Type|
|Floor|Postal Code|Available From Date|
|Agent Name|Agent Postcode|Agent Phone|
|Agent Address|Price History|Highlights|
|Tags|Points of Interest|Transports|
|Images|NTS Info|Has EPC|

### ⬇️ Input

There are two main input options available.

1. Simply copy the search link from www.zoopla.co.uk with or without filters to retrieve the available publications

```json
{
    "urls": [
      "https://www.zoopla.co.uk/for-sale/property/nw2-2ds/?q=NW2+2DS&radius=0.25&results_sort=newest_listings&search_source=for-sale"
    ],
    "delisting": false,
    "onlyNew": false,
    "proxySettings": {
      "useApifyProxy": false
    }
}
```

2. Search the list of Postal Zip Codes using the template link placed under `sampleUrl` variable. Copy the search link from www.zoopla.co.uk that contains all necessary filters and fill in the list of Postal Codes to which you want to apply filters.

```json
{
    "postcodes": [
      "NW6",
      "NW12"
    ],
    "sampleUrl": "https://www.zoopla.co.uk/for-sale/flats/london/?q=London&results_sort=newest_listings&search_source=for-sale&added=7_days&property_sub_type=flats",
    "delisting": false,
    "onlyNew": false,
    "proxySettings": {
      "useApifyProxy": false
    }
}
```

This format is useful when you need to apply the same filters to multiple Postal Zip Codes, without having to manually copy from the site.

Other input values:

- `onlyNew` - if this flag is enabled, Actor will return only new postings. The first time you run Actor after setting this flag it will perform a full scan, each time you run it again you will receive only a delta of new postings.
- `delisting` - enabling this flag will allow you to determine if a listing has become unavailable on the site. The `delistingStatus` field will be populated in the results. Learn more in the **Delisting Tracking** section. The delisting option will not work correctly with the `onlyNew` flag enabled.
- `proxySettings` - stands for Apify's basic configuration for proxy usage, fully supported by the scraper.

### ⬆️ Output

Actor saves data to DataSet Apify, from there you can download the data in any format currently supported by Apify - JSON, CSV, XML, Excel, HTML Table, RSS or JSONL.

Sample

```json
  {
    "id": "66872407",
    "url": "https://www.zoopla.co.uk/for-sale/details/66872407/",
    "title": "5 bed terraced house for sale",
    "shortDescription": "5 bed terraced house for sale in Montpelier Grove, London NW5, selling for £2,300,000 from Dexters - Kentish Town & Camden. See property details on Zoopla or browse all our range of properties in Montpelier Grove, London NW5.",
    "description": "Located on one of Kentish Town's most desirable residential roads is this stunning family home. This property has five bedrooms, high ceilings and has lots of period features. The house has been with the family since 1984 and has a large east facing garden.<br><br>One of Kentish Town's most sought after roads, Montpelier Grove offers access to the busy shopping hubs of Kentish Town and Tufnell Park, as well as the green open spaces of Hampstead Heath.",
    "address": "9 Montpelier Grove, London NW5 2XD",
    "coordinates": {
      "latitude": 51.55308,
      "longitude": -0.13535
    },
    "publishedOn": "2024-03-14T17:09:53",
    "category": "residential",
    "section": "for-sale",
    "priceMin": 2300000,
    "priceMax": 2300000,
    "price": 2300000,
    "priceLabel": null,
    "alternativePrice": null,
    "alternativePriceLabel": null,
    "isAuction": false,
    "features": [
      "Five Bedrooms",
      "Large Garden",
      "Period Features",
      "Victorian House",
      "Freehold",
      "Cellar"
    ],
    "numBedrooms": 5,
    "numBathrooms": 2,
    "numLivingRooms": 1,
    "propertyType": "terraced",
    "chainFree": false,
    "hasEpc": true,
    "floor": null,
    "sizeSqFeet": "",
    "region": "London",
    "countryArea": "London",
    "postalCode": "NW5 2XD",
    "incode": "2XD",
    "outcode": "NW5",
    "postalArea": "NW",
    "furnishedState": null,
    "studentFriendly": false,
    "tenure": "Freehold",
    "availableFromDate": null,
    "agentName": "Dexters - Kentish Town & Camden",
    "agentPostcode": "NW5 2AA",
    "agentPhone": "020 7483 6390",
    "agentAddress": "274 Kentish Town Road, London",
    "priceHistory": {
      "firstPublished": {
        "firstPublishedDate": "2024-03-14T17:09:53",
        "priceLabel": "£2,450,000"
      },
      "lastSale": null,
      "priceChanges": [
        {
          "isMinorChange": false,
          "isPriceDrop": true,
          "isPriceIncrease": false,
          "percentageChangeLabel": "6.1",
          "priceChangeDate": "2024-03-29T15:02:39",
          "priceChangeLabel": "£150,000",
          "priceLabel": "£2,300,000"
        }
      ]
    },
    "highlights": null,
    "tags": [
      "Freehold"
    ],
    "pointsOfInterest": [
      {
        "title": "Eleanor Palmer Primary School",
        "distance_miles": 0.2,
        "latitude": 51.554367,
        "longitude": -0.139096
      },
      {
        "title": "Holloway School",
        "distance_miles": 0.3,
        "latitude": 51.553079,
        "longitude": -0.129354
      },
      {
        "title": "Tufnell Park",
        "distance_miles": 0.3,
        "latitude": 51.556667,
        "longitude": -0.137925
      },
      {
        "title": "Kentish Town",
        "distance_miles": 0.3,
        "latitude": 51.550036,
        "longitude": -0.139442
      }
    ],
    "transports": [
      {
        "title": "Kentish Town",
        "distance_miles": 0.3
      },
      {
        "title": "Kentish Town West",
        "distance_miles": 0.7
      },
      {
        "title": "Gospel Oak",
        "distance_miles": 0.7
      },
      {
        "title": "Upper Holloway",
        "distance_miles": 0.8
      },
      {
        "title": "Camden Road",
        "distance_miles": 0.8
      },
      {
        "title": "Caledonian Road",
        "distance_miles": 0.8
      },
      {
        "title": "Archway",
        "distance_miles": 0.9
      },
      {
        "title": "Holloway Road",
        "distance_miles": 1
      },
      {
        "title": "Savoy Pier",
        "distance_miles": 3.1
      },
      {
        "title": "Blackfriars Millennium Pier",
        "distance_miles": 3.2
      },
      {
        "title": "Embankment Pier",
        "distance_miles": 3.2
      }
    ],
    "images": [
      "https://lc.zoocdn.com/dbe2b5a2ec2f2fdfce9f26159bc413652f77587a.jpg",
      "https://lc.zoocdn.com/b1ce3f6197d9dc5045af53f150fdce8e2941ea85.jpg",
      "https://lc.zoocdn.com/7152363f22ca236a1bbf90ebbc85188c675d37be.jpg",
      "https://lc.zoocdn.com/f9b2b02fc18e91c23f0351dca7e8c117bad31b83.jpg",
      "https://lc.zoocdn.com/277bdc09e6f546737f613c432e37055b818086f9.jpg",
      "https://lc.zoocdn.com/5f9046b2abb2a7039697f575ef3ad35ee0495c63.jpg",
      "https://lc.zoocdn.com/bce4f7edb2b2a5f87e4df2d6fe1319698f2ea009.jpg",
      "https://lc.zoocdn.com/3d770163c2fb748aa82a1f3f3b51a06df4a8ab1c.jpg",
      "https://lc.zoocdn.com/e8e061d3e03c85dadf1022b60cf39da987466a46.jpg",
      "https://lc.zoocdn.com/22b91f5fc7ac308f5dfabad5b9bb86a4b262fcef.jpg",
      "https://lc.zoocdn.com/121469f945b875c61a382357905607c3d6f7aca0.jpg",
      "https://lc.zoocdn.com/b608c2646dc00ac3fcefd62a4f3172d5b979be04.jpg",
      "https://lc.zoocdn.com/18d2bb71d6c1fcad9576dd8f183dedf9e44bb34e.jpg",
      "https://lc.zoocdn.com/b742668e93a46a93cb8e640d89283d3f2f137bee.jpg"
    ],
    "ntsInfo": [
      {
        "title": "Tenure",
        "value": "Freehold"
      },
      {
        "title": "Council tax band",
        "value": "Not available"
      }
    ]
  }
```

### ❗Limitations.

Zoopla does not return more than 1000 results for a single search query. Use filters to ensure that your search queries are within this limit. Don't forget that you can use multiple links or Post Codes for your searches. The actor will make sure that there are no duplicate results so that you don't waste additional resources.

### ❌ Delisting Tracking.

This Actor supports tracking of publications that have become unavailable on the site. This functionality requires some important changes that you need to pay attention to.

The `delistingStatus` field will be filled in the results. `False` corresponds with listings that are available on the site, `True` corresponds with listings that have been delisted.

Once this flag is enabled, results will be saved to a [named DataSet](https://docs.apify.com/platform/storage/dataset) with the name format `zoopla-{Year}-{Month}-{Day}-{Hour}-{Minutes}-{Seconds}`.
Results will no longer be saved to the **Default** dataset.

Validation is implemented in the following way: the scraper will check the data from the DataSet obtained in the previous run and if the announcement available last time was not available in this run, all data corresponding to the announcement will be saved in the new dataset with `delistingStatus` `True`. For this reason, you shouldn't use the delisting flag together with `onlyNew`. The check is algorithmically optimized, but keep in mind that it requires a full proofreading of the data from the previous DataSet. Therefore, enabling this option will affect the prices that are displayed.

### ⁉️ Your feedback

I always strive for quality in my work. So if you have any technical comments on Zoopla.co.uk Fast Scraper or you just found a bug, please create an issue on the [Actor's Issues](https://console.apify.com/actors/FoNxu123guf6MstAe/issues) tab in Apify Console.
