Rightmove Sold Listings Scraper
Pricing
from $0.75 / 1,000 listings
Rightmove Sold Listings Scraper
Scrape sold property listings and optional transaction histories from Rightmove.
Pricing
from $0.75 / 1,000 listings
Rating
0.0
(0)
Developer
Epic Scrapers
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
18 days ago
Last modified
Share
Rightmove Sold Listings Scraper: UK sold house prices with sale dates, tenure and transaction history
Rightmove Sold Listings Scraper turns Rightmove's house prices pages into a spreadsheet of sold UK properties. Enter an area name, an outcode such as SW6, a postcode or a Rightmove house-prices URL. You get each property's address, latest sold price and sale date, tenure, property type, bedrooms, bathrooms, map coordinates and photo. It is built for comparable sales analysis, valuation work, investors, surveyors and estate agents.
- Latest sale on every row.
latestTransactionholds the sold price (displayPrice), the sale date (dateSold) and the tenure, as Rightmove shows them. - Optional full sale history. Turn on
includeTransactionHistoryto addtransactionHistorywith every recorded sale of the property, the change between sales, the data source and the property's last advertised dates. - Filters that match the website. Sold within 1 to 30 years, property type, search radius up to 40 miles, and five sort orders (most recent, oldest, lowest price, highest price, address).
- Up to 10,000 properties per run. The Actor pages through results until it reaches
maxItemsor the end of the results. - Pay per property, no subscription. From $3 per 1,000 sold listings on the Free plan, with a small extra charge only for successful transaction-history lookups. No Rightmove account or API key. Export to JSON, CSV, Excel or Google Sheets.
Scope: This Actor covers sold prices only. For properties currently for sale or to rent, use a Rightmove listings scraper. For estate agent contact details, use Rightmove Branch Scraper.
What can you do with Rightmove Sold Listings Scraper?
| Goal | How |
|---|---|
| Comparable sales (comps) | Search a postcode with a radius, filter by propertyType and read latestTransaction.displayPrice. |
| Price a property | Compare bedrooms, bathrooms and latestTransaction.dateSold across the same street or outcode. |
| See how a home's value moved | Turn on includeTransactionHistory and read transactionHistory.transactions and displayAbsoluteChange. |
| Investment due diligence | Check past sales, tenure and how long a property was advertised (propertyDetails.advertisedFrom, advertisedTo). |
| Map a local market | Use location.latitude and location.longitude to plot sold prices in a GIS or BI tool. |
| Monitor an area over time | Schedule the Actor with sortBy set to MOST_RECENT and keep the new uuid values each week. |
How it compares
| What you need | Rightmove Sold Listings Scraper | Copy-paste from the website | Paid property data platforms |
|---|---|---|---|
| Volume | Up to 10,000 properties per run | A few at a time | Depends on plan |
| Sale history | Optional, every recorded sale | One property page at a time | Often included, higher cost |
| Filters | Area, radius, type, sold period, sort order | Same filters, applied by hand | Varies |
| Output | JSON, CSV, Excel, API | Manual spreadsheet | Dashboards, limited exports |
| Price | Pay per property | Your time | Monthly subscription |
Quick start
- Click Try for free and sign in to Apify.
- Enter a Location such as
SW6,Manchesteror a Rightmove house-prices URL. - For a first run, keep Maximum listings at
50. - Click Start. When the run finishes, open the Output tab and export the data.
{"location": "SW6","maxItems": 50}
Input
| Field | Type | Default | Effect |
|---|---|---|---|
location | String | Required | Area name, outcode, postcode or a Rightmove house-prices/<area>.html URL. The first matching region, outcode or postcode is used. |
maxItems | Integer | 50 | Maximum sold listings to save, from 1 to 10,000. |
soldWithinYears | String | "5" | "1", "2", "3", "5", "10", "15", "20" or "30". |
propertyType | String | Any | DETACHED, SEMI_DETACHED, TERRACED or FLAT. |
radius | String | "0" | Miles around the location: "0" (location only), "0.25", "0.5", "1", "3", "5", "10", "15", "20", "30", "40". |
sortBy | String | "MOST_RECENT" | MOST_RECENT, OLDEST, LOWEST_PRICE, HIGHEST_PRICE or ADDRESS. |
includeTransactionHistory | Boolean | false | Adds transactionHistory. One extra request per property, charged as a separate event. |
proxyConfiguration | Object | Apify Proxy | Proxy settings for requests to Rightmove. |
Example: recent flat sales within a mile, with history
{"location": "SW6","maxItems": 100,"soldWithinYears": "5","propertyType": "FLAT","radius": "1","sortBy": "MOST_RECENT","includeTransactionHistory": true}
Output
Every row is one sold property. Results go to the run's default dataset. Export as JSON, CSV, Excel, XML or HTML. This is a real row from an SW6 run on July 25, 2026, with the transaction history shortened:
{"uuid": "b1822394-aec6-4efe-ad1c-a7a2d09c7649","address": "88a, Orbain Road, London SW6 7JY","propertyType": "FLAT","bedrooms": 3,"bathrooms": 1,"detailUrl": "https://www.rightmove.co.uk/house-prices/details/b1822394-aec6-4efe-ad1c-a7a2d09c7649","imageInfo": {"unsizedUrl": "https://media.rightmove.co.uk/property-photo/d1c97685f/159617936/d1c97685f6a7a8a35fe03f5dad2b0bf3.jpeg"},"latestTransaction": {"displayPrice": "£686,000","dateSold": "17 Apr 2026","tenure": "LEASEHOLD"},"location": {"latitude": 51.47946,"longitude": -0.21141},"transactionHistory": {"propertyType": "Flat","address": { "displayAddress": "88a, Orbain Road, London SW6 7JY", "country": "ENGLAND" },"transactions": [{"transactionId": "94005024","displayPrice": "£686,000","displayDeedDate": "17 Apr 2026","tenure": "Leasehold","displayAbsoluteChange": "£0","absoluteChangeType": "NO_CHANGE"}],"source": "LR","disclaimer": {"earliestTransaction": "1 January 1995","mostRecentTransaction": "30 April 2026","lastLoadDate": "9 July 2026"},"propertyDetails": { "id": 159617936, "bedrooms": 3, "bathrooms": 1 }},"searchLocation": { "id": "2519", "type": "OUTCODE", "name": "SW6" },"scrapedAt": "2026-07-25T14:31:14.763Z"}
Notes on fields
- Prices and dates in
latestTransactionandtransactionsare display strings such as"£686,000"and"17 Apr 2026", as Rightmove shows them. Convert them in your spreadsheet if you need numbers. - Without
includeTransactionHistory, rows have notransactionHistoryfield. Other fields in the fixture, such asstaticMapUrls,userProfileandtracked, come straight from Rightmove and are mostly empty. - If a history lookup fails, the row is still saved with
transactionHistory: nulland atransactionHistoryErrormessage, and you are not charged for that lookup. searchLocationis the area Rightmove matched to yourlocation. Check it when your input was a name that could match several places.- Every row has
scrapedAtin UTC.
Track UK sold prices over time with scheduled runs
Rightmove adds new sales as Land Registry data arrives. Run the same search on a schedule and keep only what is new.
1. Save your input as a task
Open the actor, set your location and filters, then click Save as a new task. A task is a saved input you can run again with one click or on a schedule.
2. Schedule the task
In Apify Console, go to Schedules, click Create new, choose how often to run (for example daily at 06:00 in your time zone), and add your task. See Schedules and How to create a schedule.
Watch how to schedule an Actor:
Or schedule a saved task:
Common schedules:
| Use case | Frequency | Cron expression |
|---|---|---|
| New sales in a postcode area | Weekly (Monday) | 0 6 * * 1 |
| Fast-moving local markets | Daily | 0 6 * * * |
| Monthly price reports | Monthly (1st) | 0 6 1 * * |
3. Send the results to a spreadsheet
Connect Google in the task's Integrations tab to save every run to Google Sheets or Google Drive automatically:
4. Compare runs
- New sales:
uuids that were not in the previous run, withlatestTransaction.dateSoldandlatestTransaction.displayPrice. - Area price trend: group by
searchLocation.nameandpropertyType, and compare prices over time. - Resales: with
includeTransactionHistory,transactionHistory.transactionsshows eachdisplayPrice,displayDeedDateanddisplayAbsoluteChange. - Tenure mix: count
latestTransaction.tenureper area.
FAQ
How many results can I get?
Up to 10,000 sold listings per run (maxItems). The Actor stops earlier when Rightmove has no more results for your filters.
Why did I get few or no results?
Narrow filters (a short sold period, one property type, radius 0 on a small postcode) reduce results. If the log says no supported location was found, try an outcode like SW6, a postcode or a town name.
Where does the sold price data come from?
Rightmove's house prices section. The source field in the transaction history (LR in the example) names the origin Rightmove reports. The Actor returns what Rightmove shows. Very recent sales can take weeks to appear (see disclaimer.lastLoadDate).
Does it cover Scotland and Northern Ireland?
It returns whatever Rightmove's house prices section offers for the location you enter. The example above is England. Check your area with a small run first.
Do I need proxies or a Rightmove account?
No account, login or API key. Apify Proxy is selected by default and is recommended for larger runs.
How fast is it?
Pages are fetched one after another with a short pause. Transaction history adds one request per property, so runs with history take longer.
Is it legal to scrape Rightmove?
The Actor collects publicly visible sold-price data. You are responsible for how you use it, including Rightmove's terms and laws such as UK GDPR when addresses are involved.
Can I get estate agent contacts too?
Use Rightmove Branch Scraper for branch names, phone numbers, emails and addresses by branch ID.
Cost
This Actor uses pay-per-event pricing. Prices below are for the Free plan. Paid Apify plans get lower per-listing prices, shown on the Pricing tab.
| Event | Price (Free plan) | Charged when |
|---|---|---|
listing | $0.003 | A sold listing is saved. |
transaction-history | $0.001 | A property's transaction history is fetched successfully. |
| Actor start | $0.005 | Once per run. |
Example runs on the Free plan:
| Run | Cost |
|---|---|
| 100 listings without history | $0.305 |
| 100 listings with history | $0.405 |
| 1,000 listings with history | $4.005 |
Set a maximum cost per run in the run options. The Pricing tab always shows the current prices.
Related Actors
- Rightmove Branch Scraper: estate agent branch contacts, addresses and coordinates.
- Idealista Scraper: property listings in Spain, Italy and Portugal.
- Subito Real Estate Scraper: real estate listings from Subito in Italy.
Support
Report problems or request features in the Issues tab. Include the run ID, the input and what you expected. We read every issue.
This Actor is not affiliated with or endorsed by Rightmove Group Limited. "Rightmove" is a trademark of its owner.