Zoopla Sold Properties Scraper avatar
Zoopla Sold Properties Scraper
Try for free

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

View all Actors
Zoopla Sold Properties Scraper

Zoopla Sold Properties Scraper

Try for free

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

Scrape Zoopla.co.uk to crawl millions of off market real estate properties from United Kingdom. Our real estate scraper also lets you monitor specific listing for sold properties. You can provide multiple off market search result listings to scrape/monitor.

🏡 What is Zoopla Real Estate Sold Properties Scraper?

This Zoopla sold properties Scraper will enable you scrape any sold listing from zoopla.co.uk/.

You can simply take your listing url from browser and enter it into this actor. This actor will crawl through all pages of particular listing and generate dataset for you.

Listing url is something you get when you perform the search on zoopla site https://www.zoopla.co.uk/house-prices Example listing urls :

You can apply any filter and use the url after filder as well.

🚪 What can this Zoopla Sold Properties Scraper do?

📈 Extract Zoopla off market data listings on Zoopla

👀 This actor is not just scraper but also has monitoring capability. You can turn on monitoring mode and it will give you only newly sold properties compared to your previous scrapes.

📩 This actor also helps you to identify zoopla estimate for particular property

⬇️ Download Zoopla real estate data in Excel, CSV, JSON, and other formats

📚 How do I start scraping with this scraper?

  1. Register for your free Apify account here
  2. You don't need to provide your credit card details for free acount. Just click on "Get Started" button on above link and complete the registration only.
  3. Free account comes with reasonable credits to try out this actor. This actor also comes with free trial of 3 days without any commitment/upfront charge.
  4. Run this actor and verify the scraped data. Apify has huge integration possibilities. You can download the data or push the data into any 3rd party platform directly.

🌳 What Zoopla data can I extract using this tool?

Listing UPRNFull Address
Listing URLCategory
Postal CodeOutcode
Floor AreaLiving Rooms
TenureProperty Type
Energy RatingRent Estimate
Sale EstimateHistoric Listings
Historic SalesData Source

⬇️ Input

For simple usecase, you just need to provide browser url of zoopla off market search result page & that's all. You can leave other fields as they are to be sensible defaults.

Input example

2    "listUrls": [
3        {
4            "url": "https://www.zoopla.co.uk/house-prices/sw1w-0ny/?new_homes=include&view_type=list"
5        }
6    ],
7    "fullScrape": true,
8    "monitoringMode": false,
9	"threads" : 3

Understading monitoring mode :

  • fullScrape : This option is by default turned on. When enabled it always force actor to scrape complete listing from all pagination pages regardless of monitoring is enabled or not.

  • monitoringMode : This open when turned on will only scrape newly found off market property listings compared to previously scraped properties by this actor. It's important to turn off fullScrape setting if you are using this mode. If you keep fullScrape on, it will re-scrape complete listing again.

  • threads: Number of parallel threads to run for scraping

⬆️ Output

The scraped data is stored in the dataset of each run. The data can be viewed or downloaded in many popular formats, such as JSON, CSV, Excel, XML, RSS, and HTML.

Output example

The result for scraping a single property like this:

2	"url": "https://www.zoopla.co.uk/property/uprn/100022746879/",
3	"uprn": "100022746879",
4	"fullAddress": "Flat 57, Belgravia Court, 33 Ebury Street, London, SW1W 0NY",
5	"postcode": "SW1W 0NY",
6	"country": "England",
7	"outcode": "SW1W",
8	"latitude": 51.4953741,
9	"longitude": -0.1473962,
10	"bathrooms": null,
11	"bedrooms": null,
12	"floorAreaSqM": 76,
13	"livingRooms": null,
14	"tenure": "Leasehold",
15	"propertyType": "Flat/Maisonette",
16	"currentEnergyRating": "C",
17	"rentEstimate": {
18		"lowerPrice": 3600,
19		"currentPrice": 4050,
20		"upperPrice": 4550
21	},
22	"saleEstimate": {
23		"lowerPrice": 1056000,
24		"currentPrice": 1111000,
25		"upperPrice": 1167000,
26		"confidenceLevel": "HIGH",
27		"valueChange": {
28			"numericChange": -164000,
29			"percentageChange": -12.862745098039216,
30			"saleDate": "2020-12-11"
31		},
32		"ingestedAt": "2024-02-08T11:30:32.529Z"
33	},
34	"historicListings": [
35		{
36			"date": "2019-02-15",
37			"price": 1000000
38		}
39	],
40	"historicSales": [
41		{
42			"date": "2020-12-11",
43			"price": 1275000,
44			"percentageChange": 27.500000000000004,
45			"numericChange": 275000
46		},
47		{
48			"date": "2020-10-16",
49			"price": 1000000,
50			"percentageChange": 269.68576709796673,
51			"numericChange": 729500
52		},
53		{
54			"date": "1998-08-20",
55			"price": 270500,
56			"percentageChange": null,
57			"numericChange": null
58		}
59	],
60	"soldPricesDataSource": "landRegistry"


Since Zoopla allows only 1000 properties per listing/search result, you might want to break down your listing urls into smaller area if it has more than 1K results. Good News is that even if multiple list urls contains overlapping results, they will get deduplicated within same run data.

🙋‍♀️ For custom solutions

In case you need some custom solution, you can contact me : dhrumil@techvasu.com

Or learn more about me on github : https://github.com/dhrumil4u360

Maintained by Community
Actor metrics
  • 2 monthly users
  • 100.0% runs succeeded
  • Created in Feb 2024
  • Modified about 15 hours ago