Rightmove Scraper — Price History, Agent Contacts & EPC avatar

Rightmove Scraper — Price History, Agent Contacts & EPC

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Rightmove Scraper — Price History, Agent Contacts & EPC

Rightmove Scraper — Price History, Agent Contacts & EPC

Scrape Rightmove UK largest property portal via Next.js JSON extraction. Buy, rent, sold, commercial & overseas listings with price history (reduced/new), agent phone, tenure, floorplans, EPC and full descriptions. Pure HTTP, no proxy or login needed.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

0

Monthly active users

6 days ago

Last modified

Features

Limited permissions

Share

Rightmove Scraper — Price History, Agent Contacts, Sold Prices & EPC

UK Real Estate Agent Leads Sold History Export

Extract UK property listings from Rightmove at scale — no login, no coding. This Rightmove scraper pulls structured UK real estate data across all 5 channels so you can scrape Rightmove for-sale, to-rent, sold price history, commercial, and overseas listings and get 40+ clean fields per property — including agent phone numbers, price-change history, days on market, tenure, lease length, council-tax band, floorplans, images, EPC rating, and full descriptions.

Export every result in bulk to JSON, CSV, Excel, or API for Rightmove lead generation, property valuation, and B2B intelligence.

Built for estate agents, property investors, PropTech teams, lettings agencies, mortgage valuers, relocation services, and market researchers who need reliable, up-to-date Rightmove data without manual copy-pasting.


⚡ At a glance

FeatureDetails
Target portalrightmove.co.uk — UK's largest property & real estate portal
Supported channelsbuy (For Sale), rent (To Rent), sold (Land Registry Sold Prices), commercial, overseas
Core extracted fields40+ fields: Price, Price History, Agent Phone & Branch, Address, Lat/Lng, Beds/Baths, Sqft, Tenure, Lease Years, Council Tax, EPC, Images & Floorplans
1,000+ deep paginationUp to 42 pages (1,008 properties) per single search query + automatic multi-region expansion for 1,000+ runs
Speed & ModesFast list-only mode (includes agent phones & prices) + optional deep property detail enrichment (includeDetails)
Export formatsJSON, CSV, Excel (XLSX), HTML, XML, Apify REST API, MCP, Webhooks, Google Sheets, Make & Zapier

🔎 Why scrape Rightmove?

Rightmove is the UK's premier property portal, carrying well over a million residential for-sale, rental, historical sold, commercial, and overseas listings — a single London for-sale search alone surfaces ~59,000 active properties. For anyone operating in UK real estate or PropTech, it is the single richest public source of asking prices, Land Registry sold comparables, estate agent contact numbers, and property attributes. However, the website only displays 24 listings at a time with no bulk download or public data export.

A Rightmove data extractor turns the portal into a structured, queryable data feed you can refresh on a schedule:

  • Estate agent lead generation — build targeted B2B prospecting lists of estate and lettings agency branches with direct phone numbers (agentPhone) by UK city, region, or postcode.
  • Property market analytics & B2B intelligence — track asking prices, price reductions (listingStatus: "reduced"), and daysOnMarket across UK regions over time.
  • Property investment & deal sourcing — surface reduced, auction, or new-to-market properties, filter by leasehold vs. freehold tenure, and compute price-per-sqft.
  • Sold-price comparables & AVM training — pull historical sold prices with full per-address transaction history (priceHistory) for valuations, underwriting, and automated valuation models.
  • Rental market & yield monitoring — monitor asking rents (pcm / pw) alongside sale prices to calculate gross rental yields across UK postcodes.
  • PropTech & CRM enrichment — feed normalized UK property listings, floorplans, EPC bands, and council-tax bands directly into real estate dashboards and agency software.

✨ What this Rightmove scraper does

  • ✅ All 5 Rightmove channels in one tool — switch seamlessly between For Sale (buy), To Rent (rent), Sold Prices (sold), Commercial (commercial), and Overseas (overseas) using a single dropdown.
  • ✅ Unlocked 1,000+ results pagination — walks all 42 result pages per search (24 properties/page = up to 1,008 listings per search) when maxPages: 0, and automatically expands across major UK cities/regions when maxItems > 1000 so large-scale runs never hit a wall.
  • ✅ Agent contact details built into list mode — agentName, agentPhone, agentBranchId, and agentLogo are captured directly from the search results, giving you instant B2B lead generation even with includeDetails: false.
  • ✅ Price-change & lifecycle intelligence — captures listingStatus (new, reduced, unchanged), listingUpdateDate, firstVisibleDate, updateDate, and auto-calculated daysOnMarket.
  • ✅ Complete sold-price transaction history — the sold channel extracts a full priceHistory JSON array of every past sale for each property (price, date sold, tenure, new-build indicator) plus numberOfTransactions.
  • ✅ Optional deep property enrichment — enable includeDetails: true to visit each property page for full description, keyFeatures, sizeSqft, epcRating, councilTax band, leaseYears remaining, and complete floorplan URLs.
  • ✅ Granular search filters — filter by UK city/region dropdown, custom locationIdentifier (postcode/outcode/station), search radius, min/max price, min/max bedrooms, property types (detached, semi-detached, terraced, flat, bungalow, land, park-home), and exclusions (newHome, retirement, sharedOwnership, auction).
  • ✅ Zero duplicates — every property is de-duplicated by propertyId across pages and locations.

🎯 Use cases

AudienceHow they use this Rightmove scraper
Estate & Lettings AgenciesGenerate branch-level B2B lead lists with phone numbers, track local competitor inventory, and spot withdrawn or reduced stock.
Property Investors & SourcersFilter for price drops (sortType: "10"), long leaseholds, specific bedroom counts, or development land across target UK cities.
Valuers, Surveyors & LendersExtract historical sold prices (channel: "sold") with multi-decade transaction histories and exact coordinates for comparable evidence.
PropTech & AI PlatformsIngest clean, schema-validated JSON property feeds via the Apify API to power property search assistants, AVMs, and investment calculators.
Corporate Relocation & Build-to-RentMonitor rental stock velocity, asking rents, and council-tax bands across commuter belts and major employment hubs.
Economists & Market AnalystsTrack regional housing supply, price-to-sqft ratios, and time-on-market trends across London, Manchester, Birmingham, Edinburgh, and beyond.

📥 Input parameters

Configure the scraper using the visual form in the Apify Console or pass JSON parameters via the API. Every field is optional — an empty input {} runs a fast multi-city UK sample.

ParameterTypeDefault / PrefillDescription
channelstring"buy"Listing channel: buy (For sale), rent (To rent), sold (Sold prices), commercial, or overseas.
locationstring"mixed" (prefill: London REGION^87490)Select from 19 major UK cities (London, Manchester, Birmingham, Leeds, Liverpool, Bristol, Edinburgh, Glasgow, Sheffield, Nottingham, Cardiff, Newcastle, Brighton, Reading, Cambridge, Oxford, Leicester, Coventry, Southampton) or "mixed" for a multi-city sweep.
propertyTypesarray[] (All)Filter by property type: detached, semi-detached, terraced, flat, bungalow, land, park-home.
dontShowarray[]Exclude categories: newHome, retirement, sharedOwnership, auction.
minBedrooms / maxBedroomsinteger0 (Any)Minimum and maximum bedroom count filter.
minPrice / maxPriceinteger0 (Any)Minimum and maximum price in GBP (£).
radiusnumber0Search radius in miles around the location (0 to 40 miles).
includeSoldbooleantrueInclude Sold Subject to Contract (SSTC) and Under Offer properties alongside available listings.
sortTypestring"2" (Newest listed)Sort order: "2" (Newest listed), "6" (Most recent), "10" (Most reduced / price drops), "4" (Highest price), "1" (Lowest price).
includeDetailsbooleanfalseVisit each property's detail page for full description, key features, EPC rating, council-tax band, lease years, and floorplans. Keep false for rapid list + agent phone scraping.
maxItemsinteger100 (prefill: 50)Maximum properties to collect (0 = unlimited). Automatically expands across UK locations when set above 1,000.
maxPagesinteger0 (Auto)Maximum result pages per search (~24 listings/page, up to 42 pages per location). 0 = auto/unlimited governed by maxItems.
locationIdentifierstring""Advanced: Rightmove location code (e.g. REGION^87490, POSTCODE^1013367, OUTCODE^2495) to search any UK town or postcode. Overrides location.
startUrlsarray[]Advanced: Direct Rightmove search URLs, sold-prices URLs, or individual property detail URLs.
proxyConfigurationobjectResidential GBProxy configuration. UK Residential proxy is preconfigured for reliable high-volume extraction.
requestDelayinteger300Delay between requests in milliseconds (0–5000).
maxConcurrencyinteger10Parallel detail-page workers (1–25).

Example 1 — Fast London For-Sale Lead & Listing Scrape (Prefill)

{
"channel": "buy",
"location": "REGION^87490",
"includeDetails": false,
"maxItems": 50,
"maxPages": 0
}

Example 2 — 1,000+ UK Properties with Price Reductions

{
"channel": "buy",
"location": "mixed",
"sortType": "10",
"includeDetails": false,
"maxItems": 1200,
"maxPages": 0
}

Example 3 — Deep Property Enrichment (EPC, Council Tax, Lease Years & Floorplans)

{
"channel": "buy",
"location": "REGION^904",
"maxPrice": 450000,
"propertyTypes": ["flat", "terraced"],
"minBedrooms": 2,
"includeDetails": true,
"maxItems": 100
}

Example 4 — Land Registry Sold Prices & Full Transaction History

{
"channel": "sold",
"location": "REGION^87490",
"maxItems": 200
}

📤 Output format & field reference

Each scraped property is stored as a structured JSON object in the Apify Dataset. All fields are normalized to consistent strings for seamless downstream compatibility with CSV/Excel exports, SQL databases, and BI pipelines.

🏠 Core Property & Location Fields

FieldCoverageDescription
propertyId🟢 High (100%)Unique Rightmove property ID (or UUID on the sold channel).
title🟢 High (100%)Listing headline / full property type description (e.g. "5 bedroom penthouse for sale").
channel🟢 High (100%)Listing channel: BUY, RENT, SOLD, COMMERCIAL, or OVERSEAS.
propertySubType🟢 High (~99%)Specific subtype such as Flat, Terraced, Semi-Detached, Detached, Penthouse.
propertyType🟡 ConditionalNormalized property category (populated on SOLD records).
bedrooms🟢 High (~98%)Number of bedrooms (e.g. "3").
bathrooms🟢 High (~95%)Number of bathrooms (e.g. "2").
displayAddress🟢 High (100%)Public display address (e.g. "Park Modern, 123 Bayswater Road, London, W2").
latitude / longitude🟢 High (100%)Exact WGS-84 geographic coordinates for map plotting and geospatial joins.
propertyUrl🟢 High (100%)Canonical URL to the listing on Rightmove.co.uk.
searchLocation🟢 High (100%)Search location label that produced the record.
scrapedAt🟢 High (100%)ISO 8601 timestamp when the property was extracted.

💷 Pricing, Lifecycle & Sold History Fields

FieldCoverageDescription
price🟢 High (100%)Formatted asking price, rent, or latest sold price (e.g. "£550,000" or "£2,400 pcm").
priceAmount🟢 High (100%)Numeric GBP price string (e.g. "550000") for sorting and quantitative calculation.
priceQualifier🟡 ConditionalPrice qualifier when present (e.g. "Guide Price", "Offers in Excess of", "Offers Over").
priceFrequency🟢 High (100% BUY/RENT)Payment frequency (e.g. "monthly", "weekly", "yearly", "not specified").
listingStatus🟢 High (100%)Reason for latest update: "new", "reduced", "unchanged", or "Sold".
listingUpdateDate🟢 High (~99% BUY/RENT)ISO timestamp of the latest price change or listing update.
firstVisibleDate🟢 High (100% BUY/RENT)ISO timestamp when the property first appeared on Rightmove.
updateDate🟢 High (~99% BUY/RENT)Last modification timestamp.
daysOnMarket🟢 High (100% BUY/RENT)Automatically calculated days elapsed since firstVisibleDate.
dateSold🟡 Conditional (SOLD)Date of the most recent sale (e.g. "18 Aug 2026"), populated on the sold channel.
priceHistory🟡 Conditional (SOLD)JSON array of all historical sales at the address (price, dateSold, tenure, newBuild).
numberOfTransactions🟡 Conditional (SOLD)Total count of recorded historical sales for the property.

📞 Estate Agent & B2B Lead Fields

FieldCoverageDescription
agentName🟢 High (100% BUY/RENT)Estate or lettings agency name and branch (e.g. "Savills Residential, Margaret Street").
agentPhone🟢 High (~99% BUY/RENT)Direct branch telephone number (e.g. "020 3834 7939") — captured even without detail enrichment!
agentBranchId🟢 High (100% BUY/RENT)Rightmove internal branch identifier for grouping inventory per agency office.
agentLogo🟢 High (~95% BUY/RENT)URL to the agency's brand logo image.
premiumListing🟢 High (100%)"true" or "false" indicating paid featured/premium placement by the agent.

📐 Specifications, Media & Detail Enrichment Fields

FieldCoverageDescription
tenure🟢 High (~95% BUY)FREEHOLD, LEASEHOLD, SHARE_OF_FREEHOLD, or COMMONHOLD.
leaseYears🟡 Conditional (Detail)Remaining years on the lease for leasehold properties (requires includeDetails: true).
displaySize🟡 ConditionalFormatted floor area string when published on the listing card (e.g. "1,240 sq. ft.").
sizeSqft🟡 Conditional (Detail)Numeric floor area in square feet extracted from the detail page or listing.
epcRating🟡 Conditional (Detail)Energy Performance Certificate rating band (A–G, requires includeDetails: true).
councilTax🟡 Conditional (Detail)UK Council Tax band (A–H, requires includeDetails: true).
summary🟢 High (100% BUY/RENT)Short property summary snippet from the search results.
description🟡 Conditional (Detail)Full multi-paragraph property description (requires includeDetails: true).
keyFeatures🟡 ConditionalJSON array of bullet-point property features (e.g. ["Private garden", "Chain free"]).
images / numberOfImages🟢 High (100% BUY/RENT)JSON array of property photo URLs and total photo count.
floorplans / numberOfFloorplans🟡 Conditional (Detail)JSON array of floorplan image URLs (populated with includeDetails: true) and floorplan count.

Sample JSON output (For Sale listing)

{
"propertyId": "89011206",
"title": "5 bedroom penthouse for sale",
"channel": "BUY",
"propertyType": null,
"propertySubType": "Penthouse",
"bedrooms": "5",
"bathrooms": "5",
"price": "£42,000,000",
"priceAmount": "42000000",
"priceQualifier": "Guide Price",
"priceFrequency": "not specified",
"displayAddress": "Park Modern, 123 Bayswater Road, London, W2",
"latitude": "51.51029",
"longitude": "-0.187037",
"displaySize": "5,581 sq. ft.",
"sizeSqft": "5581",
"tenure": "LEASEHOLD",
"leaseYears": "993",
"summary": "Exceptionally rare Park Modern penthouse with 5 bedrooms...",
"epcRating": "C",
"councilTax": "H",
"listingStatus": "new",
"listingUpdateDate": "2026-05-28T10:52:06Z",
"firstVisibleDate": "2026-05-28T10:46:29Z",
"updateDate": "2026-10-31T03:44:16Z",
"daysOnMarket": "157",
"agentName": "Savills Residential Developments, Margaret Street",
"agentPhone": "020 3834 7939",
"agentBranchId": "48985",
"agentLogo": "https://www.rightmove.co.uk/partner-logo/13328-PRODUCTS_LOGO-176606.png",
"propertyUrl": "https://www.rightmove.co.uk/properties/89011206#/?channel=RES_BUY",
"images": "[\"https://media.rightmove.co.uk/.../IMG_00_0000.jpeg\"]",
"floorplans": "[\"https://media.rightmove.co.uk/property-floorplan/7ec89efe9/....gif\"]",
"numberOfImages": "31",
"numberOfFloorplans": "1",
"premiumListing": "true",
"keyFeatures": "[\"Landmark penthouse in Park Modern development\",\"5 bed, 5 bath\"]",
"searchLocation": "buy — REGION^87490",
"scrapedAt": "2026-11-02T00:25:49.649Z"
}

Sample JSON output (Sold Prices channel)

{
"propertyId": "fdfc44fa-3b1c-4925-8722-1970861b1700",
"title": "Flat",
"channel": "SOLD",
"propertyType": "Flat",
"bedrooms": "1",
"bathrooms": "1",
"price": "£198,000",
"priceAmount": "198000",
"displayAddress": "3, Porchfield Square, Manchester M3 4FG",
"latitude": "53.47655",
"longitude": "-2.2515",
"tenure": "LEASEHOLD",
"listingStatus": "Sold",
"dateSold": "18 Aug 2026",
"numberOfTransactions": "9",
"priceHistory": "[{\"price\":\"£198,000\",\"dateSold\":\"18 Aug 2026\",\"tenure\":\"LEASEHOLD\",\"newBuild\":\"false\"},{\"price\":\"£210,000\",\"dateSold\":\"20 Dec 2024\"},{\"price\":\"£55,000\",\"dateSold\":\"29 Sep 1995\"}]",
"propertyUrl": "https://www.rightmove.co.uk/house-prices/details/fdfc44fa-3b1c-4925-8722-1970861b1700",
"searchLocation": "sold — Manchester",
"scrapedAt": "2026-11-02T00:34:40.664Z"
}

🔁 Pagination & 1,000+ scale

  • Deep 42-page search pagination: Rightmove serves 24 properties per page and caps any single search query at 42 pages (index=0..984, up to 1,008 properties). When maxPages is left at 0 (the default), the scraper automatically walks all 42 pages until maxItems is reached.
  • Automatic multi-location expansion past 1,000 items: When you set maxItems > 1000 (or location: "mixed"), the actor automatically expands across all 19 major UK cities and regions (London, Manchester, Birmingham, Leeds, Liverpool, Bristol, Edinburgh, Glasgow, Sheffield, Nottingham, Cardiff, Newcastle, Brighton, Reading, Cambridge, Oxford, Leicester, Coventry, Southampton) so you can collect thousands of de-duplicated UK properties in a single run.
  • Custom segmentation via startUrls: Want 10,000+ properties from a single city like London? Pass multiple price-band or borough search URLs in startUrls — each URL gets its own 42-page (1,008-property) allowance and all results are de-duplicated globally.

⚙️ How to use

  1. Configure input: Pick your channel (buy, rent, sold, commercial, overseas), choose a UK location from the dropdown (or paste startUrls), and set maxItems.
  2. Choose speed vs. depth: Leave includeDetails: false for rapid list-mode extraction (still includes prices, coordinates, images, and agent phone numbers!) or enable includeDetails: true for EPC, council tax, lease years, and floorplans.
  3. Run & export: Click Start and download your dataset as JSON, CSV, Excel, HTML, or XML, or consume it via the Apify API.

JavaScript / TypeScript API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('haketa/rightmove-scraper').call({
channel: 'buy',
location: 'REGION^87490',
maxPrice: 600000,
includeDetails: false,
maxItems: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} Rightmove properties`);

Python API example

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("haketa/rightmove-scraper").call(run_input={
"channel": "buy",
"location": "REGION^87490",
"maxPrice": 600000,
"includeDetails": False,
"maxItems": 200,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
for prop in items[:5]:
print(prop["title"], "|", prop["price"], "|", prop["agentPhone"])

💡 Pro tips for best results

  • Fastest B2B agent lead generation: Set includeDetails: false. Because agentName, agentPhone, agentBranchId, and listingStatus are embedded right in the search cards, list mode extracts ~24 properties per request in seconds.
  • Need EPC, Council Tax & Lease Length? Enable includeDetails: true to fetch each property's detail page.
  • Finding motivated sellers & price drops: Set sortType: "10" (Most reduced) and filter on listingStatus: "reduced" + daysOnMarket.
  • Searching any UK postcode or station: Copy the locationIdentifier parameter from any Rightmove search URL in your browser (e.g. POSTCODE^1013367 or STATION^9491) and paste it into locationIdentifier, or paste the full URL into startUrls.

❓ Frequently Asked Questions (FAQ)

How many properties can I scrape per run? A single Rightmove search query returns up to 1,008 properties across 42 pages. When you request maxItems: 1000+ (or use location: "mixed" or multiple startUrls), the scraper automatically chains multiple UK cities or search URLs to collect thousands of unique properties in one run.

Why is includeDetails off by default? Turning includeDetails: false by default makes standard runs 10× faster and much cheaper while still capturing 30+ core fields — including asking price, address, coordinates, bedrooms, bathrooms, photos, listing update dates, and estate agent phone numbers. Enable includeDetails: true whenever you need full text descriptions, floorplans, EPC bands, council-tax bands, or remaining lease years.

Do I need a Rightmove login or cookies? No login, account, or cookies are required.

Are estate agent phone numbers included? Yes — agentName, agentPhone, agentBranchId, and agentLogo are populated on ~99–100% of BUY/RENT listings right from the search results.

How does the sold channel work? Setting channel: "sold" switches the scraper to Rightmove's Land Registry house-prices dataset, returning historical sold prices along with a priceHistory JSON array containing every recorded past sale for each property.

What formats can I export to? You can download results in JSON, CSV, Excel (XLSX), HTML, or XML from the Apify Console, or pull them programmatically via the Apify REST API, Python/JS SDKs, Google Sheets, Make, Zapier, or webhooks.


Explore property portals across global markets from the same publisher:


📋 Changelog

  • v1.2 (2026-11) — Unlocked full 42-page (1,008 properties per search) deep pagination with maxPages: 0 default + automatic multi-region expansion across 19 UK cities when maxItems > 1,000; set includeDetails: false default/prefill for fast <60s prefill execution; expanded documentation and field coverage tables.
  • v1.1 (2026-11) — Added structured councilTax band and leaseYears remaining extraction from the property detail model; improved sizeSqft, tenure, and epcRating coverage; verified 500-property London run with 0 duplicates.
  • v1.0 (2026-09) — Initial release supporting all 5 Rightmove channels (buy, rent, sold, commercial, overseas) with agent phone numbers, price update status, and Land Registry sold transaction history.