Rightmove $1π° URL Search | Keyword Filtering | Rich Output
Pricing
from $1.00 / 1,000 property records
Rightmove $1π° URL Search | Keyword Filtering | Rich Output
From $1/1K. Fast, reliable Rightmove.co.uk scraper for sale, rent, and sold-price listings. Search by location or direct URL and extract 80+ structured fields per property.
Pricing
from $1.00 / 1,000 property records
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
0
Monthly active users
14 days ago
Last modified
Categories
Share
Rightmove Scraper: UK Property Listings, Rentals and Sold Prices
Rightmove Scraper turns Rightmove into a clean UK property data feed. Get properties for sale, to rent, and historical sold-price records for any location, postcode or Rightmove link, with over 80 structured fields per property when full detail is enabled: price, full address and postcode, agent contacts, council tax band, ground rent, service charge, EPC graphs, nearest stations and airports, floorplans and more. Search by location plus filters, or paste any Rightmove URL, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.
Why This Scraper?
- Three channels, one actor. For-sale (BUY), to-rent (RENT) and sold-price history (SOLD) listings all come from the same input.
- Two ways to find data. Build a search from a location plus filters, or paste any Rightmove URL: a search page, a single property page, or a sold-price area page.
- 80+ fields on demand. Turn on full detail scraping for the complete description, key features, council tax band, ground rent, service charge, EPC graphs, nearest stations and airports, broadband speed, floorplans, remaining lease years, and full agent contact details.
- Server-side filters that really narrow the result set. Price, bedrooms, property type, radius, sort order, and the Let Agreed / Sold STC toggles are applied on Rightmove's own servers, not filtered away client-side.
- Monitoring mode for recurring runs. Schedule it and get back only listings you have not already collected for that exact search, so you don't pay to re-download the same properties.
- Runs on your proxy settings. Datacenter is the default and cheapest option; the actor never switches to residential on its own, and it automatically retries with a different connection when one is refused.
- Pay only for what you fetch. Every returned record is billed once, and the deep detail fields are billed only for the records that were actually enriched.
Use Cases
- Property market research: track asking prices, price reductions and new listings across an area or postcode over time.
- Lead generation for agents and services: collect agent names, companies and phone numbers from active listings for outreach.
- Sold-price and comparable analysis: pull historical sold prices by postcode or area to value a property or a portfolio.
- Relocation and house-hunting tools: feed for-sale and to-rent listings, with full detail, into your own search app or alert bot.
- Portfolio and rent-roll monitoring: run monitoring mode on a schedule to catch newly listed properties as soon as they appear.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
| Field | Example |
|---|---|
id | 158234567 |
channel | "BUY" (also "RENT", "SOLD") |
url | "https://www.rightmove.co.uk/properties/158234567" |
transactionType | "SALE" |
displayPrice | "Β£325,000" |
price | 325000 |
pricePerMonth / pricePerWeek | rent listings only: 1500 / 346 |
currency | "GBP" |
bedrooms / bathrooms | 1 / 1 |
propertySubType | "Flat" |
displayAddress | "Example Road, London, SW1A" |
postcode | "SW1A 1AA" (detail only) |
latitude / longitude | 51.5 / -0.12 |
description | detail only: the full listing description |
keyFeatures | detail only: array of bullet-point features |
sizeSqFt | detail only: 381 |
tenureType | detail only: "SHARE_OF_FREEHOLD" |
councilTaxBand | detail only: "C" |
annualGroundRent / annualServiceCharge | detail only: 250 / 1071 |
nearestStations | detail only: array of { name, distance, unit } |
epcGraphs / floorplans | detail only: arrays of image URLs |
images | array of photo URLs |
agentName / agentPhone | "Example Estate Agents, London" / "020 0000 0000" |
detailScraped | true once the detail page has been fetched for this record |
Sold-price records (channel: "SOLD") carry a different shape: uuid, encryptedUprn, address, propertyType, bedrooms, bathrooms, hasFloorPlan, lastSoldPrice, lastSoldDate, transactionCount, a transactions array with every recorded sale (price, date, tenure, new-build flag), detailUrl and staticMapUrls, instead of the for-sale/to-rent fields above. Detail-enriched for-sale and to-rent records also carry secondaryPrice, pricePerSqFt, outcode/incode/ukCountry, sizeSqM, yearsRemainingOnLease, groundRentReviewPeriodInYears, nearestAirports, broadband, brochures, virtualTours, rooms, rental-only lettings terms (deposit, furnishType, letType, letAvailableDate), scheme flags (sharedOwnership, affordableBuyingScheme, commercial), full agent details (agentCompanyName, agentDisplayAddress, agentLogo, agentPhoneInternational), and verbatim rawCustomer / rawLivingCosts passthrough objects so nothing from the source page is lost.
How to Use
- Pick a mode:
search(location plus filters) orurl(paste direct Rightmove links). - For search mode, choose a channel (
BUY,RENT, orSOLD) and one or more locations, then narrow with the price, bedroom, property type, radius and sort filters. - Turn on Scrape full property details for the deep 80+ field set, and set Max items and Max pages per search to control run size and cost.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.
Buy search with filters and full detail:
{"mode": "search","channel": "BUY","locations": ["London", "Manchester"],"minPrice": 200000,"maxPrice": 500000,"minBedrooms": 2,"maxPages": 3,"includeDetails": true,"maxItems": 300}
Rent search:
{"mode": "search","channel": "RENT","locations": ["Leeds"],"maxPrice": 1500,"minBedrooms": 1,"maxPages": 2}
Sold prices for an area:
{"mode": "search","channel": "SOLD","locations": ["SW19"],"maxItems": 200}
Direct URLs (a search page and a single property):
{"mode": "url","startUrls": [{ "url": "https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490" },{ "url": "https://www.rightmove.co.uk/properties/158234567" }],"includeDetails": true}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("abotapi/rightmove-scraper").call(run_input={"mode": "search", "channel": "BUY", "locations": ["London"], "maxItems": 200})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["displayAddress"], item["displayPrice"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('abotapi/rightmove-scraper').call({ mode: 'search', channel: 'BUY', locations: ['London'], maxItems: 200 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.
How Max pages and Max items shape a search
Max pages per search defaults to 1, which is a single results page, 24 listings, per location, for BUY and RENT searches (including a pasted search-results URL). Raise it (up to 42, Rightmove's own pagination limit) to walk further into the result list. It has no effect on SOLD mode, which walks up to its own internal page limit and is bounded only by Max items. Max items caps the total records returned across every location, but each individual BUY/RENT location is still capped by Rightmove's own deep-pagination limit of roughly 1000 results. To cover a large area beyond that, split it into smaller sub-areas or postcodes and run them as separate locations.
Monitoring mode
When Monitoring mode is on, the actor remembers every listing id (or sold-record key) it has already returned for that exact combination of mode, channel, locations or URLs, and filters. The next run of the same search then returns only records it has not returned before, which is ideal for a scheduled search that should surface only new listings. Changing any filter or location starts a fresh, independent history. A pasted individual property link is never filtered by this history and is re-fetched (and re-billed for detail) on every monitored run.
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each record, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.
- Authorize a connector once under Apify β Settings β Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search (location plus filters) or url (direct Rightmove links). |
channel | string | BUY | BUY, RENT, or SOLD (search mode only). |
locations | array | no default (prefill: ["London"]) | Location names, areas, or postcodes to resolve (search mode), e.g. "London", "SW19". |
minPrice | integer | no default | Minimum price filter (BUY/RENT). For RENT this is the monthly (pcm) amount. |
maxPrice | integer | no default | Maximum price filter (BUY/RENT). For RENT this is the monthly (pcm) amount. |
minBedrooms | integer | no default | Minimum bedrooms (BUY/RENT). |
maxBedrooms | integer | no default | Maximum bedrooms (BUY/RENT). |
propertyTypes | array | no default | Property type filter (BUY/RENT): houses, flats, bungalows, land, detached, semi-detached, terraced, park-home. |
radius | string | no default | Search radius in miles around the location, e.g. 0.5, 1, 5. Leave empty to search the exact area only. |
sortType | string | "" (most relevant) | Result ordering: newest listed, lowest price, or highest price first. |
includeLetAgreed | boolean | false | Include "Let Agreed" properties in rental searches. |
includeSSTC | boolean | false | Include "Sold STC" / under-offer properties in sale searches. |
startUrls | array | no default (prefill: a sample search URL) | Direct Rightmove URLs to scrape (URL mode): search pages, property pages, or sold-price pages. |
maxItems | integer | 100000 | Maximum number of records to return; set 0 for unlimited. Each location is still capped by Rightmove's own roughly-1000-result deep-pagination limit. |
maxPages | integer | 1 | Maximum result pages to walk per location for BUY/RENT searches (24 listings per page); raise it to scrape deeper (up to 42). Has no effect on SOLD mode. |
includeDetails | boolean | false | Fetch each property's detail page for 40+ extra fields; billed per record enriched. |
monitoringMode | boolean | false | Return only listings not returned by a previous run of this exact search. |
proxyConfiguration | object | {"useApifyProxy": true} | Connection settings; residential is never auto-enabled. |
proxyCountry | string | no default | Pin the proxy exit country; applied only when a proxy group such as residential is selected. |
mcpConnectors | array | no default | Optional: send a summary of each record to apps authorized under Integrations. |
notionParentPageUrl | string | no default | Notion connector only: page under which item pages are created. |
maxNotifyListings | integer | 50 | Cap on items written to each connector per run. |
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"id": 158234567,"channel": "BUY","url": "https://www.rightmove.co.uk/properties/158234567","transactionType": "SALE","displayPrice": "Β£325,000","price": 325000,"currency": "GBP","bedrooms": 1,"bathrooms": 1,"propertySubType": "Flat","displayAddress": "Example Road, London, SW1A","outcode": "SW1A","incode": "1AA","postcode": "SW1A 1AA","latitude": 51.5,"longitude": -0.12,"description": "<p>Offering approximately 381 sq.ft of well-presented accommodation ...</p>","keyFeatures": ["Share of Freehold", "Modern One Bedroom Apartment"],"sizeSqFt": 381,"tenureType": "SHARE_OF_FREEHOLD","yearsRemainingOnLease": 118,"councilTaxBand": "C","annualGroundRent": 250,"annualServiceCharge": 1071,"nearestStations": [{ "name": "Example Station", "distance": 0.11, "unit": "miles" }],"epcGraphs": ["https://media.rightmove.co.uk/property-epc/example.png"],"floorplans": ["https://media.rightmove.co.uk/property-floorplan/example.png"],"images": ["https://media.rightmove.co.uk/example.jpeg"],"agentName": "Example Estate Agents, London","agentCompanyName": "Example Estate Agents Ltd","agentDisplayAddress": "1 Example Street, London, EC1A 1BB","agentPhone": "020 0000 0000","detailScraped": true}
Plan Requirement
The default datacenter proxy works out of the box, and the actor automatically retries with a different connection when one is refused. For larger or more frequent runs, select the residential proxy group under Connection for extra resilience. The actor's Pricing tab shows the current per-item and detail-enrichment rates.
FAQ
How much does it cost?
You pay per property record returned, plus an extra charge only for the records where full detail was fetched. The Pricing tab on the actor page shows the current rates. Use Max items to cap the cost of any run.
Is it legal to scrape Rightmove?
This actor collects only publicly available property listing and sold-price data. You are responsible for how you use it: follow Rightmove's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Agent contact details and listing photos may be subject to third-party rights.
Can I get only new listings on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Monitoring mode. Each run then remembers every property it has already returned for that exact search, and only returns ones it hasn't seen before.
Why did my search only return 24 properties?
For BUY and RENT searches, Max pages per search defaults to 1, a single results page of 24 listings, per location. Raise it (up to 42) to walk further into the result list, and set Max items to fit the total you want. This limit does not apply to SOLD mode, which is bounded only by Max items.
Why did my run return zero properties instead of an error?
If a location cannot be resolved, or the site refuses every request for that search, the run finishes normally with an empty dataset and a short explanation in its run summary, rather than throwing an error. Check the run's summary output (requests, blocks, pages fetched) to tell "no matches for this filter" apart from "the site blocked every request", and try again if requests were blocked.
Does pasting a single property link always fetch the full detail page?
Yes. A direct property URL in URL mode always returns the deep field set, and is billed as detail enrichment, regardless of the Scrape full property details toggle, since there is nothing to enrich beyond the page itself. That toggle applies to search results, whether from a location or a pasted search URL; it has no effect on SOLD mode.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
π Want more real estate data?
Pair this actor with these related scrapers from the same team:
| π§© Zoopla Scraper Scrape UK property from Zoopla: for sale, to rent and Land Registry sold prices. Search... | π Jitty UK AI Property Scraper Scrape residential property listings from jitty.com, extract properties across the UK... |
| π OnTheMarket Scraper Scrape onthemarket.com for-sale, to-rent and new-homes listings with 85+ fields: price... | πΌ NHS UK From $0.8/1k. Scrape nhs.uk Jobs listings into a flat dataset. Extract 50+ fields... |
| π PropertyGuru SG Scraper From $0.80/1K. Scrape PropertyGuru.com.sg sale and rental listings with 30+ structured... | π SeLoger Scraper Scrape SeLoger.com properties for sale and rent. Search by location with price, room and... |
π Browse all abotapi scrapers
π¬ Support & custom scrapers
- π Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
- π οΈ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
- β Enjoying it? A quick review on the actor page helps other users find it.