# Rightmove Property Scraper (`parseforge/rightmove-property-scraper`) Actor

Scrape property listings from Rightmove for sale or rent. Returns price, bedrooms, address, description, photos, floor plans, and agent details per listing.

- **URL**: https://apify.com/parseforge/rightmove-property-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Real estate, Agents, Automation
- **Features:** Limited permissions
- **Stats:** 13 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $21.99 / 1,000 result items

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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)](https://apify.com/parseforge?fpr=vmoqkp)

### Rightmove Property Scraper

**Scrape property listings from Rightmove for sale or rent, up to a million per run.** Every property comes with its price, bedrooms, location, description, and agent details. No login or API key. Export to CSV, JSON, Excel, or XML.

Rightmove is the UK's largest property portal, but its official data feeds are limited and require agreements. This Actor reads the public search results directly, filtered by price, bedrooms, property type, radius, and recency, and returns each listing in one fixed schema.

| Who uses it | What they scrape Rightmove for |
|---|---|
| Property investors | Which areas have the most reduced or newly listed properties this week |
| Estate agents | Monitor competitor listings and pricing trends in their target postcode |
| Market researchers | Build datasets on UK housing supply, price distribution, and time on market |
| Home movers | Get notified of properties matching their exact criteria without manual browsing |

### What it does

This Actor collects property listings from Rightmove by search URL or filter parameters, and returns each one as a flat row with price, address, description, and agent info.

- 🔍 **Search by URL:** Paste any Rightmove search URL and the Actor follows the pagination.
- ⚙️ **Filter mode:** Set location, channel (buy/rent), price range, bedrooms, radius, property types, and recency without a URL.
- 📅 **Recency filter:** Only collect properties added in the last 1, 3, 7, or 14 days.
- 📊 **Sort options:** Most Recent, Highest Price, Lowest Price, Most Reduced, or Featured.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Rightmove data

**📈 Track price reductions and new listings.**

A property investor runs the Actor daily on a set of postcodes to spot newly reduced or listed properties before other buyers.

**🏡 Compare rental yields across UK cities.**

A market researcher collects rent and sale prices for the same area to calculate yield and identify the best investment locations.

**📊 Monitor competitor estate agents.**

An agency runs the Actor weekly on their target postcodes to see which agents list the most properties and at what price points.

**🔔 Automate property alerts.**

A home buyer sets up a scheduled run with their exact criteria and receives a fresh dataset each morning to review new matches.

### Why choose this scraper

|  | What you get |
|---|---|
| **Price and deposit** | Current price, currency, and deposit amount if renting |
| **Location details** | Full address, latitude, longitude, and a map URL |
| **Property specs** | Number of bedrooms, bathrooms, property type, and floor area |
| **Description and images** | Full listing description, photo URLs, and floor plan links |
| **Agent info** | Agent name, phone, and logo URL |
| **Listing metadata** | Date added, listing ID, URL, and whether it is Sold STC |

### How it compares

No other Store actor targets Rightmove the same way, so the honest comparison is with the alternatives teams actually weigh.

| | Rightmove Property Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Rightmove changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor from a Rightmove search URL or from individual filter fields, and filters run as each listing is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10,
  "locationIdentifier": "REGION^87490",
  "channel": "BUY",
  "sortType": "6"
}
```

A larger pull:

```json
{
  "maxItems": 200,
  "locationIdentifier": "REGION^87490",
  "channel": "BUY",
  "sortType": "6"
}
```

### Pricing

Pay-per-result: **$0.02934 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $2.93 |
| 1,000 results | $29.34 |
| 10,000 results | $293.40 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Rightmove Property Scraper](https://apify.com/parseforge/rightmove-property-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Rightmove through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/rightmove-property-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that your Start URL is a valid Rightmove search URL, or that your filter fields are not conflicting. For example, a radius of 0 with no location may return nothing.

**The Actor returns fewer properties than maxItems.**

Rightmove limits search results to about 1,000 pages (roughly 25,000 properties). If your filters are narrow, the total available may be less than maxItems.

**Can I use both Start URL and filters together?**

No, the input schema says use one or the other. If you provide a Start URL, the filters are ignored.

**The price field shows 0 for some listings.**

Some properties, especially commercial or land, may not display a price on the listing page. Those entries will have price set to 0.

**How do I scrape a specific postcode?**

Use a Start URL from a Rightmove search for that postcode, or use the locationIdentifier from that URL in filter mode.

### FAQ

| Question | Answer |
|---|---|
| Do I need a Rightmove account or API key? | No. The Actor reads public search results directly, so no login or API key is required. |
| Can I scrape properties for sale and to rent in the same run? | No, each run is either for sale (BUY) or to rent (RENT). Run the Actor twice with different channel settings to get both. |
| What does the Location Identifier mean and how do I find it? | It is a code like REGION^87490 that Rightmove uses internally. The easiest way is to use a Start URL instead, which already contains the location. |
| How many properties can I scrape per run? | Up to 1,000,000 properties per run. The maxItems field controls the limit. |
| Does the Actor handle pagination automatically? | Yes, it follows the next-page links on Rightmove until it reaches the maxItems limit or the end of results. |
| Can I filter by property type like flat or house? | Yes, use the propertyTypes field to select one or more types. Leave it empty for all types. |
| What does 'Include Sold STC' mean? | Sold STC means Sold Subject To Contract. Enabling this includes properties that have an accepted offer but are not yet completed. |
| What sort orders are available? | Most Recent, Highest Price, Lowest Price, Most Reduced, and Featured. The default is Most Recent. |
| Can I scrape properties from a specific agent? | Not directly via filters, but you can use a Start URL from that agent's Rightmove page. |
| Does the Actor return floor plans and photos? | Yes, it returns URLs to all photos and floor plans listed on the property page. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Rightmove plc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `startUrl` (type: `string`):

Rightmove search URL. Use this OR the filters below (not both).

## `maxItems` (type: `integer`):

How many properties to collect per run.

## `keywords` (type: `string`):

Text query for listing descriptions, for example garden, parking, or chain free.

## `locationIdentifier` (type: `string`):

Optional. Use this in filter mode. Copy it from a Rightmove URL (example: locationIdentifier=REGION^87490). If unsure, use Start URL.

## `channel` (type: `string`):

Choose whether to collect properties for sale or to rent.

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

Minimum property price in GBP.

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

Maximum property price in GBP.

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

Minimum number of bedrooms.

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

Maximum number of bedrooms.

## `radius` (type: `number`):

Radius around the location. Common values: 0, 1, 3, 5, 10, 20.

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

Filter by property type list. Leave empty for all types.

## `maxDaysSinceAdded` (type: `integer`):

Only include properties added in the last 1, 3, 7, or 14 days.

## `includeSSTC` (type: `boolean`):

Include properties marked as Sold Subject To Contract.

## `sortType` (type: `string`):

How to sort result listings.

## Actor input object example

```json
{
  "maxItems": 10,
  "locationIdentifier": "REGION^87490",
  "channel": "BUY",
  "radius": 0,
  "includeSSTC": false,
  "sortType": "6"
}
```

# Actor output Schema

## `overview` (type: `string`):

Main overview table for collected Rightmove properties.

# 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 = {
    "maxItems": 10,
    "locationIdentifier": "REGION^87490",
    "channel": "BUY",
    "sortType": "6"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/rightmove-property-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 = {
    "maxItems": 10,
    "locationIdentifier": "REGION^87490",
    "channel": "BUY",
    "sortType": "6",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/rightmove-property-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 '{
  "maxItems": 10,
  "locationIdentifier": "REGION^87490",
  "channel": "BUY",
  "sortType": "6"
}' |
apify call parseforge/rightmove-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/rightmove-property-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/QSWZf6TFyQPWgkiYx/builds/okZdADuQZHRqqoCUk/openapi.json
