Zoopla Search Scraper avatar

Zoopla Search Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Zoopla Search Scraper

Zoopla Search Scraper

Collect UK property listings from any Zoopla search. Enter search URLs or location keywords, the actor scrapes prices, addresses, postcodes, bedrooms, bathrooms, agent details, GPS coordinates, and images. Run multiple searches per run with automatic pagination. For-sale and to-rent both supported.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Kawsar

Kawsar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Extract structured property listing data from Zoopla — the UK's largest property portal. Whether you're tracking the London rental market, researching prices in a specific postcode, or building a dataset across multiple UK cities, this actor handles the heavy lifting. Paste in a search URL, type a location keyword, or combine both — it pages through results automatically and delivers clean, analysis-ready data.


What you can do with it

  • Market research — Compare asking prices, property types, and stock levels across multiple UK locations in a single run.
  • Investment analysis — Filter by price range, bedroom count, and property type to identify yield opportunities.
  • Price tracking — Run the actor on a schedule to monitor how prices in a target area change over time.
  • Lead generation — Collect estate and letting agent names and phone numbers from active listings in any market.
  • Portfolio monitoring — Keep tabs on under-offer status, price reductions, and new listings for properties you're watching.
  • Academic and journalism — Build datasets for housing affordability research, regional price studies, or investigative reporting.

What it collects

Each property listing returns up to 25 structured fields:

FieldDescription
listingIdUnique Zoopla listing identifier
urlFull URL to the property detail page
propertyTitleListing headline, e.g. "3 bed semi-detached house for sale"
priceAsking price or monthly rent with currency symbol
priceNumericPrice as a plain integer, ready for sorting and calculations
priceCurrencyISO currency code — always GBP for UK listings
addressFull property address
postcodeUK postcode extracted from the address
bedroomsNumber of bedrooms
bathroomsNumber of bathrooms
propertyTypeDetached, semi-detached, terraced, flat, bungalow, etc.
sizeSqftFloor area in square feet (where Zoopla publishes it)
listingDescriptionShort marketing summary from the listing
imagesArray of full-size property image URLs
agentNameEstate or letting agent name
agentPhoneAgent phone number
addedOnISO 8601 date the listing was first published
listingStatusStatus flag such as "Just added" or "Reduced"
underOffertrue if the property is currently under offer
isPremiumtrue if this is a premium featured listing
listingTypefor-sale or to-rent
latitudeGPS latitude coordinate
longitudeGPS longitude coordinate
scrapedAtISO 8601 timestamp of when the record was collected
searchSourceThe URL or keyword that produced this listing

Fields such as sizeSqft, bathrooms, latitude, and longitude return null when Zoopla does not publish that data for a given listing.


How to use it

There are two ways to tell the actor what to scrape — use one, the other, or both at the same time.

Option 1 — Paste a Zoopla search URL

  1. Go to zoopla.co.uk and run a property search.
  2. Apply any filters you want — location, price range, bedrooms, property type.
  3. Copy the full URL from your browser's address bar.
  4. Paste it into the Search URLs field.

This is the most precise method. The URL carries all your filter settings, so the actor scrapes exactly what you searched for.

Option 2 — Type a location keyword

Enter a place name such as London, Manchester, or Long Ditton into the Search queries field. The actor resolves it to the correct Zoopla area page automatically — no URL needed. Select whether you want for-sale or to-rent results using the Listing type for queries dropdown.

You can mix both methods in a single run. Each URL and each keyword is treated as a separate search, with its own listing and page limits.


Input parameters

ParameterTypeDefaultDescription
searchUrlsarrayOne or more full Zoopla search URLs
queriesarrayLocation keywords to search, e.g. London, Bristol
queryListingTypestringfor-saleListing type for keyword searches: for-sale or to-rent
maxListingsPerInputinteger100Maximum listings to collect per URL or keyword (up to 1,000)
maxPagesPerInputinteger10Maximum pages to paginate per URL or keyword (up to 50)
requestTimeoutSecsinteger30Per-request timeout in seconds. Raise this if you see timeout errors.

At least one searchUrls entry or one queries entry is required.


Example inputs

{
"searchUrls": [
"https://www.zoopla.co.uk/for-sale/property/wales/newport/?q=Newport"
],
"maxListingsPerInput": 200,
"maxPagesPerInput": 10
}

Scrape multiple cities using keywords

{
"queries": ["London", "Manchester", "Birmingham", "Leeds"],
"queryListingType": "to-rent",
"maxListingsPerInput": 100,
"maxPagesPerInput": 5
}

Mix URLs and keywords in one run

{
"searchUrls": [
"https://www.zoopla.co.uk/for-sale/property/london/?q=London&price_max=500000&beds_min=2"
],
"queries": ["Bristol", "Cardiff"],
"queryListingType": "for-sale",
"maxListingsPerInput": 150,
"maxPagesPerInput": 6
}

Example output

{
"listingId": "73070889",
"url": "https://www.zoopla.co.uk/for-sale/details/73070889/",
"propertyTitle": "4 bed terraced house for sale",
"price": "£225,000",
"priceNumeric": 225000,
"priceCurrency": "GBP",
"address": "Court Crescent, Bassaleg NP10",
"postcode": "NP10",
"bedrooms": 4,
"bathrooms": 1,
"propertyType": "terraced",
"sizeSqft": null,
"listingDescription": "An extended four-bedroom terraced house in Bassaleg, offered with no onward chain.",
"images": [
"https://lid.zoocdn.com/800/600/a1b2c3d4e5f6.jpg",
"https://lid.zoocdn.com/800/600/b2c3d4e5f6a1.jpg"
],
"agentName": "Crook and Blight",
"agentPhone": "01633 244333",
"addedOn": "2026-04-28T10:22:00",
"listingStatus": "Just added",
"underOffer": false,
"isPremium": false,
"listingType": "for-sale",
"latitude": 51.573388,
"longitude": -3.043725,
"scrapedAt": "2026-05-03T09:14:22.841Z",
"searchSource": "https://www.zoopla.co.uk/for-sale/property/wales/newport/?q=Newport"
}

Tips

Getting the most from search URLs Apply all your filters on Zoopla before copying the URL — price range, minimum bedrooms, property type, sort order. The actor scrapes exactly what that URL shows, so the more specific your search, the cleaner your dataset.

Using keywords for quick multi-city scrapes Keywords work well for broad searches across named towns and cities. For precise area control (specific postcodes, custom price bands), a direct URL is more reliable.

Pagination and limits Each Zoopla search page returns up to 25 listings. Setting maxPagesPerInput to 10 gives you up to 250 results per search. Raise maxListingsPerInput and maxPagesPerInput together if you need more — the actor stops at whichever limit it hits first.

Scheduling You can run this actor on a schedule in Apify to build a time-series dataset of prices and stock levels. The scrapedAt field makes it straightforward to track what changed between runs.

Sort order Zoopla defaults to sorting by relevance. If you want newest listings first, add &sort_field=listing_date&sort_direction=descending to your search URL before pasting it in.


Notes

  • The actor collects both regular and premium (extended) listings from each page.
  • Listings that appear on multiple pages are deduplicated at the Zoopla level — each listing ID appears only once per search.
  • When using keyword queries, the actor automatically resolves the location to Zoopla's correct area URL. If a keyword returns no results, try a more specific place name or switch to a direct search URL.
  • This actor is built for research and data collection. Always respect Zoopla's terms of service and applicable data protection laws when using scraped data.