Rightmove UK Property Listings (London and beyond) avatar

Rightmove UK Property Listings (London and beyond)

Pricing

from $2.55 / 1,000 listing founds

Go to Apify Store
Rightmove UK Property Listings (London and beyond)

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

Tim Zinin

Maintained by Community

Actor 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

  1. Click Try for free — no card needed on the free plan.
  2. 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).
  3. Pick Deal type — for sale or to rent.
  4. 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

FieldRequiredWhat it does
location_identifieryesRightmove'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_typeyessale for properties for sale, rent for properties to rent.
max_itemsnoTotal row cap for this run (default 100).
max_pagesnoHow 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"
}
FieldMeaning
foundtrue for a real listing row, false for a not-found/error row.
priceThe 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_sqmFloor 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.
locationThe display address as shown on the listing card.
posted_dateFull ISO timestamp of when the listing first went live — Rightmove publishes an exact date, not just a relative stamp.
lat / lngCoordinates as published on the search-results page (no need to open the listing itself).
imagesPhotos as listed on the search-results card.
partialtrue 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_reasonPlain-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
}
}
}

Other real-estate portals on the same account, for a buyer weighing London against other markets.

ActorUse it when
PropertyFinder.ae UAE Real Estate ListingsA buyer priced out of London is comparing Dubai's tax-free market instead.
Imovirtual Portugal Real Estate ListingsComparing London against a lower-cost EU, Golden-Visa-style alternative.
Storia Romania Real Estate ListingsAdding an even cheaper EU entry-point market to the same portfolio.
Realitica.com Adriatic Real Estate ListingsWeighing 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.