
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape UK property listings from Zoopla: prices, beds, baths, receptions, full address and postcode, tenure, council tax, EPC, descriptions, features, photos, floor plans, price history and agent details. For sale, to rent and new homes. No login needed.
Scrape UK property listings from Zoopla: asking prices and rents, bedrooms, bathrooms, receptions, full address with postcode, coordinates, tenure, council tax band, EPC rating, full descriptions, key features, every photo, floor plans, price history, past sold prices and the agent's name, phone and address. Paste a Zoopla search URL or type a location, and get clean, structured rows in seconds. No login and no Zoopla account needed.
Manchester, Clapham or SW11 into Locations.| Field | What it does |
|---|---|
startUrls | Zoopla search URLs (for sale, to rent, new homes, with any filters) or property URLs (…/details/12345678/). |
locations | Towns, areas, postcodes or stations to search, using the search type and filters below. |
searchType | for-sale, to-rent or new-homes (for locations). |
maxItems | Maximum number of listings to save. |
| Filters | Price range, rent period, bedrooms, bathrooms, property types, radius, added within, sort, keywords, include under offer / let agreed, new homes, chain-free, reduced price, furnishing. |
includeDetails | Adds full description, postcode, tenure, council tax, EPC, price history, all photos, floor plans and more (on by default). |
splitByPrice | Collects more than 1,000 listings per search by splitting it into price bands (on by default). |
{
"locations": ["Manchester"],
"searchType": "to-rent",
"maxPrice": 1500,
"minBedrooms": 2,
"furnished": "furnished",
"maxItems": 100
}
One row per listing. Main fields:
| Field | Description |
|---|---|
id, propertyUrl | Zoopla listing ID and link |
title, propertyType, transactionType | e.g. "2 bed flat for sale", flat, BUY / RENT |
bedrooms, bathrooms, receptions | Room counts |
priceAmount, price, priceFrequency | Price as a number, display labels (incl. weekly rent and "Guide price"), and monthly / weekly for rentals |
address, street, postcode, outcode, town, county, latitude, longitude | Location |
description, keyFeatures, summary | Full text and bullet points |
sizeSqFt, tenureType, tenure, councilTaxBand, epcRating | Property facts |
addedOn, listedAt, status, priceReduction | Listing date and status ("Just added", "Reduced") |
firstListed, priceHistory, soldPriceHistory | Asking price changes and past sale prices |
agentName, agentPhone, agentAddress, branch | Estate or letting agent |
mainImage, images, floorplans, virtualTours, epcGraphs, brochures | Media links |
stations, nearbyPlaces, materialInformation | Nearby stations and schools, water / heating / broadband info |
Example (shortened, sample values):
{
"id": "70000001",
"propertyUrl": "https://www.zoopla.co.uk/for-sale/details/70000001/",
"title": "2 bed flat for sale",
"transactionType": "BUY",
"propertyType": "flat",
"bedrooms": 2,
"bathrooms": 1,
"receptions": 1,
"priceAmount": 425000,
"priceCurrency": "GBP",
"priceFrequency": "one-off",
"price": {"primary": "£425,000", "secondary": null, "qualifier": "Guide price"},
"address": "Example Road, London SW4",
"postcode": "SW4 0XX",
"outcode": "SW4",
"town": "London",
"latitude": 51.4621,
"longitude": -0.1385,
"description": "A bright two bedroom apartment on the second floor of a modern block...",
"keyFeatures": ["Two bedrooms", "Private balcony", "Chain free"],
"sizeSqFt": 710,
"tenureType": "LEASEHOLD",
"tenure": "Leasehold (120 years)",
"councilTaxBand": "D",
"epcRating": "C",
"status": "Reduced",
"addedOn": "2026-09-02",
"firstListed": {"date": "2026-09-02T10:15:00", "price": "£450,000", "priceAmount": 450000},
"priceHistory": [
{"date": "2026-10-01T09:30:00", "price": "£425,000", "priceAmount": 425000, "change": "£25,000", "changePercent": 5.6, "direction": "down"}
],
"soldPriceHistory": [{"date": "2015-06-12", "price": 310000, "changePercent": null}],
"agentName": "Example Estates - Clapham",
"agentPhone": "020 0000 0000",
"agentAddress": "1 High Street, London, SW4 0AA",
"mainImage": "https://lc.zoocdn.com/example.jpg",
"numberOfImages": 12,
"stations": [{"name": "Clapham Common", "type": "london_underground_station", "distanceMiles": 0.3}],
"scrapedAt": "2026-10-15T08:00:00Z"
}
You pay $0.60 per 1,000 listings ($0.0006 per listing), plus the small platform usage of the run (compute and residential proxy traffic, about $0.03 per 1,000 detailed listings). Example: 1,000 fully detailed listings cost about $0.63 in total. There is no start fee.
Is it legal to scrape Zoopla? The scraper only collects publicly visible listing data. Listings are published by estate agents, but you are responsible for how you use the data, including UK GDPR and Zoopla's terms. If in doubt, ask a lawyer.
Do I need a Zoopla account or a proxy? No account is needed. The default residential proxy is set up for you and is cheap here (about 12 MB of traffic per 1,000 detailed listings). Zoopla blocks most datacenter IPs; if you pick datacenter anyway, the scraper switches to residential by itself.
How many results can I get? Zoopla shows at most 1,000 listings per search. With "Get more than 1,000 results per search" on (default), large searches are split by price so you can collect far more, for example all listings in a city.
Why is a field empty? Agents don't fill everything. Tenure, council tax, floor area or price history are only present when the agent or Zoopla provides them. Turn off "Include full property details" and you get search-card data only (no postcode, tenure or price history).
Can I schedule it or use the API? Yes. Schedule runs to monitor new listings and price drops, and fetch results through the API or integrations in JSON, CSV or Excel.
Can I scrape a single property?
Yes. Paste property URLs such as https://www.zoopla.co.uk/for-sale/details/12345678/ into the URL field.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalZoopla search or property URLs
Paste Zoopla search result URLs (for sale, to rent, new homes, with any filters set on zoopla.co.uk) or property detail URLs (…/details/12345678/).
locationsarrayOptionalLocations
Towns, areas, postcodes or stations to search, e.g. Manchester, Clapham, SW11 or Kings Cross. Each is searched with the type and filters below.
searchTypeenumOptionaldefault "for-sale"Search type
Used for the locations above.
maxItemsintegerOptionaldefault 20Maximum results
Maximum number of listings to save across all inputs.
Filters apply to the locations above. Search URLs keep the filters already in the URL.
minPriceintegerOptionalMinimum price (£)
For rentals this is the rent per month (or per week, see below).
maxPriceintegerOptionalMaximum price (£)
Leave empty for no maximum.
priceFrequencyenumOptionaldefault "per_month"Rent price period
Only for 'To rent' searches.
minBedroomsintegerOptionalMinimum bedrooms
0 means studios included.
maxBedroomsintegerOptionalMaximum bedrooms
minBathroomsintegerOptionalMinimum bathrooms
propertyTypesarrayOptionalProperty types
Leave empty for all types.
radiusenumOptionalSearch radius
Distance around each location.
addedWithinenumOptionalAdded to Zoopla within
Leave empty for any time.
sortByenumOptionaldefault "newest_listings"Sort by
Order of results for location searches.
keywordsstringOptionalKeywords
Words that must appear in the listing, e.g. garden, garage, balcony.
includeSoldOrLetbooleanOptionaldefault falseInclude under offer / sold STC / let agreed
Also return listings that are under offer, sold subject to contract or let agreed.
newHomesenumOptionalNew homes (for sale)
Only for 'For sale' searches.
chainFreebooleanOptionaldefault falseChain-free only (for sale)
Only chain-free properties.
reducedPriceOnlybooleanOptionaldefault falseReduced price only (for sale)
Only listings with a price reduction.
furnishedenumOptionalFurnishing (to rent)
Only for 'To rent' searches.
includeDetailsbooleanOptionaldefault trueInclude full property details
Adds the full description, key features, postcode, tenure, council tax band, EPC rating, price history, past sold prices, all photos, floor plans, nearby schools and stations, and agent address. Turn off for faster, search-card-only rows.
splitByPricebooleanOptionaldefault trueGet more than 1,000 results per search
Zoopla shows at most 1,000 listings per search. When a search has more, it is split into price bands automatically so you can collect them all.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Zoopla blocks most datacenter IPs, so residential proxies are the default (traffic is small, about 12 MB per 1,000 detailed listings). If you pick datacenter and Zoopla blocks it, the scraper switches to residential by itself.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| mainImage | any | Photo |
| title | any | Property |
| priceAmount | any | Price (£) |
| price | any | |
| address | any | Address |
| postcode | any | Postcode |
| bedrooms | any | Beds |
| bathrooms | any | Baths |
| receptions | any | Receptions |
| propertyType | any | Type |
| transactionType | any | Buy / rent |
| sizeSqFt | any | Sq ft |
| tenureType | any | Tenure |
| councilTaxBand | any | Council tax |
| epcRating | any | EPC |
| addedOn | any | Listed |
| status | any | Status |
| agentName | any | Agent |
| agentPhone | any | Agent phone |
| propertyUrl | any | Listing |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One property listing saved (full details included). | $0.0006 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/zoopla-scraper').call({
"startUrls": [
{
"url": "https://www.zoopla.co.uk/for-sale/property/london/?q=London&results_sort=newest_listings&search_source=for-sale"
}
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/zoopla-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/zoopla-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Newest rental listings with details.
Homes for sale above a minimum price.
New-build homes with details.
Newest sale listings with details.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.