Rightmove Scraper — Price History, Agent Contacts & EPC avatar

Rightmove Scraper — Price History, Agent Contacts & EPC

Pricing

from $0.75 / 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 $0.75 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Rightmove UK Property Scraper — Price History, Agent Contacts & EPC

The fastest, cheapest, and most data-rich Rightmove scraper on Apify. Extracts properties from the UK's #1 property portal — for-sale, to-rent, sold prices, commercial and overseas listings — via Next.js JSON extraction. Unlike competitors who parse HTML or run heavy browsers, we extract structured JSON directly from Rightmove's server-rendered data, giving you 50+ fields per property including agent phone numbers, price change history, days on market, tenure, floorplans and EPC ratings.

No proxy. No browser. No login. Rightmove serves its data as clean JSON — we just structure it for you.


Why This Actor?

Pure JSON Extraction — Faster & Cheaper

Rightmove is a Next.js application that embeds all search result data inside a <script id="__NEXT_DATA__"> JSON blob. We extract that blob directly — no HTML parsing, no browser rendering, no CAPTCHA solving. This means:

  • Faster: 50-100 properties/second in list-only mode
  • Cheaper: Zero proxy cost, minimal compute (256MB RAM)
  • More reliable: JSON structure changes less often than HTML markup
  • Richer data: Fields that HTML scrapers miss (listingUpdate reason, customer contactTelephone, premiumListing)

Price Change Intelligence

Rightmove exposes a listingUpdate field for every property. We surface whether a listing is new, reduced, or unchanged, with exact dates. Combined with firstVisibleDate, you get days-on-market automatically calculated. No other actor explicitly tracks price change history.

Agent Contact Built-In

Unlike most competitors that require a detail-page visit to get agent info, Rightmove includes agent phone numbers in the search result JSON. This means you can extract lead-generation data even in fast list-only mode (includeDetails: false).

All 5 Channels

ChannelPathDescription
BUYproperty-for-saleResidential sales
RENTproperty-to-rentResidential lettings
SOLDhouse-pricesLand Registry sold prices
Commercialcommercial-property-for-saleShops, offices, industrial
Overseasoverseas-property-for-saleSpain, France, Portugal, etc.

Data Fields

Every property record includes:

CategoryFields
IdentitypropertyId, title, propertyUrl, channel
PropertypropertyType, propertySubType, bedrooms, bathrooms
Priceprice (formatted), priceAmount (numeric GBP), priceQualifier, priceFrequency
LocationdisplayAddress, latitude, longitude
Size & TenuredisplaySize, sizeSqft, tenure, leaseYears
StatuslistingStatus (new/reduced/unchanged), listingUpdateDate, firstVisibleDate, updateDate, daysOnMarket
Descriptionsummary (from search), description (full, from detail), keyFeatures (JSON array)
EnergyepcRating, councilTax (from detail page)
AgentagentName, agentPhone, agentBranchId, agentLogo
Mediaimages (JSON array), floorplans (JSON array), numberOfImages, numberOfFloorplans
ListingpremiumListing, searchLocation, scrapedAt

Input Parameters

ParameterTypeDefaultDescription
channelselectbuyBUY / RENT / SOLD / Commercial / Overseas
locationIdentifierstringREGION^93917Rightmove location ID (London). Find from URL: REGION^93917 = London, REGION^93548 = Manchester, POSTCODE^1013367 = NW3
minBedroomsinteger0Minimum bedrooms
maxBedroomsinteger0Maximum bedrooms
minPriceinteger0Min price in GBP
maxPriceinteger500000Max price in GBP (0 = unlimited)
propertyTypesarray[]Filter: detached, semi-detached, terraced, flat, bungalow, land, park-home
includeSoldbooleantrueInclude SSTC / Under Offer
dontShowarray[]Exclude: newHome, retirement, sharedOwnership, auction
radiusnumber0Search radius in miles
sortTypeselect2Newest Listed / Most Recent / Most Reduced / Highest Price / Lowest Price
startUrlsarray[]Direct Rightmove URLs (overrides all filters)
includeDetailsbooleantrueVisit each property for full description, EPC, floorplans, council tax
maxItemsinteger100Max properties (0 = no limit)
maxPagesinteger4Max result pages (25 props/page, ~42 pages max per search)
requestDelayinteger300Delay between requests in ms
maxConcurrencyinteger10Parallel detail page requests

Location Identifiers

Rightmove uses internal location codes. Find them from any Rightmove search URL:

LocationIdentifier
LondonREGION^93917
ManchesterREGION^93548
BirminghamREGION^93903
LeedsREGION^93529
BristolREGION^93898
LiverpoolREGION^93538
EdinburghREGION^93516
CardiffREGION^93932
NW3 postcodePOSTCODE^1013367
SW1A postcodePOSTCODE^1021947

For other locations, search on rightmove.co.uk and copy the locationIdentifier from the URL.


Usage Examples

1. Basic Search — London flats under £500K

{
"channel": "buy",
"locationIdentifier": "REGION^93917",
"maxPrice": 500000,
"propertyTypes": ["flat"],
"minBedrooms": 1,
"maxItems": 100
}

2. Rental Market — Manchester 2+ beds

{
"channel": "rent",
"locationIdentifier": "REGION^93548",
"minBedrooms": 2,
"maxPrice": 1500,
"includeDetails": false
}

3. Sold Prices — Last 100 sales in a postcode

{
"channel": "sold",
"locationIdentifier": "POSTCODE^1013367",
"radius": 0.5,
"maxItems": 100
}

4. Commercial Property

{
"channel": "commercial",
"locationIdentifier": "REGION^93917",
"maxItems": 50
}

5. Start URLs — Pre-filtered Searches

{
"startUrls": [
"https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION^93917&maxPrice=300000&propertyTypes=flat&dontShow=newHome,retirement,sharedOwnership"
],
"maxItems": 200
}

Use Cases

1. Estate Agent Lead Generation

Every listing includes the agent's branch name and phone number. Build targeted prospecting lists for:

  • Lettings agents in specific postcodes
  • Independent vs. chain agents
  • Agents with premium listings (higher marketing spend)

2. Property Market Analytics

  • Price trends: Track listingStatus (new vs. reduced) by area over time
  • Days on market: Measure market velocity by property type and location
  • Supply analysis: Count active listings by channel, price band, property type
  • Rental yields: Cross-reference BUY and RENT data for yield estimates

3. Investment Research

  • Identify below-market properties (listingStatus: reduced)
  • Track new-to-market opportunities (listingStatus: new)
  • Filter by tenure (freehold vs. leasehold)
  • Calculate price/sqft from priceAmount and sizeSqft

4. Sold Price Comparables

Use the SOLD channel to access Land Registry sold-price data:

  • Comps for valuation and underwriting
  • Price-per-sqft benchmarks by postcode
  • Transaction volume analysis

5. Development Site Sourcing

  • Filter by property type (land, development opportunities)
  • Identify properties with large lots or development potential
  • Track auction listings

6. B2B PropTech

Feed structured property data into:

  • Property valuation models
  • Automated valuation tools (AVMs)
  • Investment analysis platforms
  • CRM enrichment for estate agency software

7. Market Research Reports

Schedule recurring weekly/monthly runs to track:

  • New listing volume by region
  • Average asking prices and trends
  • Price reduction frequency (market cooling indicator)
  • Supply/demand balance metrics

8. Tenant/Landlord Matching

For corporate relocation and B2B tenant services:

  • Find rental properties matching employee requirements
  • Track available stock in specific school catchment areas
  • Monitor rental price trends for corporate housing budgets

Example Output

{
"propertyId": "165879002",
"title": "3 bedroom end of terrace house for sale",
"channel": "BUY",
"propertyType": "House",
"propertySubType": "End of Terrace",
"bedrooms": "3",
"bathrooms": "2",
"price": "£500,000",
"priceAmount": "500000",
"priceQualifier": "Offers in Excess of",
"displayAddress": "Lynhurst Crescent, Hillingdon, UB10",
"latitude": "51.547821",
"longitude": "-0.437776",
"displaySize": "751 sq. ft.",
"tenure": "FREEHOLD",
"listingStatus": "new",
"listingUpdateDate": "2026-06-15T14:04:31Z",
"firstVisibleDate": "2025-08-18T12:43:05Z",
"daysOnMarket": "67",
"agentName": "Coopers, Hillingdon",
"agentPhone": "01895 544542",
"agentBranchId": "49645",
"propertyUrl": "https://www.rightmove.co.uk/properties/165879002",
"numberOfImages": "16",
"numberOfFloorplans": "1",
"premiumListing": "true",
"searchLocation": "buy — REGION^93917",
"scrapedAt": "2026-06-22T12:00:00.000Z"
}

Performance

ModeSpeedMemoryProxy
List-only (includeDetails: false)~50-100 props/sec~128 MBNone needed
With details (includeDetails: true)~10-20 props/sec~256 MBNone needed
Direct URLs~10-20 props/sec~256 MBNone needed

Typical cost: 100 properties with full details = ~30-60 seconds, minimal CU consumption.


Limitations

  • 1,050 results per search: Rightmove caps each query at ~42 pages × 25 results. For larger datasets, segment by location, price band, or property type.
  • Detail page rate: With includeDetails: true, each property gets one additional HTTP request. Use maxConcurrency: 10-15 for optimal speed.
  • SOLD channel: Returns recent Land Registry sold prices, not the full transaction history.
  • Commercial/Overseas: Filter options are more limited than residential BUY/RENT.

Integration

JavaScript / TypeScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('haketa/rightmove-scraper').call({
channel: 'buy',
locationIdentifier: 'REGION^93917',
maxPrice: 500000,
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python

from apify_client import ApifyClient
client = ApifyClient(token='YOUR_TOKEN')
run = client.actor('haketa/rightmove-scraper').call(run_input={
'channel': 'buy',
'locationIdentifier': 'REGION^93917',
'maxPrice': 500000,
'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items

CLI

apify call haketa/rightmove-scraper \
--input '{"channel":"buy","locationIdentifier":"REGION^93917","maxPrice":500000,"maxItems":100}'

This actor extracts publicly available property listings from Rightmove.co.uk. Users are responsible for complying with applicable laws and Rightmove's terms of service. We recommend:

  • Using the data for legitimate business intelligence, market research, and property analysis
  • Respecting the platform's availability with reasonable request delays
  • Not redistributing the data in violation of the source site's terms
  • Complying with GDPR and UK Data Protection Act for any personal data processing

The most efficient Rightmove scraper on Apify — pure JSON extraction, zero proxy cost, all 5 channels, agent contacts built-in.