Zoopla Scraper avatar
Zoopla Scraper
Try for free

3 days trial then $30.00/month - No credit card required now

View all Actors
Zoopla Scraper

Zoopla Scraper

Try for free

3 days trial then $30.00/month - No credit card required now

Get extensive information from zoopla.co.uk for data on millions of properties. Scrape real estate opportunities, titles, prices, descriptions, amenities, images, features, nearby points of interest, and many more attributes in seconds. Specify any search term you want and use it with no limits.

Actor - Zoopla Scraper

Zoopla scraper

Since Zoopla doesn't provide a good and free API, this actor should help you to retrieve data from it.

The Zoopla data scraper supports the following features:

  • Get anything, filter by your needs - Retrieving any result is as easy as clicking a button. Filter your needs, create filters, ranges, or pick locations, and immediately harvest properties that are for sale, for rent or already sold.

  • Property data right away - Baths, amenities, tax history, price, beds, features, and many other information are ready for your consumption. Get rental, for sale, or sold properties blazingly fast!

Bugs, fixes, updates, and changelog

This scraper is under active development. If you have any feature requests you can create an issue from here.

Input Parameters

The input of this scraper should be JSON containing the list of pages on Zoopla that should be visited. Possible fields are:

  • startUrls: (Required) (Array) URLs to start with. It should be a search, list, or property detail URL.

  • endPage: (Optional) (Number) Final number of page that you want to scrape. The default is Infinite. This applies to all search requests and startUrls individually.

  • maxItems: (Optional) (Number) You can limit scraped items. This should be useful when you search through the big lists or search results.

  • proxy: (Required) (Proxy Object) Proxy configuration.

  • extendOutputFunction: (Optional) (String) Function that takes a JQuery handle ($) as an argument and returns an object with data.

  • customMapFunction: (Optional) (String) Function that takes each object's handle as an argument and returns the object with executing the function.

This solution requires the use of Proxy servers, either your own proxy servers or you can use Apify Proxy.


When you want to scrape over a specific list URL, just copy and paste the link as one of the startUrl.

If you would like to scrape only the first page of a list then put the link for the page and have the endPage as 1.

With the last approach that is explained above you can also fetch any interval of pages. If you provide the 5th page of a list and define the endPage parameter as 6 then you'll have the 5th and 6th pages only.

Compute Unit Consumption

The actor is optimized to run blazing fast and scrape as many items as possible. Therefore, it forefronts all the detailed requests. If the actor doesn't block very often it'll scrape 100 listings in 1 minute with ~0.06-0.75 compute units.

Zoopla Scraper Input example

2  "startUrls":[
3    "https://www.zoopla.co.uk/overseas/details/64410387/",
4    "https://www.zoopla.co.uk/new-homes/details/64410305/",
5    "https://www.zoopla.co.uk/to-rent/details/64411515/",
6    "https://www.zoopla.co.uk/for-sale/details/62414617/",
7    "https://www.zoopla.co.uk/for-sale/property/oxford/?q=oxford&results_sort=newest_listings&search_source=for-sale",
8    "https://www.zoopla.co.uk/to-rent/property/oxford/",
9    "https://www.zoopla.co.uk/new-homes/property/oxfordshire"
10  ],
11  "endPage":4,
12  "maxItems":100,
13  "proxy":{
14    "useApifyProxy":true
15  }

During the Run

During the run, the actor will output messages letting you know what is going on. Each message always contains a short label specifying which page from the provided list is currently specified. When items are loaded from the page, you should see a message about this event with a loaded item count and total item count for each page.

If you provide incorrect input to the actor, it will immediately stop with a failure state and output an explanation of what is wrong.

Zoopla Export

During the run, the actor stores results into a dataset. Each item is a separate item in the dataset.

You can manage the results in any language (Python, PHP, Node JS/NPM). See the FAQ or our API reference to learn more about getting results from this Zoopla actor.

Scraped Zoopla Properties

The structure of each property in Zoopla.co.uk looks like this:

Property Detail

2    "url": "https://www.zoopla.co.uk/to-rent/details/42244429/",
3    "uuid": "daaeeb87-5ade-44ae-8229-05069c491498",
4    "propertyType": "flat",
5    "publishedOn": "2023-03-31T04:34:52",
6    "title": "2 bed flat to rent",
7    "images": [
8        "https://lid.zoocdn.com/u/2400/1800/d5512046adffd7816f82af30f5f6d243602bc6fd.jpg",
9        "https://lid.zoocdn.com/u/2400/1800/8ed9c3c2eb584576d129a214c52a2124369e860b.jpg",
10        "https://lid.zoocdn.com/u/2400/1800/17b0ed64963f7fb589df6669ebda44587e075497.jpg",
11        "https://lid.zoocdn.com/u/2400/1800/7f73dec2dee4cc63f36095a7b382d761fb48c076.jpg",
12        "https://lid.zoocdn.com/u/2400/1800/5bb32c4f99af5de61b91c6d3cab95ec71d412eca.jpg",
13        "https://lid.zoocdn.com/u/2400/1800/06b4352ca431a7074246b3a85fc57c777b7af116.jpg",
14        "https://lid.zoocdn.com/u/2400/1800/f17aeba815231722612584f0a91a99ecd334b5fb.jpg"
15    ],
16    "poi": [],
17    "latitude": 51.493675,
18    "longitude": -0.239744,
19    "postalCode": "W6 0SP",
20    "id": "42244429",
21    "features": [
22        "2 Bedrooms",
23        "2 Bathrooms",
24        "Furnished",
25        "785 square foot",
26        "Parking",
27        "Digital TV",
28        "CCTV",
29        "Shops",
30        "Recycling Facilities"
31    ],
32    "availableFrom": null,
33    "isFurnished": "Furnished",
34    "studentFriendly": false,
35    "description": "A stunning two bedroom apartment situated in a Victorian red brick building in the Ravenscourt Park conservation area.<br><br>This second floor apartment comprises two double bedrooms with the master benefiting from an en-suite bathroom, modern second bathroom, and an open plan spacious kitchen/reception room allowing great space for entertaining.<br><br>The apartment has recently been renovated to the highest specification and is set over 633 sq. Ft. It benefits from wood flooring throughout, along with pre cabled Sky TV as well as Cat 4 cables for internet connections.<br><br>Residential Land is the owner and managing agent of this property. All of our tenants benefit from a dedicated on-site or building manager who is on hand to assist with any property related issues. We also employ a dedicated team of maintenance experts and provide a 24-hour emergency helpline.<br><br>Financial Summary:<br><br>• Holding Deposit= £800 (1 week’s rent- this is taken off the total security deposit)<br>• Security Deposit= £2,666.67 (1 calendar month’s rent, less holding deposit)<br>• 1 calendar months rent= £3,466.67<br><br>Total amount payable= £6,933.33<br><br>Council Tax band- E<br>EPC rating- C<br><br>* Spacious and bright<br><br>* Period features<br><br>* Key entry phone<br><br>* 24 hour maintenance service<br><br>* Dedicated building manager<br><br>* Available furnished or unfurnished",
36    "address": "King Street, London W6",
37    "leaseExpiry": null,
38    "groundRent": null,
39    "councilTaxBand": null,
40    "administrationFees": "<strong>No admin fees</strong>",
41    "deposit": null,
42    "tags": [],
43    "floorPlan": [
44        "https://lc.zoocdn.com/85e3a5dbc5bbc39dc611bd3332ec9556e1f302af.jpg"
45    ],
46    "livingRooms": 0,
47    "beds": 2,
48    "bedsMax": 2,
49    "bedsMin": 2,
50    "baths": null,
51    "isRetirementHome": false,
52    "isSharedOwnership": false,
53    "listingCondition": "pre-owned",
54    "listingStatus": "to_rent",
55    "price": 3467,
56    "priceActual": 3467,
57    "priceMax": 3500,
58    "priceMin": 3250,
59    "sqft": "",
60    "additionalLinks": [],
61    "category": "residential",
62    "agent": {
63        "address": "59-60 Grosvenor Street, Mayfair, London",
64        "name": "Residential Land",
65        "phone": "020 3463 6976"
66    },
67    "priceHistory": {
68      "firstPublished": {
69        "firstPublishedDate": "2023-08-24T10:09:30",
70        "priceLabel": "£3,467 pcm"
71      },
72      "lastSale": null,
73      "priceChanges": [
74        {
75          "isMinorChange": false,
76          "isPriceDrop": true,
77          "isPriceIncrease": false,
78          "percentageChangeLabel": "8.4",
79          "priceChangeDate": "2023-09-13T14:08:21",
80          "priceChangeLabel": "£503",
81          "priceLabel": "£5,499 pcm"
82        },
83      ]
84	}


Please visit us through epctex.com to see all the products that are available for you. If you are looking for any custom integration or so, please reach out to us through the chat box in epctex.com. In need of support? devops@epctex.com is at your service.

Maintained by Community
Actor metrics
  • 4 monthly users
  • 1 star
  • 100.0% runs succeeded
  • Created in Apr 2023
  • Modified about 13 hours ago