# Rightmove Scraper: UK Property for Sale and to Rent (`themineworks/rightmove-scraper`) Actor

Scrape Rightmove UK listings for sale or to rent by place name or search link. Each row: price, bedrooms, bathrooms, size, address, coordinates, listing date, agent and branch phone, photos, key features. Add the property page for description, tenure, council tax, EPC and floor plans. No login.

- **URL**: https://apify.com/themineworks/rightmove-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Real estate, Lead generation, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Rightmove Scraper: UK Property for Sale and to Rent

[![3,000 Rightmove listings in 89 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/rightmove-scraper-hero.png)](https://console.apify.com/actors/hJ9r01wVMSOk4yXSf/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 140,000 runs across 170+ public actors.

### Why choose this actor?

- **Every listing with its agent and a phone to call.** Each row carries the price, bedrooms, bathrooms, property type, address, map coordinates, the date the listing went live, photos, key features and the estate or letting agent's branch with the phone number published on the listing. Our proof run returned **3,000 listings for sale in London, Manchester and Birmingham in 89 seconds** from 128 requests, with the agent phone on 100% of rows. No Rightmove account, no cookies of yours.
- **Type a place, or paste a Rightmove link.** Write Manchester, Canary Wharf or SW1A and the actor finds Rightmove's own location for it, then applies your filters: for sale or to rent, price, bedrooms, property type, radius, added in the last days. Or paste any Rightmove search link with the filters you set on the site, and property links for single listings.
- **You pay only for listings you get.** One charge per listing saved to your dataset, plus a flat start fee per run. The featured listing Rightmove repeats on every page is delivered once, places that do not resolve cost nothing, and on a schedule "Only listings not delivered before" returns and charges only new ones.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/hJ9r01wVMSOk4yXSf/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works Real estate family:** [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [99acres Scraper](https://apify.com/themineworks/99acres-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [MagicBricks Scraper](https://apify.com/themineworks/magicbricks-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this input and press Start. It returns the 20 newest homes to rent in Manchester, each with price per month, bedrooms, address, agent and phone, in about 7 seconds:

```json
{
  "locations": ["Manchester"],
  "listingType": "rent",
  "maxListingsPerSearch": 20
}
```

You can tell the actor what to read in two plain forms, and mix them in one run:

- **Places** (`locations`): a town or city (`Leeds`), an area (`Canary Wharf`), a postcode district (`SW1A`), a full postcode with a search radius (`M1 3GL` with `radiusMiles` of `0.5` or more) or a Rightmove location id (`REGION^87490`). Each place is searched with the filters of the input: `listingType`, `minPrice`, `maxPrice`, `minBedrooms`, `maxBedrooms`, `propertyTypes`, `radiusMiles`, `addedWithinDays`, `includeUnderOffer` and `sortBy`.
- **Rightmove links** (`startUrls`): search pages such as `https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490&maxPrice=500000`, read with every filter already in the link, and property pages such as `https://www.rightmove.co.uk/properties/92734608`, which return that one listing with its full details.

On Apify's free plan every run returns the first 10 results as a preview, so you can check the data and the fields before you pay. A paid Apify plan returns every result: https://apify.com/pricing?fpr=ymnoit

#### Copy to your AI assistant

```text
themineworks/rightmove-scraper on Apify. Returns public Rightmove UK property listings for sale or to rent, from place names with filters or from Rightmove search links, plus single property links, one row per listing with listing_id, url, title, listing_type, price, currency, price_label, price_frequency for rents, property_type, bedrooms, bathrooms, size in sq ft and sq m when the agent gives it, display_address, outcode, latitude, longitude, listed_at, updated_at, tenure, agency_name, branch_name, agency_phone, agency_url, images, key_features, summary and energy_rating when stated; with includeDetails also description, postcode, price_per_sqft, council_tax_band, lease years, service charge, ground rent, deposit, furnish_type, let terms, floorplans, epc_urls, nearest_stations and property_features. Call ApifyClient("TOKEN").actor("themineworks/rightmove-scraper").call(run_input={"locations": ["Leeds"], "listingType": "sale", "maxListingsPerSearch": 100}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: nothing (an empty input searches London); normally locations (place names, postcodes or Rightmove location ids) and/or startUrls (Rightmove search or property links). Optional: listingType ("sale" or "rent", default sale), minPrice, maxPrice (GBP, monthly for rents), minBedrooms, maxBedrooms, propertyTypes (detached, semi-detached, terraced, flat, bungalow, land, park-home), radiusMiles ("0.0" to "40.0"), addedWithinDays ("any", "1", "3", "7", "14"), includeUnderOffer (default false), sortBy ("newest", "oldest", "highest_price", "lowest_price"), maxListingsPerSearch (20 to 1,000, default 100), includeDetails (default false), onlyNewListings (default false). Skip rows that have "_type". Full spec: GET https://api.apify.com/v2/acts/themineworks~rightmove-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **Up to 45 fields per listing, up to 64 with details**: price and the price as Rightmove shows it, qualifier (Guide Price, Offers in Excess of), weekly and monthly rent, property type, bedrooms, bathrooms, floor area in sq ft and sq m, address, postcode district, coordinates, listing date, last update and its reason, status (Under offer, Let agreed), tenure, agent brand, branch, branch phone and Rightmove branch page, photos, floor plan count, key features and the card summary.
- **Details on request, same price**: the property page adds the full description, the exact floor area, price per sq ft, the full postcode, tenure and years left on the lease, council tax band, annual service charge and ground rent, deposit, furnishing, let type and minimum term for rents, floor plans, EPC files, brochures, the three nearest stations, heating, parking, garden and accessibility, the branch address and every photo. In our details run all 81 property pages were read.
- **Up to 1,000 listings per search**: Rightmove shows 24 a page and at most 42 pages for one search. For a bigger area, give several smaller places (postcode districts or towns) in one run; a listing found by two searches is delivered once.
- **Filters as on the site**: for sale or to rent, price range, bedrooms, seven property types, radius up to 40 miles, added in the last 1, 3, 7 or 14 days, include under offer and sold STC or let agreed, four sort orders. Any other filter you set on rightmove.co.uk comes in through a pasted link.
- **Only new listings for schedules**: remembers up to 50,000 listings per input in a key-value store in your account. With the newest first sort a repeat run stops at the first page with nothing new.
- **No browser, no login**: plain requests to the same data rightmove.co.uk's own pages load, over Apify's datacenter proxy, which the run includes.

### How to use it

#### Basic: one place, for sale

```json
{
  "locations": ["Leeds"],
  "listingType": "sale",
  "maxListingsPerSearch": 100
}
```

#### Several places at once

Each place is its own search of up to `maxListingsPerSearch` listings, and three run at a time. This is the input of our 3,000 listing proof run:

```json
{
  "locations": ["London", "Manchester", "Birmingham"],
  "listingType": "sale",
  "maxListingsPerSearch": 1000
}
```

#### Lettings agents: new rentals in your patch, every morning

Watch the postcode districts you cover and get only rentals listed since the last run, with the competing agent and branch phone on each row. Save the input as a task and add a daily schedule in Apify Console (Schedules, Add schedule). A quiet morning reads one page per district and costs the start fee.

```json
{
  "locations": ["M1", "M4", "M15", "Salford"],
  "listingType": "rent",
  "addedWithinDays": "3",
  "sortBy": "newest",
  "maxListingsPerSearch": 200,
  "onlyNewListings": true
}
```

#### Investors: family homes under a price, with the full particulars

Price, size, tenure, lease years, council tax and the full description for a shortlist, so you can work out yield without opening every page.

```json
{
  "locations": ["Bristol", "Bath"],
  "listingType": "sale",
  "minBedrooms": 3,
  "maxPrice": 450000,
  "propertyTypes": ["semi-detached", "terraced"],
  "radiusMiles": "3.0",
  "maxListingsPerSearch": 150,
  "includeDetails": true
}
```

#### Market research: a search you set up on rightmove.co.uk

Set every filter on the site, copy the link from the address bar and paste it. Filters in the link are kept as they are.

```json
{
  "startUrls": [
    "https://www.rightmove.co.uk/property-to-rent/find.html?locationIdentifier=REGION%5E787&maxPrice=1500&minBedrooms=2",
    "https://www.rightmove.co.uk/properties/92734608"
  ],
  "maxListingsPerSearch": 500
}
```

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `locations` | array of strings | none (prefilled with `Manchester`) | Places to search: town, city, area, postcode district, full postcode (with a radius) or Rightmove location id. When places and links are both left out, the run searches London. |
| `startUrls` | array of strings | empty | Rightmove search links (filters in the link are kept) and property links. |
| `listingType` | string | `sale` | `sale` or `rent`, for places. |
| `minPrice` | integer | none | Lowest price in GBP; for rents the monthly rent. |
| `maxPrice` | integer | none | Highest price in GBP; for rents the monthly rent. |
| `minBedrooms` | integer | none | Fewest bedrooms, 0 to 10 (0 includes studios). |
| `maxBedrooms` | integer | none | Most bedrooms, 0 to 10. |
| `propertyTypes` | array of strings | empty (all) | `detached`, `semi-detached`, `terraced`, `flat`, `bungalow`, `land`, `park-home`. |
| `radiusMiles` | string | `0.0` | `0.0` (this area only), `0.25`, `0.5`, `1.0`, `3.0`, `5.0`, `10.0`, `15.0`, `20.0`, `30.0` or `40.0` miles around each place. |
| `addedWithinDays` | string | `any` | `any`, `1`, `3`, `7` or `14`: only listings Rightmove added in that many days. |
| `includeUnderOffer` | boolean | `false` | Include listings under offer, sold STC or let agreed. |
| `sortBy` | string | `newest` | `newest`, `oldest`, `highest_price` or `lowest_price`. |
| `maxListingsPerSearch` | integer | 100 | Listings per place or search link, 20 to 1,000. |
| `includeDetails` | boolean | `false` | Read each property page for the full particulars, at the same price per listing. |
| `onlyNewListings` | boolean | `false` | Skip, and do not charge for, listings an earlier run with the same input delivered. |

The filters apply to places only; a search link keeps its own.

### What data do you get?

One row per listing. A field with no value is left out of that row rather than sent empty.

- **The listing**: `listing_id`, `url`, `title` (3 bedroom flat for sale), `listing_type` (sale or rent), `property_type`, `status`, `summary`, `key_features`, `images`, `image_count`, `floorplan_count`, `has_virtual_tour`, `is_featured`, `is_premium`, `is_auction`, `is_new_home`.
- **Price**: `price` (a number), `currency`, `price_label` (as shown), `price_qualifier`, `price_secondary_label` (the weekly figure of a rent), `price_frequency` (monthly or weekly, rents only), `price_per_sqm` (sale price divided by the floor area, when the agent gives the area), and with details `price_per_sqft` as Rightmove shows it.
- **Size and rooms**: `bedrooms`, `bathrooms`, `size_label`, `size_sqft`, `size_sqm`. Floor area is there when the agent publishes it.
- **Where**: `display_address`, `outcode`, `latitude`, `longitude`, and with details `postcode` and `country`.
- **When**: `listed_at` (first live on Rightmove), `updated_at`, `update_reason` (new, price_reduced), `added_or_reduced` (Added on 04/09/2026), `let_available_date` for rents.
- **The agent**: `agency_name`, `branch_name`, `agency_phone` (the branch number published on the listing), `agency_url` (the branch page on Rightmove), `agency_branch_id`, and with details `agency_address`.
- **With `includeDetails`**: `description`, `tenure`, `lease_years_remaining`, `council_tax_band`, `annual_service_charge`, `annual_ground_rent`, `deposit`, `furnish_type`, `let_type`, `min_tenancy_months`, `floorplans`, `epc_urls`, `brochure_urls`, `nearest_stations`, `property_features` (heating, parking, garden, accessibility, utilities), `is_shared_ownership`.
- **Energy**: `energy_rating` (A to G) when the agent writes it in the key features or description, for example "EPC rating C". The EPC chart itself is linked in `epc_urls` with details.
- **Where the row came from**: `details_included`, `rank`, `search_input`, `search_url`, `scraped_at`.

#### Stable fields for automations

These fields were present in every row of our proof runs (3,081 rows, list and details mode), and their names will not change:

| Field | What it holds |
|---|---|
| `listing_id` | Rightmove's property id, stable across runs; use it to dedupe |
| `url` | Link to the listing |
| `title` | Rightmove's heading, for example 2 bedroom apartment for sale |
| `listing_type` | `sale` or `rent` |
| `price` | Price as a number (monthly for most rents) |
| `currency` | GBP |
| `price_label` | Price as Rightmove shows it |
| `property_type` | Flat, Apartment, Terraced, Detached and so on |
| `bedrooms` | Number of bedrooms |
| `display_address` | Address as the agent published it |
| `latitude` | Latitude of the map pin |
| `longitude` | Longitude of the map pin |
| `listed_at` | When the listing first went live |
| `agency_name` | Estate or letting agent |
| `agency_phone` | Branch phone published on the listing |

#### Output examples

Real rows from our proof runs on 6 October 2026, shortened: lists cut to their first items, long text cut with ...

**A listing for sale from a place search** (Manchester, details off):

```json
{
  "listing_id": "173938961",
  "url": "https://www.rightmove.co.uk/properties/173938961",
  "title": "2 bedroom apartment for sale",
  "listing_type": "sale",
  "price": 285000,
  "currency": "GBP",
  "price_label": "£285,000",
  "price_per_sqm": 3608,
  "property_type": "Apartment",
  "bedrooms": 2,
  "bathrooms": 2,
  "size_label": "847 sq. ft.",
  "size_sqft": 847,
  "size_sqm": 79,
  "display_address": "THE ASSEMBLY, ONE CAMBRIDGE STREET",
  "latitude": 53.473373,
  "longitude": -2.243867,
  "listed_at": "2026-03-31T16:16:55Z",
  "updated_at": "2026-10-05T22:07:09Z",
  "update_reason": "price_reduced",
  "added_or_reduced": "Reduced today",
  "tenure": "LEASEHOLD",
  "agency_name": "The Good Estate Agency",
  "branch_name": "The Good Estate Agency, Manchester",
  "agency_phone": "0161 524 3447",
  "agency_url": "https://www.rightmove.co.uk/estate-agents/agent/The-Good-Estate-Agency/Manchester-106691.html",
  "agency_branch_id": "106691",
  "images": [
    "https://media.rightmove.co.uk/property-photo/91e8dd758/173938961/91e8dd7580658694d0fef07f2c808271.jpeg",
    "https://media.rightmove.co.uk/property-photo/499c2fdb2/173938961/499c2fdb2257d1ea41529be9f81cb473.jpeg",
    "..."
  ],
  "image_count": 31,
  "floorplan_count": 1,
  "has_virtual_tour": false,
  "key_features": [
    "TWO DOUBLE BEDROOMS",
    "BATHROOM & EN SUITE",
    "SPACIOUS OPEN PLAN LIVING & DINING ROOM",
    "RAISED GROUND FLOOR"
  ],
  "summary": "TWO BEDROOM, TWO BATHROOM APARTMENT WITH JULIET BALCONY. Welcome to a splendid opportunity to acquire a large two-bedroom apartment situated in The Assembly at One Cambridge Street. This impressive residence, located on ...",
  "is_featured": false,
  "is_premium": false,
  "is_auction": false,
  "is_new_home": false,
  "details_included": false,
  "rank": 2,
  "search_input": "Manchester",
  "search_url": "https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E904&sortType=6&radius=0.0",
  "scraped_at": "2026-10-05T22:07:11.371Z"
}
```

**A rental with the property page** (Edinburgh, `includeDetails: true`):

```json
{
  "listing_id": "93950094",
  "url": "https://www.rightmove.co.uk/properties/93950094",
  "title": "2 bedroom apartment",
  "listing_type": "rent",
  "price": 1500,
  "currency": "GBP",
  "price_label": "£1,500 pcm",
  "price_secondary_label": "£346 pw",
  "price_frequency": "monthly",
  "property_type": "Apartment",
  "bedrooms": 2,
  "bathrooms": 2,
  "size_label": "732 sq. ft.",
  "size_sqft": 732,
  "size_sqm": 68,
  "display_address": "Hatters Lane, Edinburgh, Midlothian",
  "outcode": "EH7",
  "latitude": 55.965584,
  "longitude": -3.19245,
  "listed_at": "2026-10-05T19:22:32Z",
  "updated_at": "2026-10-05T19:28:32Z",
  "update_reason": "new",
  "added_or_reduced": "Added today",
  "let_available_date": "2026-10-28",
  "agency_name": "Rettie",
  "branch_name": "Rettie, Edinburgh",
  "agency_phone": "0131 378 1040",
  "agency_url": "https://www.rightmove.co.uk/estate-agents/agent/Rettie/Edinburgh-59954.html",
  "agency_branch_id": "59954",
  "images": [
    "https://media.rightmove.co.uk/property-photo/bcb5268e8/93950094/bcb5268e88415514a640f51b0701766a.jpeg",
    "https://media.rightmove.co.uk/property-photo/a7a03622f/93950094/a7a03622fabdb324bb60e031ac08c28d.jpeg",
    "..."
  ],
  "image_count": 15,
  "floorplan_count": 1,
  "has_virtual_tour": false,
  "key_features": [],
  "summary": "A contemporary third floor two-bedroom furnished apartment, forming part of a modern development in Canonmills. The property is neutrally decorated and is light and spacious, with good quality fixtures and fittings and ...",
  "energy_rating": "B",
  "is_featured": false,
  "is_premium": false,
  "is_auction": false,
  "is_new_home": false,
  "details_included": true,
  "rank": 6,
  "search_input": "Edinburgh",
  "search_url": "https://www.rightmove.co.uk/property-to-rent/find.html?locationIdentifier=REGION%5E475&sortType=6&radius=0.0",
  "scraped_at": "2026-10-05T22:08:41.164Z",
  "description": "A contemporary third floor two-bedroom furnished apartment, forming part of a modern development in Canonmills.\n\nThe property is neutrally decorated and is light and spacious, with good quality fixtures and fittings and ...",
  "council_tax_band": "E",
  "deposit": 1700,
  "furnish_type": "Furnished",
  "let_type": "Long term",
  "postcode": "EH7 4GX",
  "country": "Scotland",
  "floorplans": [
    "https://media.rightmove.co.uk/property-floorplan/1a1b11963/93950094/1a1b119633e406a5386bbfa3f2a4cdd2.jpeg"
  ],
  "epc_urls": [
    "https://media.rightmove.co.uk/property-epc/55dbeb0f0/93950094/55dbeb0f0f9ffc185c0dee5816869a35.png"
  ],
  "brochure_urls": [],
  "nearest_stations": [
    "Edinburgh Waverley Station (0.94 miles)",
    "Haymarket Station (1.72 miles)",
    "Slateford Station (3.35 miles)"
  ],
  "property_features": [
    "Parking: Yes"
  ],
  "agency_address": "10 Wemyss Place, Edinburgh, EH3 6DL",
  "is_shared_ownership": false
}
```

**A property link** (`startUrls`), always read in full:

```json
{
  "listing_id": "92734608",
  "url": "https://www.rightmove.co.uk/properties/92734608",
  "title": "3 bedroom flat for sale in Carrick House, Royal Docks, London, E16",
  "listing_type": "sale",
  "price": 800000,
  "currency": "GBP",
  "price_label": "£800,000",
  "property_type": "Flat",
  "bedrooms": 3,
  "bathrooms": 2,
  "size_label": "1,132 sq ft / 105 sq m",
  "display_address": "Carrick House, Royal Docks, London, E16",
  "latitude": 51.49888,
  "longitude": 0.02733,
  "listed_at": "2026-09-04",
  "added_or_reduced": "Added on 04/09/2026",
  "agency_name": "Foxtons",
  "branch_name": "Foxtons, Canary Wharf",
  "agency_url": "https://www.rightmove.co.uk/estate-agents/agent/Foxtons/Canary-Wharf-48101.html",
  "agency_branch_id": "48101",
  "is_featured": true,
  "is_premium": false,
  "search_input": "https://www.rightmove.co.uk/properties/92734608",
  "search_url": "https://www.rightmove.co.uk/properties/92734608",
  "scraped_at": "2026-10-05T22:08:38.258Z",
  "description": "Ample bedroom apartment offering a bright open-plan reception room with dining space, a contemporary fitted kitchen, three well-proportioned bedrooms and a stylish 2 bathrooms and a spacious balcony with Thames views\nIn ...",
  "size_sqm": 105,
  "size_sqft": 1132,
  "price_per_sqft": 706.71,
  "tenure": "LEASEHOLD",
  "council_tax_band": "TBC",
  "outcode": "E16",
  "postcode": "E16 2SU",
  "country": "England",
  "images": [
    "https://media.rightmove.co.uk/property-photo/c2399c126/92734608/c2399c126264f5608b801e76e141df7a.jpeg",
    "https://media.rightmove.co.uk/property-photo/0c84730ec/92734608/0c84730ecbfa632f1839fe49ac968f57.jpeg",
    "..."
  ],
  "image_count": 18,
  "floorplans": [
    "https://media.rightmove.co.uk/property-floorplan/014d4d2c2/92734608/014d4d2c208a29c0ad356219276f060d.png"
  ],
  "epc_urls": [],
  "brochure_urls": [
    "https://www.foxtons.co.uk/properties-for-sale/e16/chpk4557539"
  ],
  "nearest_stations": [
    "Pontoon Dock Station (0.34 miles)",
    "West Silvertown Station (0.35 miles)",
    "Emirates Royal Docks Station (0.74 miles)"
  ],
  "property_features": [
    "Garden: Yes"
  ],
  "agency_address": "Unit 2, 20 Canada Square, London, E14 5NN",
  "agency_phone": "020 3909 9891",
  "is_shared_ownership": false,
  "key_features": [
    "Fantastic 3 bedroom flat",
    "Large interiors throughout",
    "Fantastic private balcony with Thames river views",
    "2 sleek family size bathrooms"
  ],
  "details_included": true,
  "price_per_sqm": 7619
}
```

### Pricing

Pay per event: you pay for each listing delivered to your dataset, plus a flat $0.005 per run, whatever memory you choose. Prices by Apify plan:

| Event | Free plan | Bronze (Starter) | Silver (Scale) | Gold and above (Business) |
|---|---|---|---|---|
| Listing delivered (`listing-scraped`), per 1,000 | $1.20 | $1.20 | $1.20 | $1.20 |
| Run start (`run-start`), once per run | $0.005 | $0.005 | $0.005 | $0.005 |

Free plan runs return up to 10 results each; paid plans have no cap.

The property page details come at the same price per listing; there is no separate details fee. Details make the run slower (one extra request per listing), not dearer.

What is never charged:

- Places Rightmove has no location for, and searches with no listings.
- Pages Rightmove refused, even after retries on a new connection.
- The same listing found twice: Rightmove repeats its featured listing on every page, and two places can overlap. The second copy is skipped.
- Listings an earlier run already delivered, when Only listings not delivered before is on.
- Property links whose listing has been taken down.
- The information row in the dataset (it has a `_type` field).

Proxy traffic goes through Apify's datacenter proxy, which is included in the price; there is no separate proxy fee.

### FAQ

**What does this actor read?**
Public Rightmove listings in the UK, logged out, the way any visitor sees them on rightmove.co.uk: the search results and, with details on, each property page. It asks Rightmove for the same data its own pages load. It does not use a Rightmove account or your cookies.

**What do I get on the free plan?**
Each run on the free plan returns up to 10 results, enough to check the data and the fields. A paid Apify plan returns every result, with no cap: https://apify.com/pricing?fpr=ymnoit

**How many listings can I get?**
Up to 1,000 per search, because Rightmove itself shows 42 pages of 24 for one search. London has about 60,000 homes for sale, so for a whole city give several smaller places (postcode districts or boroughs) in one run; each is its own search of up to 1,000 and a listing found twice is delivered once. Our proof run read the full 1,000 for London, Manchester and Birmingham in 89 seconds.

**Do I need Rightmove's location ids?**
No. Type a place the way you would in the Rightmove search box and the actor looks it up with Rightmove's own place finder, then uses the first match (the summary tells you which place was used). You can still give an id such as `REGION^87490`, or paste a search link.

**Why do some listings have no size or energy rating?**
Rightmove shows the floor area only when the agent enters it: 37% of sale listings in our proof run had it. The energy rating is filled when the agent states it in the key features or description ("EPC rating C"); the EPC chart or certificate itself is linked in `epc_urls` when you turn on details.

**Where do the phone numbers come from?**
Rightmove lists properties from estate and letting agents, and each listing shows the branch phone number for enquiries. `agency_phone` is that published business number; the actor collects no personal contact details.

**How fresh is the data?**
Live. Each run asks Rightmove at that moment. `listed_at` is when the listing first went live and `updated_at` with `update_reason` shows the last change, such as a price reduction.

**Do I need a Rightmove account, cookies or a proxy of my own?**
No. Nothing to log in to and nothing to set up. The actor uses Apify's datacenter proxy, which the run includes; in our proof runs all 215 requests were answered on the first try.

**Can I run it on a schedule and get only new listings?**
Yes. Turn on `onlyNewListings`, keep `sortBy` at `newest` and add a schedule in Console (Schedules, Add schedule, daily or hourly). Each run delivers and charges only listings no earlier run with the same input delivered, and stops reading a search at the first page with nothing new. In our test the second run of the same Brighton search returned 20 other listings and none of the first 20.

**What happens with a wrong place or a removed listing?**
It gets a status such as `location_not_found` or `not_found` in the run summary (the OUTPUT record) and costs nothing; the rest of the run goes on.

**What formats can I export?**
JSON, CSV, Excel, XML, RSS and HTML from the dataset tab, or through the API. In CSV and Excel, lists such as `images` and `key_features` are spread over numbered columns (`images/0`, `images/1`).

**Does it cover Scotland and Wales?**
Yes, everything Rightmove lists in the UK: England, Scotland, Wales and Northern Ireland. With details on, `country` says which.

**Can I use it from Claude, ChatGPT or Cursor (MCP)?**
Yes, through Apify's MCP server.

- Connector URL: https://mcp.apify.com/?tools=themineworks/rightmove-scraper
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http rightmove-scraper "https://mcp.apify.com/?tools=themineworks/rightmove-scraper"`

**Is it legal to scrape Rightmove?**
The actor reads only public listing pages and returns what any visitor can see. You are responsible for how you use the data, including Rightmove's terms and data protection law such as UK GDPR and CCPA.

### Integrations

- **Google Sheets**: add the Google Sheets integration to the actor or a schedule, and new listings land in a sheet after each run.
- **Make, Zapier and n8n**: use the Apify app to start a run and read the dataset, for example to post new rentals in your area to Slack or a CRM.
- **Webhooks**: call your own endpoint when a run finishes.
- **API**: start runs and read results from any language; the Python and JavaScript clients are a few lines each.
- **MCP clients**: Claude, ChatGPT, Cursor, VS Code and Claude Code, as in the FAQ above.

### More from The Mine Works

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [99acres Scraper](https://apify.com/themineworks/99acres-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [MagicBricks Scraper](https://apify.com/themineworks/magicbricks-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Property Scraper](https://apify.com/themineworks/zillow-property-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Photos Scraper](https://apify.com/themineworks/zillow-photos?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Real Estate MCP](https://apify.com/themineworks/real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Airbnb Scraper](https://apify.com/themineworks/airbnb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Domain.com.au Property Scraper](https://apify.com/themineworks/domain-property-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [realestate.com.au Scraper](https://apify.com/themineworks/realestate-com-au-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a place, link or field that does not come through? Open an issue on the Issues tab and include the input you used; we answer there. For a new site or source, email dmineworks@gmail.com.

*Rightmove Scraper turns UK place names and Rightmove links into a clean table of homes for sale and to rent, with prices, sizes, locations and the agent's phone, and a charge only for the listings you get.*

# Actor input Schema

## `locations` (type: `array`):

One place per line, as you would type it in the Rightmove search box: a town or city (Manchester), an area (Canary Wharf), a postcode district (SW1A) or a full postcode (give it a search radius, since one postcode rarely has a listing of its own). Each place is searched with the filters below. A Rightmove location id such as REGION^87490 works too. When you give nothing at all the actor searches London.

## `startUrls` (type: `array`):

Optional. Rightmove search pages (https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490\&maxPrice=500000) are read with the filters already in the link; the filters below do not apply to them. Property pages (https://www.rightmove.co.uk/properties/92734608) return that one listing with its full details.

## `listingType` (type: `string`):

Which listings to search for each place.

## `minPrice` (type: `integer`):

Optional. For rents this is the monthly rent (pcm).

## `maxPrice` (type: `integer`):

Optional. For rents this is the monthly rent (pcm).

## `minBedrooms` (type: `integer`):

Optional. 0 means studios are included.

## `maxBedrooms` (type: `integer`):

Optional.

## `propertyTypes` (type: `array`):

Optional. Leave empty for every type.

## `radiusMiles` (type: `string`):

How far around each place to search.

## `addedWithinDays` (type: `string`):

Only listings Rightmove added within this many days.

## `includeUnderOffer` (type: `boolean`):

Rightmove hides these by default; tick to include them.

## `sortBy` (type: `string`):

Order of the results. Newest first suits schedules with Only new listings.

## `maxListingsPerSearch` (type: `integer`):

How many listings to collect for each place or search link, 20 to 1,000. Rightmove shows 24 a page and at most 42 pages (about 1,000) for one search; split a big area into smaller places to get more.

## `includeDetails` (type: `boolean`):

Reads each listing's own page and adds the full description, exact floor area in sq ft and sq m, price per sq ft, tenure and lease years, council tax band, service charge and ground rent, deposit and let terms, floor plans, EPC files, nearest stations, heating and parking, the branch address and every photo. Same price per listing; the run takes longer.

## `onlyNewListings` (type: `boolean`):

For schedules: skip, and do not charge for, listings an earlier run with the same places and links already delivered. Each run then returns only listings that are new to you.

## Actor input object example

```json
{
  "locations": [
    "Manchester"
  ],
  "listingType": "sale",
  "radiusMiles": "0.0",
  "addedWithinDays": "any",
  "includeUnderOffer": false,
  "sortBy": "newest",
  "maxListingsPerSearch": 100,
  "includeDetails": false,
  "onlyNewListings": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "locations": [
        "Manchester"
    ],
    "listingType": "sale",
    "maxListingsPerSearch": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/rightmove-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "locations": ["Manchester"],
    "listingType": "sale",
    "maxListingsPerSearch": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/rightmove-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "locations": [
    "Manchester"
  ],
  "listingType": "sale",
  "maxListingsPerSearch": 100
}' |
apify call themineworks/rightmove-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/rightmove-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hJ9r01wVMSOk4yXSf/builds/kenHEpT4JiwdHBkpE/openapi.json
