Rightmove Scraper
Pricing
from $1.00 / 1,000 results
Rightmove Scraper
Rightmove scraper for UK real estate data. Extract property listings for sale or rent, sold prices, agent contacts, price history, nearest schools with OFSTED ratings, stations, EPC ratings, floorplans. Paste any Rightmove search URL. Export to JSON, CSV, Excel.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
SilentFlow
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Every UK property listing on Rightmove, structured and ready for analysis. Pull sale listings, rental stock, sold prices, and overseas properties with full agent details, floorplans, and nearby transport. In seconds, not hours.
β¨ Why teams choose this over other Rightmove scrapers
Spending hours copying listings into spreadsheets? Running scrapers that only pull half the data you need? Tired of paying extra for fields that should be included?
- π‘ Every field, included by default. Nearest schools with OFSTED ratings, nearest stations, price history, floorplans, virtual tours, key features, highlights (parking, garden, flood risks), council tax band, EPC rating, tenure, ground rent, and service charges. Other scrapers hide these behind paid toggles.
- π Any Rightmove search URL works. Paste your browser URL straight from Rightmove for sale, rent, sold prices, or overseas. No filters to rebuild, no location IDs to look up.
- β‘ Fast by default. Pull 500 search cards in under a minute, or 100 fully enriched properties in about two minutes. Parallel detail workers built in, no tuning required.
- π· Complete agent data. Name, phone, logo, branch address, profile URL, and full description. Everything you need to contact or analyse the agent behind each listing.
- πΊοΈ Coordinates on every listing. Latitude and longitude included by default so you can map results, compute distances, or feed a GIS pipeline without geocoding.
- π¦ Clean, predictable output. 50+ fields per property in one flat JSON structure. No nested surprises, no empty fields pretending to be null.
- π Detail-page opt-out. If you only need the search card data, flip one switch and scrape 10x faster at lower cost.
- π‘ Monitoring mode. Schedule the scraper and get charged only for newly listed properties compared to previous runs. A daily watcher on your postcode can cost 90% less than a full re-scrape.
- ποΈ Delisting tracker. Automatically detect when properties disappear from Rightmove. Perfect for tracking time-to-sell or competitor stock churn.
π― What you can do with Rightmove data
| Team | What they build |
|---|---|
| Property investors | Track every new sale listing in a postcode, compute price per square foot, and flag under-market properties the morning they hit Rightmove. |
| Lettings analysts | Pull every rental in a city with deposit, let type, furnished status, and council tax band. Compute gross yields against sold prices from the same postcode. |
| Estate agents | Monitor competitors' stock by branch, export their listing counts and average asking price, and benchmark your own portfolio against the local market weekly. |
| Data teams | Feed a live property dataset into BigQuery, Snowflake, or a custom warehouse with a single scheduled run. |
π₯ Input parameters
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array of URLs | Yes (or propertyUrls) | Rightmove search URLs for sale, rent, sold prices, or overseas |
propertyUrls | array of URLs | Yes (or startUrls) | Individual property URLs to scrape directly |
maxItems | integer | No | Maximum properties to save. Default 100. Rightmove caps searches at 1000 per URL. |
fullDetails | boolean | No | Visit each listing's detail page for the full 50+ fields including schools and price history. Default true. Disable for faster search-card-only runs. |
monitoringMode | boolean | No | Save only new listings compared to previous runs. Requires scheduled runs on the same URL. Default false. |
enableDelistingTracker | boolean | No | Track property disappearance over time via the default key-value store. Default false. |
π Output data
Each property is saved as a flat JSON object:
{"id": "163513427","url": "https://www.rightmove.co.uk/properties/163513427","displayAddress": "Greenwich Peninsula, 4 Cutter Lane, SE10","outcode": "SE10","incode": "0ZS","ukCountry": "England","bedrooms": 1,"bathrooms": 1,"propertySubType": "Apartment","price": "Β£585,000","priceNumeric": 585000,"type": "sale","transactionType": "buy","tenure": "LEASEHOLD","yearsRemainingOnLease": 229,"coordinates": {"latitude": 51.500977, "longitude": 0.008011},"agent": "Garrison Estates, London","agentPhone": "020 3910 6752","agentProfileUrl": "https://www.rightmove.co.uk/estate-agents/agent/Garrison-Estates/London-181970.html","keyFeatures": ["13th floor one bedroom", "West facing", "Modern amenities"],"images": ["https://media.rightmove.co.uk/..."],"floorplans": [{"url": "...", "caption": "Floorplan 1", "type": "IMAGE"}],"nearestStations": [{"name": "North Greenwich", "types": ["LONDON_UNDERGROUND"], "distance": 0.3, "unit": "miles"}],"councilTaxBand": "E","description": "Positioned on the 13th floor...","listingUpdateReason": "Added on 19/06/2025","scrapedAt": "2026-04-10T19:40:53Z"}
ποΈ Data fields
| Category | Fields |
|---|---|
| Identity | id, url, scrapedAt |
| Address | displayAddress, outcode, incode, ukCountry, countryCode, deliveryPointId |
| Basics | bedrooms, bathrooms, propertyType, propertySubType, summary |
| Price | price, priceNumeric, secondaryPrice, priceQualifier |
| Transaction | type, transactionType, displayStatus, productLabel, tags, archived, published, sold |
| Tenure | tenure, yearsRemainingOnLease |
| Location | coordinates (latitude, longitude) |
| Agent | agent, agentPhone, agentLogo, agentDisplayAddress, agentDescriptionHtml, agentProfileUrl, agentListingsUrl |
| Media | images, floorplans, virtualTours, brochures, epc |
| Description | description, descriptionHtml, keyFeatures |
| Living costs | councilTaxBand, annualGroundRent, annualServiceCharge, groundRentPercentageIncrease, councilTaxExempt, councilTaxIncluded |
| Lettings | letAvailableDate, deposit, minimumTermInMonths, letType, furnishType |
| Size | sizeSqFeetMin, sizeSqFeetMax |
| Nearby | nearestStations (name, type, distance), nearestAirports, nearestSchools (OFSTED rating, age range, pupil count, type, subtype, gender, religion, distance, coordinates, inspection report URL) |
| Price history | priceHistory (year, soldPrice, percentageDifference, detailsUrl) |
| Dates | addedOn, firstVisibleDate, listingUpdateDate, listingUpdateReason |
| Schemes | sharedOwnership, affordableBuyingScheme |
| Highlights | parking, garden, heating, water, sewerage, accessibility, risks, obligations |
π Examples
Get every London flat for sale
{"startUrls": [{"url": "https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490&propertyTypes=flat"}],"maxItems": 1000,"fullDetails": true}
Pull rental yields for Manchester (search cards only, fastest)
{"startUrls": [{"url": "https://www.rightmove.co.uk/property-to-rent/find.html?searchType=RENT&locationIdentifier=REGION%5E904"}],"maxItems": 500,"fullDetails": false}
Watch a specific estate agent's stock
{"startUrls": [{"url": "https://www.rightmove.co.uk/property-for-sale/find/Foxtons/Camden.html?locationIdentifier=BRANCH%5E4152&includeSSTC=true"}],"maxItems": 1000,"fullDetails": true}
Enrich a list of specific properties
{"propertyUrls": [{"url": "https://www.rightmove.co.uk/properties/163513427"},{"url": "https://www.rightmove.co.uk/properties/148711631"}],"fullDetails": true}
Daily watcher for new listings in a postcode
{"startUrls": [{"url": "https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=OUTCODE%5E1087"}],"maxItems": 1000,"fullDetails": true,"monitoringMode": true,"enableDelistingTracker": true}
First run saves everything. Every subsequent run saves only new listings and logs properties that disappeared since the previous run. Schedule it daily to track a market in real time.
π» Integrations
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("your-username/rightmove-scraper").call(run_input={"startUrls": [{"url": "https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490"}],"maxItems": 500,"fullDetails": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['displayAddress']} - {item['price']} - {item['bedrooms']} beds")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('your-username/rightmove-scraper').call({startUrls: [{ url: 'https://www.rightmove.co.uk/property-to-rent/find.html?searchType=RENT&locationIdentifier=REGION%5E87490' }],maxItems: 500,fullDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(p => console.log(`${p.displayAddress}: ${p.price}`));
π Performance & limits
| Metric | Value |
|---|---|
| Search cards per page | 24 |
| Rightmove cap per search URL | 1000 properties (42 pages) |
| Speed (search cards only) | ~11 properties per second (500 in 44s on Apify) |
| Speed (full details + schools + history) | ~3 properties per second (100 in 30s on Apify) |
| Memory | 512 MB per run |
| Cost per 1K properties (full details) | ~$2 (compute + proxy included) |
| Cost per 1K properties (search cards) | ~$0.07 (compute + proxy included) |
π‘ Tips for best results
- Split large cities into outcodes. Rightmove caps each search URL at 1000 results. To scrape every London flat, use multiple outcode URLs (
SE10,E14,NW1, etc.) instead of one regional URL. - Disable
fullDetailswhen you only need basics. Search card data (address, price, beds, agent, coordinates) is already rich, 10x faster to collect, and costs under $0.10 per 1,000. - Use
propertyUrlsto re-enrich a watchlist. Keep a list of property IDs from a prior run and pass them directly to pull updated prices and status. - Combine sale and sold-price URLs for yield analysis. One run gets current asking prices, a second gets historical sold prices in the same postcode. Join on outcode.
- Schedule runs for fresh data. Rightmove updates continuously. A daily schedule keeps your dataset current. Pair it with
monitoringModeto pay only for new listings each day.
β FAQ
Do I need a Rightmove account? No. The scraper extracts publicly available listing data with no login, cookies, or API key required.
Can I scrape sold prices and price history?
Yes, two ways. For active listings, price history (previous sale prices for the address) is included automatically when fullDetails is enabled. For historical sold-prices by postcode, paste a /house-prices/... URL as a start URL.
Why does Rightmove cap searches at 1000 results? This is a hard limit imposed by Rightmove itself (42 pages of 24 results). For bigger areas, split your search into smaller regions or outcodes and the scraper deduplicates across them.
Can I track new listings over time?
Yes, natively. Enable monitoringMode and schedule the actor daily on the same URL. Each run saves only the new listings compared to previous runs, cutting your cost by up to 90% on scheduled watchers. Enable enableDelistingTracker on top of that and the actor also logs properties that have disappeared from Rightmove.
Does it work for overseas properties?
Yes. Overseas URLs like https://www.rightmove.co.uk/overseas-property-for-sale/Mallorca.html are supported and return the same field structure.
What if Rightmove changes their page structure? The scraper uses the same data sources Rightmove exposes to their own apps and search engines. If something breaks, we ship a fix within 24 hours.
πΈ Pricing
This scraper uses pay-per-event pricing. You pay only for the properties you get, not for compute time or proxy traffic. Everything is included.
| Volume (monthly) | Price per 1,000 properties |
|---|---|
| First 25,000 | $2.00 |
| 25,000 to 50,000 | $1.50 |
| 50,000 to 200,000 | $1.20 |
| Above 200,000 | $1.00 |
All fields are included at every tier. No hidden surcharges for schools, price history, or full details. The same price covers search cards and enriched listings.
With monitoringMode enabled, you only pay for newly listed properties. A daily watcher on a postcode with 500 listings and 10 new properties per day costs about $0.02/day.
π¬ Support
Need something this scraper doesn't do yet? We ship features fast.
- Feature requests go straight to our backlog
- Enterprise needs? We do custom integrations
Response time: usually under 24 hours.