Rightmove UK Property Listings (London and beyond)
Pricing
from $2.55 / 1,000 listing founds
Rightmove UK Property Listings (London and beyond)
Pull live for-sale and to-rent property listings straight from Rightmove.co.uk — the UK's biggest property portal — for London or any other Rightmove location code. No login, no browser, no proxies. Unofficial, independent tool — not affiliated with, endorsed by, or sponsored by Rightmove.
Pricing
from $2.55 / 1,000 listing founds
Rating
0.0
(0)
Developer
Tim Zinin
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Pull live for-sale and to-rent property listings straight from Rightmove.co.uk — the UK's biggest property portal — for London or any other Rightmove location code. No login, no API key, no browser needed on your side.
What you get
- Title, price (normalized to a single comparable figure — monthly for rentals), currency, bedrooms, floor area, full address, coordinates, a short description, photos and the direct listing URL for every property found.
- Filter by for-sale or to-rent, and any Rightmove location code (defaults to London).
- Full ISO posting date for every listing (Rightmove prints an exact date, unlike some portals that only show a relative "3 days ago" stamp).
- Runs on Apify: schedule it, monitor it, call it from the API, export to JSON/CSV/Excel or push straight into your own pipeline.
How to run it
- Click Try for free — no card needed on the free plan.
- Leave Location identifier as the default for London, or paste in another Rightmove location code (see the Input section below for how to find one).
- Pick Deal type — for sale or to rent.
- Hit Start and pull the results from the dataset (UI, API or webhook).
Pricing
Pay-per-event: $0.005 per run start + $0.003 per result. No monthly seat, no minimum. 100 listings found cost about $0.30 (the one-time start fee plus 100 result rows). Rows where the source returned nothing (an unrecognized location, a query with zero matching listings, or a request that failed) are returned for transparency but are never charged for.
Input
| Field | Required | What it does |
|---|---|---|
location_identifier | yes | Rightmove's own opaque location code, format TYPE^NUMBER (e.g. REGION^87490 for London). Rightmove does not publish a name-to-code lookup table — to find the code for another area, search that area on rightmove.co.uk and copy the locationIdentifier query parameter from the results page URL. |
deal_type | yes | sale for properties for sale, rent for properties to rent. |
max_items | no | Total row cap for this run (default 100). |
max_pages | no | How many result pages (24 listings per page) to walk before stopping (default 3). |
{"location_identifier": "REGION^87490","deal_type": "sale","max_items": 5,"max_pages": 1}
Output
Real row from a live run on the platform (2026-08-01):
{"location_identifier": "REGION^87490","deal_type": "sale","found": true,"url": "https://www.rightmove.co.uk/properties/166896110#/?channel=RES_BUY","title": "1 bedroom apartment for sale — Cashmere House, Leman Street, E1","price": 800000,"currency": "GBP","property_type": "Apartment","rooms": 1,"area_sqm": null,"location": "Cashmere House, Leman Street, E1","lat": 51.51373,"lng": -0.070178,"posted_date": "2025-09-11T17:32:28Z","description": "Regent are proud to present this spectacular one-bedroom apartment with amazing view over the City in the heart of Cashmere House, part of the Goodman's Field development, E1. The property boasts 903 sq. ft and comprises a spacious double bedroom with a private en-suite...","images": ["https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/36f551317/166896110/36f551317fd23d7243757894728a14a4_max_476x317.jpeg","https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/9a9b25b9b/166896110/9a9b25b9b76d38b7b9e5d2ef30b85b01_max_476x317.jpeg","https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/f7eadec92/166896110/f7eadec92821a03b4b8695279755d031_max_476x317.jpeg","https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/4c4ce0ae1/166896110/4c4ce0ae15c3d1803f6e138d8b92beef_max_476x317.jpeg","https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/09e1cdbdd/166896110/09e1cdbddbf64b44bc4b8d113c11eeca_max_476x317.jpeg"],"source_portal": "rightmove-london","scraped_at": "2026-08-01T05:10:56.822Z","partial": true,"partial_reason": "stopped after 1 page(s), 5 item(s) collected — reached this run's own max_pages/max_items limit before the source confirmed (via confirmedEnd) that there is nothing more; there may be additional matching listings beyond what was collected"}
| Field | Meaning |
|---|---|
found | true for a real listing row, false for a not-found/error row. |
price | The headline price shown on the listing card. For rentals this is always the per calendar month figure, even when Rightmove's own internal record is weekly — so every rental row in your dataset is on the same, comparable unit. null when the listing has no public price ("POA" / price on application). |
area_sqm | Floor area converted from Rightmove's own square feet to square meters. null when the listing doesn't publish a size at all — this is common (roughly a third of London listings in spot checks), not a parsing gap. |
location | The display address as shown on the listing card. |
posted_date | Full ISO timestamp of when the listing first went live — Rightmove publishes an exact date, not just a relative stamp. |
lat / lng | Coordinates as published on the search-results page (no need to open the listing itself). |
images | Photos as listed on the search-results card. |
partial | true when this run stopped without Rightmove itself confirming there is nothing more — either max_pages/max_items was reached, or an unconfirmed empty page came back. false (and omitted by a clean=true Dataset read) once the source's own response confirmed a resolved result. Carried on every row, found or not. |
partial_reason | Plain-English reason when partial is true; null/omitted otherwise. |
A not-found row looks like:
{"location_identifier": "REGION^99999999","deal_type": "sale","found": false,"partial": true,"partial_reason": "page 1 returned 0 rows with no independent confirmation that the source actually has zero matches — could be a genuine empty result, or an unrecognized/broken page shape","note": "Rightmove did not confirm zero listings for this location_identifier/deal_type — page 1 returned 0 rows with no independent confirmation that the source actually has zero matches — could be a genuine empty result, or an unrecognized/broken page shape","scraped_at": "2026-08-01T05:11:01.840Z"}
API
Start a run with a bearer token and explicit JSON input:
curl -sS -X POST 'https://api.apify.com/v2/acts/zinin~rightmove-london/runs?waitForFinish=60' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \--data '{"location_identifier":"REGION^87490","deal_type":"sale","max_items":5,"max_pages":1}'
Read Dataset rows using the returned defaultDatasetId:
curl -sS "https://api.apify.com/v2/datasets/$DEFAULT_DATASET_ID/items?clean=true&format=json" \-H "Authorization: Bearer $APIFY_TOKEN"
MCP
For an Apify MCP client exposing the standard call-actor tool, send this exact payload:
{"name": "call-actor","arguments": {"actor": "zinin/rightmove-london","input": {"location_identifier": "REGION^87490","deal_type": "sale","max_items": 5,"max_pages": 1}}}
Related Actors
Other real-estate portals on the same account, for a buyer weighing London against other markets.
| Actor | Use it when |
|---|---|
| PropertyFinder.ae UAE Real Estate Listings | A buyer priced out of London is comparing Dubai's tax-free market instead. |
| Imovirtual Portugal Real Estate Listings | Comparing London against a lower-cost EU, Golden-Visa-style alternative. |
| Storia Romania Real Estate Listings | Adding an even cheaper EU entry-point market to the same portfolio. |
| Realitica.com Adriatic Real Estate Listings | Weighing a London buyer's holiday-home budget against Adriatic coastal pricing. |
FAQ / Limitations
Does this need a Rightmove account or API key? No — it reads the same public search pages a visitor sees, no login.
Why is price sometimes null on a row? The listing has no public asking
price ("POA" — price on application, common for very high-end commercial and
trophy residential listings). We don't invent a number for these.
Why is area_sqm sometimes null? Rightmove simply doesn't publish a floor
area for every listing — we report exactly what the source gives us, no guessing.
What this is NOT. This does not fetch the full photo gallery, floorplans, the
agent's phone number, or anything from the listing's own detail page — only what's
shown on the search-results list. It does not maintain a city-name-to-code lookup
table (Rightmove's locationIdentifier codes are not documented publicly) — you
supply the code you want, or use the London default.
Found a bug or need a custom variant (a different country's property portal, extra fields)? Open an issue on the Actor page.
Machine use
The Actor is callable through the Apify API, SDK, and Apify MCP server. The input and Dataset row are the machine-facing contract; price/area_sqm are null exactly when Rightmove itself doesn't publish a value (never a guess), and partial/partial_reason mark whenever a row's completeness wasn't independently confirmed by the source — an agent treating a run's results as the full market should check partial first.