Rightmove, Zoopla & OnTheMarket UK Property Scraper
Pricing
from $1.00 / 1,000 record scrapeds
Rightmove, Zoopla & OnTheMarket UK Property Scraper
Scrapes UK property listings from Rightmove, Zoopla, and OnTheMarket in one run. Returns unified records with price, bedrooms, EPC rating, council tax band, tenure, leasehold details, agent info, and coordinates. Cross-portal coverage with price history from Zoopla.
Pricing
from $1.00 / 1,000 record scrapeds
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
61
Total users
10
Monthly active users
13 hours ago
Last modified
Categories
Share
Scrapes UK property listings from Rightmove, Zoopla, and OnTheMarket in a single run. Returns unified records with price, bedrooms, EPC rating, council tax band, tenure, leasehold details, agent info, coordinates, and price history — across all three portals from one actor.
Rightmove, Zoopla & OnTheMarket Scraper Features
- Extracts listings from all three UK property portals with a single run and a single output schema
- Collects 30+ fields per listing including price, bedrooms, bathrooms, postcode, coordinates, and agent contact
- Returns EPC rating, council tax band, tenure type, and remaining lease years for properties where available
- Retrieves Zoopla price-change history — when a listing's asking price moved, and whether it was a reduction
- Accepts any search URL from any of the three portals, or just type the places you want (towns, cities, postcode areas or full postcodes) and it searches all three portals for each
- Filters by listing type (sale, rent, or both), price, bedrooms, property type, search radius and how recently a listing was added, with the same filter applied on every portal
- Several places and several portals in one run, with
maxItemsshared evenly between the searches so no single portal or place takes the whole run - Returns clean, flat JSON — no nested objects, no arrays, just columns that load straight into a spreadsheet or database
Who Uses UK Property Portal Data?
- PropTech developers — Build valuation models, automated alerts, or comparison tools that need real-time listings from all three portals at once
- BTL investors — Track yield opportunities across regions, spot price reductions as they happen, filter by EPC rating before viewing
- Estate agent intel firms — Monitor competitor stock levels, pricing strategy, and time-on-market across portals simultaneously
- Mortgage lead generators — Match active buyers to pre-qualified listings, trigger outreach when price reductions appear
- Academic researchers — Build price trend datasets with the price-change history that Zoopla surfaces but most scrapers ignore
- Data brokers — Maintain a unified UK property database without running three separate scrapers and reconciling the output
How the Rightmove, Zoopla & OnTheMarket Scraper Works
- Type the places you want in
locations, paste search URLs from Rightmove, Zoopla, or OnTheMarket, or use the defaults. Each place is searched on the portals you pick; each pasted URL runs on the portal it belongs to. - The scraper pages through search results, collecting property IDs and detail URLs. Zoopla's bot challenge is solved automatically; Rightmove and OnTheMarket require no bypass.
- Each detail page is fetched and returned as a clean, fully typed record — the same field set across all three portals, once Zoopla's challenge clears.
- All three portals are mapped to the same output schema. The
platformfield tells you where each record came from.maxItemscaps the total across all portals combined. - Listings are not merged across portals. Every row carries
platformandurl(the absolute listing URL on that portal), so the same property listed on two portals can be matched by you, for example on address and postcode.
Input
Search by place name, with filters:
{"locations": ["Clapham", "Leeds"],"listingType": "sale","minPrice": 300000,"maxPrice": 900000,"minBedrooms": 2,"maxBedrooms": 3,"propertyTypes": ["flat", "terraced"],"addedWithin": "7","maxItems": 50}
Or paste search URLs:
{"searchUrls": [{ "url": "https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490&sortType=6&numberOfPropertiesPerPage=24&index=0&includeSSTC=false&viewType=LIST&channel=BUY" },{ "url": "https://www.onthemarket.com/for-sale/property/london/?max-price=500000" }],"listingType": "sale","maxItems": 50}
| Field | Type | Default | Description |
|---|---|---|---|
locations | array | none | Towns, cities, postcode areas (NW8) or full postcodes. Each place is searched on every portal in portals, for sale and/or to rent as listingType says. A place a portal does not know is named in the run log; if no search can be built the run fails rather than returning nothing quietly. |
portals | array | all three | Which portals to search for locations: rightmove, zoopla, onthemarket. Pasted URLs always run on their own portal. |
searchUrls | array | London defaults | Search result URLs from Rightmove, Zoopla, or OnTheMarket. Zoopla map searches (including an area you drew or moved the map to) and new-homes searches work as pasted. Any filter you set below replaces the same filter in the pasted URL; filters you leave empty are kept as pasted. |
startUrls | array | none | Same as searchUrls; both lists are used if both are filled. |
listingType | string | both | Filter by listing type. Options: sale, rent, both. |
minPrice | integer | none | Lowest asking price (sale) or lowest monthly rent (rent), in GBP. Needs listingType sale or rent; with both the run fails, because one price band cannot apply to both. |
maxPrice | integer | none | Highest asking price or monthly rent, in GBP. Same rule as minPrice. |
minBedrooms | integer | none | Fewest bedrooms (0 includes studios). |
maxBedrooms | integer | none | Most bedrooms. |
propertyTypes | array | all | Any of detached, semi-detached, terraced, flat, bungalow, land. flat covers flats, apartments, maisonettes and studios. |
radius | string | the place only | Also include listings this many miles around the place: 0.25, 0.5, 1, 3, 5, 10, 15, 20, 30, 40. |
addedWithin | string | any age | Only listings added in the last 1, 3 or 7 days. |
sortBy | string | each search's own order | newest, price_low_to_high or price_high_to_low, on every portal, so maxItems keeps the newest or the cheapest listings. Rightmove and OnTheMarket place a few promoted listings first whatever the order. |
keywords | array | none | Words or phrases that must all appear in a listing's title, description or features (case-insensitive), on every portal. Up to ten times maxItems listings (at least 100) are checked; the run log says how many were checked and matched. |
maxItems | integer | 15 | Maximum total records to return across all portals in the run. With locations, shared evenly between the searches; a search that finds fewer hands its share on. |
Every filter above is applied on all three portals, so a result set never mixes filtered and unfiltered portals. A value outside the lists above, or a minimum above its maximum, stops the run with a message instead of being ignored.
Rightmove, Zoopla & OnTheMarket Output Fields
{"listing_id": "88574661","platform": "rightmove","url": "https://www.rightmove.co.uk/properties/88574661","listing_type": "sale","property_type": "apartment","title": "2 bedroom apartment for sale in Pullman Court, Streatham Hill, London, SW2","price_gbp": 500000,"price_qualifier": null,"rental_frequency": null,"bedrooms": 2,"bathrooms": 1,"reception_rooms": null,"area_sqft": null,"tenure": "Leasehold","lease_years": 108,"ground_rent": null,"service_charge": null,"council_tax_band": "D","epc_rating": "B","address": "Pullman Court, Streatham Hill, London, SW2","postcode": "SW2 4ST","town": null,"region": null,"latitude": 51.4498,"longitude": -0.1256,"agent_name": "Barnard Marcus","agent_branch": "Barnard Marcus, Streatham","agent_phone": "020 8769 0000","agency_url": "https://www.barnardmarcus.co.uk","images": "https://media.rightmove.co.uk/property-photo/88574661/image-0.jpeg,https://media.rightmove.co.uk/property-photo/88574661/image-1.jpeg","floorplan": "https://media.rightmove.co.uk/floorplan/88574661/floorplan-0.jpeg","description": "A well-proportioned two-bedroom apartment in the iconic Pullman Court development...","features": "Porter service, Residents parking, Private garden","listed_at": "2024-11-03","price_history": "[{\"date\":\"2025-12-10T16:01:49\",\"price_drop\":true},{\"date\":\"2026-06-23T12:17:37\",\"price_drop\":true}]","nearest_stations": "Streatham Hill Station (0.3 mi), Brixton Station (0.9 mi)","listing_history": "[{\"note\":\"Reduced on 09/09/2026\"}]","scrapedAt": "2026-05-15T23:38:32.337Z"}
| Field | Type | Description |
|---|---|---|
listing_id | string | Portal-native listing ID |
platform | string | Source portal: rightmove, zoopla, or onthemarket |
url | string | Canonical listing URL on the source portal |
listing_type | string | sale or rent |
property_type | string | Property type — Flat, Detached house, Semi-detached house, Terraced house, etc. |
title | string | Full listing title |
price_gbp | integer | Asking price in GBP |
price_qualifier | string | Guide price, Offers over, Fixed price, etc. |
rental_frequency | string | pcm or pw for rental listings |
bedrooms | integer | Number of bedrooms |
bathrooms | integer | Number of bathrooms |
reception_rooms | integer | Number of reception/sitting rooms |
area_sqft | number | Floor area in square feet, where available |
tenure | string | Freehold, Leasehold, Share of freehold, or Commonhold |
lease_years | integer | Remaining lease years for leasehold properties |
ground_rent | number | Annual ground rent in GBP |
service_charge | number | Annual service charge in GBP |
council_tax_band | string | UK council tax band (A–H) |
epc_rating | string | Energy Performance Certificate rating (A–G) |
address | string | Full display address |
postcode | string | UK postcode |
town | string | Town or city |
region | string | UK region or county |
latitude | number | Latitude coordinate |
longitude | number | Longitude coordinate |
agent_name | string | Estate agent company name |
agent_branch | string | Agent branch name or location |
agent_phone | string | Agent contact phone |
agency_url | string | Agent website or profile URL |
images | string | Comma-separated list of property image URLs |
floorplan | string | Floorplan image URL |
description | string | Full property description |
features | string | Comma-separated key property features |
listed_at | string | Date first listed (ISO date) |
price_history | string | JSON array of asking-price changes, each with its date and whether it was a reduction (Zoopla) |
nearest_stations | string | Nearest stations with distance in miles, nearest first (Rightmove, OnTheMarket) |
listing_history | string | JSON array with the portal's listing note, such as "Reduced on 09/09/2026" (Rightmove, OnTheMarket) |
scrapedAt | string | ISO-8601 timestamp when the record was scraped |
🔍 FAQ
How do I scrape Rightmove, Zoopla, and OnTheMarket at the same time?
The actor handles all three in one run. Provide search URLs from any combination of the three portals in searchUrls. If you only provide Rightmove URLs, only Rightmove is scraped — and that is fine.
How much does this actor cost to run?
The actor charges $0.10 per start and $0.001 per record. A run returning 100 listings costs roughly $0.20. Zoopla adds overhead from clearing its bot challenge, but it is baked into the pricing.
Does the scraper handle Zoopla's bot protection?
Yes. Zoopla uses a managed bot challenge that stops most scrapers. This actor clears it automatically — you configure nothing, and if a clearance ever fails it logs a warning and skips those Zoopla seeds rather than returning junk.
Can I get price history?
Price-change history comes from Zoopla: each change to a listing's asking price, with its date and whether it was a reduction. Rightmove and OnTheMarket do not publish this. Include at least one Zoopla search URL in your input to capture it. Sold prices are not part of a listing on any of the three portals and are not returned.
Do I need to supply search URLs?
No. Type places into locations and set the filters you want, or paste search URLs. With neither, the actor runs default London for-sale searches on Rightmove and OnTheMarket, which is useful for testing.
How do I search several places across all three portals?
List the places in locations, for example ["Clapham", "Leeds", "NW8"], and leave portals empty. Rightmove, Zoopla and OnTheMarket are each searched for every place, with your price, bedroom, property-type, radius and added-within filters applied to all of them. maxItems is shared evenly, so the first portal cannot use up the whole run.
Is the price filter a purchase price or a rent?
Both, depending on listingType: sale filters asking price, rent filters rent per month. Set one of the two when you use minPrice or maxPrice.
Need More Features?
Need additional portals, custom field extraction, or region-specific coverage? File an issue or get in touch.
Why Use the Rightmove, Zoopla & OnTheMarket Scraper?
- Tri-portal coverage — One actor, one run, one schema. Most scrapers pick one portal and stop. This one does all three and hands you a consistent output regardless of source.
- Leasehold detail — Returns tenure type, remaining lease years, ground rent, and service charge. The fields that matter when evaluating a flat purchase, and the ones most scrapers leave blank.
- Price history from Zoopla — Captures each change to a listing's asking price with its date, giving you a trail of reductions that Rightmove does not offer.