Rightmove Property Scraper - UK Sale & Rent Listings avatar

Rightmove Property Scraper - UK Sale & Rent Listings

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Rightmove Property Scraper - UK Sale & Rent Listings

Rightmove Property Scraper - UK Sale & Rent Listings

Scrapes UK property listings from Rightmove (rightmove.co.uk): sale and rent, price, address, coordinates, bedrooms, agent, images, floorplans, EPC, council tax, tenure and stations. Goes past the 1,000-result search limit and can skip listings already saved.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

ActorFlow

ActorFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Rightmove Property Scraper (UK Sale & Rent Listings)

Rightmove Property Scraper cover

Scrape UK property listings from Rightmove (rightmove.co.uk): price, address, postcode, coordinates, bedrooms, bathrooms, tenure, council tax band, size, description, images, floorplans, EPC, agent contacts and nearest stations. Export to JSON, CSV or Excel, or call it as an API. Paste a search or property URL, press Start, and use the cache to get only new listings on every scheduled run.

Target website: Rightmove (rightmove.co.uk)

✨ Features of this Rightmove property scraper

  • Property listing extraction — homes for sale and to rent from any Rightmove search page, with 70 fields per property when details are on.
  • Pagination support — walks every results page for each search.
  • Search URL and property URL input — paste property-for-sale or property-to-rent pages (/property-for-sale/London.html, /property-for-sale/find.html?...) or single property pages (/properties/<id>).
  • URL filters kept — price, bedrooms, property types, radius, include sold STC / let agreed, must-have, don't-show and sort order in your URL are used as they are.
  • Beyond the 1,000-result limit — Rightmove shows at most 1,008 results per search. When you ask for more, the scraper splits the search into price ranges (and, for a crowded price, property types and bedrooms) that each fit under the limit, using Rightmove's own filters and real result counts.
  • Cache, new listings and price changes — use one cache name across scheduled runs and get only new properties and price changes.
  • Fast card-only mode — switch off property details to save only what the search results show.
  • Proxy support — configurable, off by default.
  • No browser required — fast and cheap runs.

🚀 How to scrape Rightmove property listings in 5 steps

  1. Sign up for a free Apify account — includes $5 monthly credit.
  2. Open the actor page and click Try for free.
  3. Paste one or more Rightmove search URLs (or property URLs) into Search or property URLs.
  4. Click Start and wait for the run to complete.
  5. Download results from the Output tab in JSON, CSV, or Excel format.

You can also run this actor via the Apify API or integrate it directly into your workflows using Zapier, Make, or n8n.

💰 Pricing for the Rightmove scraper

This actor uses pay-per-result billing based on the compute units a run consumes.

  • New Apify accounts include $5 of free monthly credit.
  • It reads the data Rightmove embeds in its pages instead of driving a browser, so it costs significantly less to run than browser-based scrapers.
  • Proxies are off by default, which keeps runs cheapest.
  • Properties skipped by the cache are not charged.

🖼️ Rightmove scraper input screenshot

Rightmove Property Scraper input form in Apify Console: search or property URLs, max items per search, scrape property details, cache project name and proxy configuration

🔧 Rightmove scraper input configuration

FieldTypeRequiredDefaultDescription
Search or property URLs (startUrls)array✅—Rightmove search pages (for sale or to rent) or property pages. Filters in the URL are kept.
Max items per search (maxItems)integer—5Maximum properties saved for each start URL. Above 1,008 the search is split by price automatically.
Scrape property details (scrapeDetails)boolean—trueOpens each property page for the full description, all images, floorplans, EPC, council tax band, tenure, size, lettings terms, agent address and stations. Off = search-result data only.
Cache project name (cacheProjectName)string——Same name on each run = only new properties and price changes.
Proxy configuration (proxyConfiguration)object—no proxySwitch on Apify Proxy for very large runs if you see blocks.

Supported URL types:

  • Search for sale: https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490
  • Search to rent: https://www.rightmove.co.uk/property-to-rent/find.html?locationIdentifier=REGION%5E87490
  • Location pages: https://www.rightmove.co.uk/property-for-sale/London.html, https://www.rightmove.co.uk/property-for-sale/Leeds/detached.html
  • Property page: https://www.rightmove.co.uk/properties/93988728

📦 Rightmove scraper output data

Each property is one row with the same keys every time (null or an empty list where Rightmove has no value): id, url, channel, title, summary, description, propertyType, bedrooms, bathrooms, price, priceCurrency, priceFrequency, priceQualifier, priceDisplay, priceSecondary, pricePerMonth, pricePerWeek, pricePerSqFt, tenure, leaseYearsRemaining, councilTaxBand, annualServiceCharge, annualGroundRent, sharedOwnership, sizeSqFt, sizeSqM, sizeAcres, address, outcode, incode, postcode, country, latitude, longitude, locationAccuracy, keyFeatures, propertyFeatures, images, imageCount, floorplans, floorplanCount, virtualTours, brochures, epcImages, listingStatus, addedOrReduced, firstListedAt, listingUpdatedAt, listingUpdateReason, isFeatured, isNewHome, isAuction, isRetirement, letAvailableDate, deposit, minimumTermMonths, letType, furnishType, agentName, agentCompany, agentBranch, agentBranchId, agentPhone, agentAddress, agentUrl, agentLogo, nearestStations, nearestAirports, sourceUrl, changeType, previousPrice, scrapedAt.

The dataset has 2 views: Overview (id, channel, title, price, bedrooms, bathrooms, type, postcode, status, change type, link) and Agents and listing dates (agent name, phone and page, when the property was added or reduced, tenure, council tax band).

Output at a glance:

PropertyChannelPrice (GBP)BedsTypePostcode
4 bedroom detached house for sale in Ryebuy1,500,0004DetachedSW16 3EN
2 bedroom apartment for sale in Burfordbuy350,0002ApartmentSE6 4DE
1 bedroom flat for sale in Upper Richmond Roadbuy500,0001FlatSW15 2DD
5 bedroom flat for sale in Harrington Gardensbuy4,000,0005FlatSW7 4LS
4 bedroom apartment for sale in Curzon Streetbuy24,950,0004ApartmentW1J 8PB

Sample output (raw JSON, long lists and text shortened):

[
{
"id": "94565487",
"url": "https://www.rightmove.co.uk/properties/94565487",
"channel": "buy",
"title": "4 bedroom detached house for sale in Ryecroft Road, London, SW16",
"summary": "A four bedroom semi-detached home with spectacular garden.",
"description": "A four bedroom semi-detached home with spectacular garden.\n\n\rDescription\n\nIn a great location for West Norwood and overlooking the green spaces of Streatham Common Oak wood and Norwood Grove, this unique four-bedroom semidetached cottage offers an exceptional blend of generous living space, characte...",
"propertyType": "Detached",
"bedrooms": 4,
"bathrooms": 2,
"price": 1500000,
"priceCurrency": "GBP",
"priceFrequency": null,
"priceQualifier": "Guide Price",
"priceDisplay": "£1,500,000",
"priceSecondary": null,
"pricePerMonth": null,
"pricePerWeek": null,
"pricePerSqFt": 683.37,
"tenure": "freehold",
"leaseYearsRemaining": null,
"councilTaxBand": "G",
"annualServiceCharge": null,
"annualGroundRent": null,
"sharedOwnership": false,
"sizeSqFt": 2195,
"sizeSqM": 204,
"sizeAcres": 0.05,
"address": "Ryecroft Road, London, SW16",
"outcode": "SW16",
"incode": "3EN",
"postcode": "SW16 3EN",
"country": "England",
"latitude": 51.421444,
"longitude": -0.113534,
"locationAccuracy": "ACCURATE_POINT",
"keyFeatures": [
"Semi-detached home",
"Outstanding rear garden offering over 122 ft of green space"
],
"propertyFeatures": {
"heating": [],
"parking": [
"Yes"
],
"garden": [
"Yes"
],
"electricity": [],
"water": [],
"sewerage": [],
"broadband": [],
"accessibility": [],
"floodedInLastFiveYears": null,
"floodDefences": null,
"floodSources": [],
"listedBuilding": null,
"restrictions": null,
"rightsOfWay": null
},
"images": [
"https://media.rightmove.co.uk/property-photo/00b69fa8d/94565487/00b69fa8deb9b55969ab714b0ba088e4.jpeg",
"https://media.rightmove.co.uk/property-photo/9e88eb78a/94565487/9e88eb78ae916a1deaa9ef4ac5bd73fe.jpeg"
],
"imageCount": 23,
"floorplans": [
"https://media.rightmove.co.uk/property-floorplan/cfd66f4f9/94565487/cfd66f4f96f06a2f3778df104b8679a7.jpeg"
],
"floorplanCount": 1,
"virtualTours": [],
"brochures": [
{
"url": "https://search.savills.com/property-detail/gbCMRSCPS260214?utm_source=rightmove.co.uk&utm_medium=referral&utm_campaign=WebDetails",
"caption": "Web Details"
},
{
"url": "https://savills.fluxpro.io/Brochure/CPS260214",
"caption": "Particulars"
}
],
"epcImages": [
"https://media.rightmove.co.uk/property-epc/f3c2bb1e6/94565487/f3c2bb1e65ebf2936682370a382e317a.png"
],
"listingStatus": null,
"addedOrReduced": "Added today",
"firstListedAt": "2026-10-21",
"listingUpdatedAt": "2026-10-21T14:21:25Z",
"listingUpdateReason": "new",
"isFeatured": true,
"isNewHome": false,
"isAuction": false,
"isRetirement": false,
"letAvailableDate": null,
"deposit": null,
"minimumTermMonths": null,
"letType": null,
"furnishType": null,
"agentName": "Savills, Clapham",
"agentCompany": "Savills",
"agentBranch": "Clapham",
"agentBranchId": 48916,
"agentPhone": "020 3879 5163",
"agentAddress": "57 Nightingale Lane,, London,, SW12 8ST",
"agentUrl": "https://www.rightmove.co.uk/estate-agents/agent/Savills/Clapham-48916.html",
"agentLogo": "https://media.rightmove.co.uk/partner-logo/13328-LOGO-1765972937.jpeg",
"nearestStations": [
{
"name": "Norbury Station",
"types": [
"NATIONAL_TRAIN"
],
"distanceMiles": 0.78
},
{
"name": "Streatham Station",
"types": [
"NATIONAL_TRAIN"
],
"distanceMiles": 0.83
}
],
"nearestAirports": [],
"sourceUrl": "https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490&sortType=6",
"changeType": null,
"previousPrice": null,
"scrapedAt": "2026-10-21T13:25:42.323Z"
},
{
"id": "91876368",
"url": "https://www.rightmove.co.uk/properties/91876368",
"channel": "buy",
"title": "2 bedroom apartment for sale in Burford Road, London, SE6",
"summary": "Guide price £350,000 - £375,000 Charming two-bedroom ground floor flat in a quiet residential setting, featuring a modern kitchen and bathroom, bright",
"description": "Guide price £350,000 - £375,000\n\nSituated within a quiet and well-established residential neighbourhood, this charming two-bedroom ground floor flat offers a wonderful combination of comfort, style and convenience.\n\nThe property comprises two well-appointed bedrooms, a modern kitchen and bathroom, a...",
"propertyType": "Apartment",
"bedrooms": 2,
"bathrooms": 1,
"price": 350000,
"priceCurrency": "GBP",
"priceFrequency": null,
"priceQualifier": "Guide Price",
"priceDisplay": "£350,000",
"priceSecondary": null,
"pricePerMonth": null,
"pricePerWeek": null,
"pricePerSqFt": null,
"tenure": "share of freehold",
"leaseYearsRemaining": null,
"councilTaxBand": "TBC",
"annualServiceCharge": null,
"annualGroundRent": null,
"sharedOwnership": false,
"sizeSqFt": null,
"sizeSqM": null,
"sizeAcres": null,
"address": "Burford Road, London, SE6",
"outcode": "SE6",
"incode": "4DE",
"postcode": "SE6 4DE",
"country": "England",
"latitude": 51.436174,
"longitude": -0.032585,
"locationAccuracy": "ACCURATE_POINT",
"keyFeatures": [],
"propertyFeatures": {
"heating": [],
"parking": [],
"garden": [
"Yes"
],
"electricity": [],
"water": [],
"sewerage": [],
"broadband": [],
"accessibility": [],
"floodedInLastFiveYears": null,
"floodDefences": null,
"floodSources": [],
"listedBuilding": null,
"restrictions": null,
"rightsOfWay": null
},
"images": [
"https://media.rightmove.co.uk/property-photo/1229872dd/91876368/1229872dd7800e12d32485388534011b.jpeg",
"https://media.rightmove.co.uk/property-photo/a47093cde/91876368/a47093cde777768a1d01ade05285f687.jpeg"
],
"imageCount": 12,
"floorplans": [
"https://media.rightmove.co.uk/property-floorplan/66c90fee6/91876368/66c90fee660ffb0ac5f34d9d0636e6c3.jpeg"
],
"floorplanCount": 1,
"virtualTours": [],
"brochures": [
{
"url": "http://www.winkworth.co.uk/sale/property/FHL260176",
"caption": "Web Details"
}
],
"epcImages": [
"https://media.rightmove.co.uk/property-epc/123a2c5ca/91876368/123a2c5ca340c474b6dd1b8f85777c87.png"
],
"listingStatus": null,
"addedOrReduced": "Reduced on 26/08/2026",
"firstListedAt": "2026-08-11",
"listingUpdatedAt": "2026-08-26T17:37:34Z",
"listingUpdateReason": "price_reduced",
"isFeatured": true,
"isNewHome": false,
"isAuction": false,
"isRetirement": false,
"letAvailableDate": null,
"deposit": null,
"minimumTermMonths": null,
"letType": null,
"furnishType": null,
"agentName": "Winkworth, Forest Hill",
"agentCompany": "Winkworth",
"agentBranch": "Forest Hill",
"agentBranchId": 40248,
"agentPhone": "020 3856 4168",
"agentAddress": "9 London Road,, London,, SE23 3TW",
"agentUrl": "https://www.rightmove.co.uk/estate-agents/agent/Winkworth/Forest-Hill-40248.html",
"agentLogo": "https://media.rightmove.co.uk/partner-logo/67287-LOGO-1765970428.jpeg",
"nearestStations": [
{
"name": "Bellingham Station",
"types": [
"NATIONAL_TRAIN"
],
"distanceMiles": 0.6
},
{
"name": "Catford Station",
"types": [
"NATIONAL_TRAIN"
],
"distanceMiles": 0.65
}
],
"nearestAirports": [],
"sourceUrl": "https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490&sortType=6",
"changeType": null,
"previousPrice": null,
"scrapedAt": "2026-10-21T13:25:42.323Z"
}
]

🔁 Scrape only new Rightmove listings with the cache

Type the same Cache project name on every scheduled run and the scraper remembers every property it has saved under that name. Properties already saved with the same price are skipped before the property page is even opened, are not charged and are not counted towards Max items. New properties get changeType: "new"; a property whose price changed gets changeType: "price_change" and the old price in previousPrice. Each cache name is a separate cache, so you can track several searches independently. Sort your search by newest first (sortType=6) and a run stops after the first page that has nothing new. Tip: put the actor on an Apify Schedule (for example daily) with the same input and cache name.

Example: get only the new listings for a location every day

To receive just the properties that appeared since yesterday for, say, Leeds, use this input and put the actor on a daily Apify Schedule with exactly the same input every time:

{
"startUrls": [
{ "url": "https://www.rightmove.co.uk/property-for-sale/Leeds.html?sortType=6" }
],
"maxItems": 1000,
"scrapeDetails": true,
"cacheProjectName": "leeds-for-sale-daily"
}

What happens:

  1. First run (nothing remembered yet): up to 1,000 properties are saved, each with changeType: "new". They are now remembered under leeds-for-sale-daily.
  2. Every later run: properties already saved with the same price are skipped (not opened, not charged). Only listings that appeared since the last run are saved as changeType: "new", and any whose price changed come as changeType: "price_change" with the old price in previousPrice.
  3. sortType=6 sorts newest first, so a run stops after the first page with nothing new. A quiet day is a single cheap request.
  4. Pick maxItems large enough on the first run to cover the whole location. Anything the first run did not reach is still unknown to the cache, so a later run will collect it as "new" (up to maxItems) before it stops.

For another place, change the search URL (copy it from rightmove.co.uk after choosing the location and filters) and use a different cacheProjectName. For rentals use a property-to-rent URL. To track several locations in one daily run, add several start URLs; they share one cache name.

🐍 How to scrape Rightmove with Python, JavaScript or the API

Run the actor programmatically with the official Apify clients. Replace <YOUR_API_TOKEN> with the token from your Apify Console.

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("<username>/rightmove-property-scraper").call(run_input={
"startUrls": [{"url": "https://www.rightmove.co.uk/property-for-sale/London.html"}],
"maxItems": 50,
"scrapeDetails": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('<username>/rightmove-property-scraper').call({
startUrls: [{ url: 'https://www.rightmove.co.uk/property-for-sale/London.html' }],
maxItems: 50,
scrapeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL — start a run and wait for the dataset:

curl -X POST "https://api.apify.com/v2/acts/<username>~rightmove-property-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.rightmove.co.uk/property-for-sale/London.html"}],"maxItems":50,"scrapeDetails":true}'

💡 What you can use Rightmove property data for

  • Property price monitoring and asking-price trends by postcode, street or region
  • Rental market analysis: rent per month and per week, deposits, furnishing and let types
  • Lead generation for estate agents, surveyors and mortgage brokers using agent and branch details
  • Investment screening: price per square foot, tenure, council tax band and EPC documents
  • Alerts for newly listed, reduced or sold-STC properties with the cache

Property investors, proptech teams, estate agencies, analysts and researchers in the UK real estate industry typically use this data.

⚠️ Limitations of the Rightmove scraper

  • Large counts — Rightmove's result counts change while you scrape, so a very large run can miss or repeat a few listings; repeats are removed.
  • Sold or let properties — properties marked sold STC, under offer or let agreed only appear when your URL includes them (for example includeSSTC=true).
  • Rate limiting — heavy usage may trigger rate limits; turn on a proxy for very large runs.

❓ Rightmove scraper FAQ

Can I scrape Rightmove legally?

The scraper only collects data already publicly visible on Rightmove: no login, paywall or private content is accessed. Scraping publicly available data is generally considered lawful (see hiQ Labs v. LinkedIn), but you are responsible for complying with Rightmove's Terms of Use and applicable laws such as GDPR if you process personal data like agent contacts.

What data does the Rightmove scraper return?

Price (with weekly and monthly rent), address, postcode, coordinates, bedrooms, bathrooms, property type, tenure, council tax band, size, key features and description, images, floorplans, EPC images, brochures, virtual tours, listing status (sold STC, let agreed), listing dates, lettings terms, agent name, branch, phone, address and logo, and nearest stations. Switching off Scrape property details keeps only what the search results show.

Max items per search limits each start URL separately. Rightmove itself shows only 1,008 results per search; if you ask for more, the scraper splits the search into price ranges so you can collect several thousand properties from one URL. When a search is split, results come price window by price window starting from the lowest price rather than in your chosen sort order, and listings with no price (price on application) may be left out of the split searches. If Max items is 1,008 or less, nothing is split.

Do I need a proxy to scrape rightmove.co.uk?

No. The default is no proxy, and normal runs work without one. If you see blocked or rate-limited requests on very large runs, turn on Apify Proxy in the input, datacenter first.

How do I scrape Rightmove with Python?

Use the Python example above with the Apify client, pass your Rightmove search URLs in startUrls and iterate over the dataset items.

Can I run this Rightmove scraper on a schedule?

Yes, with Apify Schedules. Use the same Cache project name each time and every run saves only new properties and price changes, without being charged for properties it already has.

What output formats are supported?

JSON, CSV, Excel, XML and RSS, either from the Output tab or through the Apify API.

Why is a property price empty?

Properties listed as price on application have no number, so price is null and priceDisplay says POA.

🔗 Relevant actors for Rightmove property data

ScraperDescription
OnTheMarket Property ScraperUK sale, rent and new homes from OnTheMarket with price-change tracking.
Rightmove Listing Availability CheckerChecks whether Rightmove property listings are still available.
99acres Property ScraperIndia homes for sale and rent from 99acres.
Otodom.pl Property ScraperPoland real estate listings from Otodom.
QuintoAndar Property ScraperBrazil rentals and homes for sale from QuintoAndar.

🔗 Other actors you may find useful

ScraperDescription
Covers.com Odds, Line History & Betting Trends ScraperNFL, NBA, MLB and NHL odds, line movement and betting trends.
Shopify App Store ScraperApps, pricing and developers from the Shopify App Store.
Craigslist Listings ScraperHousing, for sale, jobs and cars listings from Craigslist.
Google News AI ScraperSearch Google News by keyword with article text and AI summaries.
XING Jobs ScraperJob listings from XING Jobs in Germany.

💬 Support & contact

If you encounter any issues or have questions, please open an issue or reach out via the Apify Community Forum.

You can also find more of our actors on the Actor Flow page.