# Rightmove Scraper (`automation-lab/rightmove-scraper`) Actor

Scrape Rightmove property listings for repeatable UK market research. Extract prices, addresses, photos, GPS coordinates, agent details, and key features for sales and rentals; export JSON, CSV, or Excel.

- **URL**: https://apify.com/automation-lab/rightmove-scraper.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 106 total users, 20 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### What does Rightmove Scraper do?

**Rightmove Scraper** extracts property listing data from [Rightmove.co.uk](https://www.rightmove.co.uk) — the UK's largest property portal with over 1 million live listings. Enter any UK location and get structured data including **prices, addresses, GPS coordinates, photos, agent details, key features, and property specifications**.

Works for both **sales and rentals** across all UK regions. No API key or login required. Just enter a location like "London", "Manchester", or a postcode like "SW1A 1AA" — the scraper handles location resolution automatically.

The easiest way to try it is to click **Start** with the default input (London, BUY, 10 results). You'll have structured property data in under 30 seconds.

Scrape public Rightmove property listings for repeatable UK market research. Extract structured fields such as price, location/address, property type, area, beds/baths, images, agent or agency data where available, and listing URLs. Export to JSON/CSV/Excel, schedule recurring runs, or call the actor through the Apify API.

Best for PropTech teams, investors, brokerages, and researchers tracking UK sale/rental supply, pricing, and listing changes.

### Who is it for?

🏠 **Property investors and analysts**

- Track property prices across multiple UK regions over time
- Compare asking prices vs. sold prices for market analysis
- Build datasets of investment opportunities filtered by yield potential

📊 **Real estate data companies**

- Aggregate UK property listings into your data warehouse
- Monitor new listings and price changes with scheduled runs
- Power property comparison tools with structured data feeds

🔍 **Market researchers**

- Analyse rental yields by area, property type, or bedroom count
- Study agent market share and pricing patterns
- Track supply/demand trends across UK housing markets

💼 **Developers and proptech startups**

- Feed Rightmove data into property valuation models
- Build alerting systems for properties matching specific criteria
- Integrate UK property data via API into your application

### Why use Rightmove Scraper?

- 🚀 **Pure HTTP scraping** — no browser overhead, runs fast at 256 MB memory
- 🔑 **No API key needed** — no authentication, no rate limits from Rightmove APIs
- 📍 **Automatic location resolution** — type any UK place name, postcode, or area
- 🏷️ **Rich data extraction** — prices, GPS coordinates, key features, agent details, tenure, property size
- 💰 **Pay only for what you scrape** — no monthly subscription, per-property pricing
- 📅 **Schedule and monitor** — set up daily/weekly runs to track market changes
- 🔗 **Integrations** — connect to Google Sheets, Slack, Make, Zapier, and 5,000+ apps
- 📤 **Multiple export formats** — JSON, CSV, Excel, XML, RSS

### What data can you extract?

Each property listing includes these fields:

| Field | Type | Description |
|-------|------|-------------|
| `propertyId` | number | Rightmove property ID |
| `displayAddress` | string | Full display address |
| `price` | number | Price in GBP (numeric) |
| `displayPrice` | string | Formatted price (e.g., "£475,000") |
| `priceQualifier` | string | Guide Price, Offers Over, etc. |
| `bedrooms` | number | Number of bedrooms |
| `bathrooms` | number | Number of bathrooms |
| `propertyType` | string | Full description (e.g., "3 bedroom detached house for sale") |
| `propertySubType` | string | Detached, Semi-Detached, Flat, etc. |
| `tenure` | string | FREEHOLD, LEASEHOLD, or null |
| `description` | string | Property listing summary |
| `keyFeatures` | array | Key features list |
| `displaySize` | string | Property size (e.g., "1,119 sq. ft.") |
| `latitude` | number | GPS latitude |
| `longitude` | number | GPS longitude |
| `agent` | string | Estate agent name |
| `agentBranch` | string | Agent branch name |
| `agentPhone` | string | Agent phone number |
| `addedOn` | string | Date added or reduced |
| `imageUrl` | string | Main property photo URL |
| `imageCount` | number | Total number of photos |
| `url` | string | Direct link to Rightmove listing |

### How much does it cost to scrape Rightmove?

This actor uses **pay-per-event** pricing — you pay only for what you scrape. No monthly subscription. All platform costs are **included**.

| | Free | Starter ($29/mo) | Scale ($199/mo) | Business ($999/mo) |
|---|---|---|---|---|
| **Per property** | $0.00345 | $0.003 | $0.00234 | $0.0018 |
| **1,000 properties** | $3.45 | $3.00 | $2.34 | $1.80 |

A one-time $0.005 start fee applies per run. Higher-tier plans get additional volume discounts.

**Real-world cost examples:**

| Query | Properties | Duration | Cost (Free tier) |
|---|---|---|---|
| London, BUY, 15 results | 15 | ~5s | ~$0.06 |
| Manchester, RENT, 20 results | 20 | ~6s | ~$0.07 |
| Edinburgh, BUY filtered, 25 results | 25 | ~5s | ~$0.09 |

On the **free plan** ($5 credits), you can scrape approximately **1,400 properties**.

### How to scrape Rightmove property listings

1. Go to the [Rightmove Scraper](https://apify.com/automation-lab/rightmove-scraper) page on Apify Store.
2. Click **Start** to try with the default input (London, BUY, 10 results).
3. Wait for the run to finish (typically under 30 seconds for small queries).
4. Download your data in JSON, CSV, or Excel format from the **Dataset** tab.

**Custom search example — rental flats in Manchester:**

```json
{
    "searchLocation": "Manchester",
    "channel": "RENT",
    "maxResults": 50,
    "propertyType": "flat"
}
```

**Filtered search — 2+ bed houses under £300K in Edinburgh:**

```json
{
    "searchLocation": "Edinburgh",
    "channel": "BUY",
    "maxResults": 100,
    "minBeds": 2,
    "maxPrice": 300000
}
```

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchLocation` | string | *(required)* | UK city, town, postcode, or area name |
| `channel` | string | `BUY` | `BUY` for sales, `RENT` for rentals |
| `maxResults` | integer | `100` | Max properties to scrape (0 = unlimited) |
| `radius` | string | `0.0` | Search radius in miles (0.0 to 40.0) |
| `minPrice` | integer | — | Minimum price filter (£) |
| `maxPrice` | integer | — | Maximum price filter (£) |
| `minBeds` | integer | — | Minimum bedrooms filter |
| `maxBeds` | integer | — | Maximum bedrooms filter |
| `propertyType` | string | All | detached, semi-detached, terraced, flat, bungalow, land, park-home |
| `sortType` | string | Newest | Sorting: Newest, Highest Price, Lowest Price, Oldest, Most Reduced |
| `includeSSTC` | boolean | `false` | Include Sold STC / Let Agreed properties |

### Output example

```json
{
    "propertyId": 173412350,
    "displayAddress": "John Archer Way, Wandsworth, London, SW18",
    "price": 475000,
    "displayPrice": "£475,000",
    "priceQualifier": "",
    "priceFrequency": "not specified",
    "bedrooms": 2,
    "bathrooms": 1,
    "propertyType": "2 bedroom flat for sale",
    "propertySubType": "Flat",
    "tenure": "LEASEHOLD",
    "description": "A stylish two-bedroom apartment with modern finishes...",
    "keyFeatures": ["Chain Free", "Two Bedrooms", "Modern Kitchen"],
    "displaySize": "750 sq. ft.",
    "latitude": 51.453961,
    "longitude": -0.17484,
    "agent": "John D Wood & Co. Sales",
    "agentBranch": "Wandsworth",
    "agentPhone": "020 8050 5319",
    "url": "https://www.rightmove.co.uk/properties/173412350#/?channel=RES_BUY",
    "imageUrl": "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/...",
    "imageCount": 12,
    "addedOn": "19/03/2026",
    "listingStatus": "new",
    "channel": "BUY",
    "isAuction": false,
    "scrapedAt": "2026-03-20T01:43:50.211Z"
}
```

### Tips for best results

- 🎯 **Start small** — use `maxResults: 10` for your first run to verify the data matches your needs
- 📍 **Use specific locations** — "Wandsworth, London" gives better results than just "London"
- 💷 **Filter by price** — use `minPrice` and `maxPrice` to narrow down results and reduce costs
- 📅 **Schedule daily runs** — track new listings and price changes automatically
- 🔄 **Sort by Newest** — the default sort ensures you always get the latest listings first
- 🏠 **Use property type filters** — searching for a specific type (flat, detached) is faster than "All"
- 📊 **Combine with other scrapers** — pair with Zoopla or OnTheMarket scrapers for comprehensive UK property data

### Integrations

- 📊 **Rightmove → Google Sheets** — export daily property listings to a shared spreadsheet for your team to review
- 🔔 **Rightmove → Slack/Discord** — get instant alerts when new properties matching your criteria are listed
- ⚡ **Rightmove → Make/Zapier** — trigger automated workflows when properties below a price threshold appear
- 📅 **Scheduled runs** — set up daily or weekly scraping to build a historical dataset of price trends
- 🔗 **Webhooks** — receive real-time notifications when a run completes for immediate data processing
- 📈 **Rightmove → BigQuery/PostgreSQL** — pipe property data into your data warehouse for analysis

### API usage

You can programmatically start runs, fetch results, and integrate Rightmove data into your applications.

#### Node.js

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/rightmove-scraper').call({
    searchLocation: 'London',
    channel: 'BUY',
    maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('automation-lab/rightmove-scraper').call(run_input={
    'searchLocation': 'London',
    'channel': 'BUY',
    'maxResults': 50,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~rightmove-scraper/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchLocation": "London", "channel": "BUY", "maxResults": 50}'
```

### Use with AI agents via MCP

Rightmove Scraper is available as a tool for AI assistants that support the [Model Context Protocol (MCP)](https://docs.apify.com/platform/integrations/mcp).

Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:

#### Setup for Claude Code

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

#### Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

```json
{
    "mcpServers": {
        "apify": {
            "url": "https://mcp.apify.com?tools=automation-lab/rightmove-scraper"
        }
    }
}
```

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

#### Example prompts

Once connected, try asking your AI assistant:

- "Find all 3-bedroom houses for sale under £500,000 in Bristol (use automation-lab/rightmove-scraper)"
- "Get the latest rental listings in Manchester city centre and export to a spreadsheet"
- "Compare average asking prices for flats in Edinburgh vs Glasgow"

Learn more in the [Apify MCP documentation](https://docs.apify.com/platform/integrations/mcp).

### Is it legal to scrape Rightmove?

Scraping publicly available data is generally legal under applicable laws. This scraper only accesses publicly available property listings that anyone can view without logging in. It does not bypass any authentication, CAPTCHA, or access restrictions.

For more information, see [Apify's guide on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Legality

Scraping publicly available data is generally legal according to the [US Court of Appeals ruling](https://en.wikipedia.org/wiki/HiQ_Labs_v._LinkedIn) (HiQ Labs v. LinkedIn). This actor only accesses publicly available information and does not require authentication. Always review and comply with the target website's Terms of Service before scraping. For personal data, ensure compliance with GDPR, CCPA, and other applicable privacy regulations.

### FAQ

**How fast is Rightmove Scraper?**
Very fast. It uses pure HTTP requests (no browser), so it can scrape 25 properties in about 5 seconds. A run of 100 properties typically completes in under 20 seconds.

**How much does it cost to scrape 10,000 Rightmove listings?**
On the free plan: approximately $34.50 (10,000 x $0.00345) plus a $0.005 start fee. On the Scale plan: approximately $23.40.

**Can I scrape specific postcodes?**
Yes. Enter any UK postcode (e.g., "SW1A 1AA", "M1 1AA") in the `searchLocation` field. The scraper will resolve it automatically and search that area.

**Why are some results missing prices?**
Some Rightmove listings show "Price on Application" (POA) — the `price` field will be `null` for these. The `displayPrice` field will show the text as displayed on Rightmove.

**Why do I get fewer results than expected?**
Rightmove limits search results to approximately 1,000 properties per query. For large areas, use more specific locations or apply filters (price range, bedrooms) to get targeted results.

### Build a production real-estate data workflow

Use this actor as one source in a repeatable property-data pipeline: scrape listings from the source site, export structured JSON/CSV/Excel, schedule refreshes, and send results to your dashboard, CRM, warehouse, or AI/LLM workflow.

Scrape public Rightmove property listings for repeatable UK market research. Extract structured fields such as price, location/address, property type, area, rooms/beds/baths, images, agency/agent data where available, and listing URLs. Export to JSON/CSV/Excel, schedule recurring runs, or call the actor through the Apify API.

Best for PropTech teams, investors, brokerages, and researchers tracking UK sale/rental supply, pricing, and listing changes.

For broader coverage, combine it with related Automation Lab actors:

- US residential listings: [Zillow Scraper](https://apify.com/automation-lab/zillow-scraper), [Redfin Scraper](https://apify.com/automation-lab/redfin-scraper), [Realtor.com Scraper](https://apify.com/automation-lab/realtor-scraper)
- US agent lead data: [Realtor.com Agents Scraper](https://apify.com/automation-lab/realtor-agents-scraper)
- UK and Europe: [Rightmove Scraper](https://apify.com/automation-lab/rightmove-scraper), [ImmoScout24 Germany Real Estate Scraper](https://apify.com/automation-lab/immoscout24-de-scraper), [Imovirtual Scraper](https://apify.com/automation-lab/imovirtual-scraper), [RE/MAX Portugal Scraper](https://apify.com/automation-lab/remax-portugal-scraper), [Sreality.cz Real Estate Scraper](https://apify.com/automation-lab/sreality-cz-real-estate-scraper), [Pisos.com Real Estate Scraper](https://apify.com/automation-lab/pisos-com-real-estate-scraper)
- Middle East / South Asia: [PropertyFinder Scraper](https://apify.com/automation-lab/propertyfinder-scraper), [Zameen Property Scraper](https://apify.com/automation-lab/zameen-property-scraper)
- Short-term rentals: [Airbnb Scraper](https://apify.com/automation-lab/airbnb-listing) and [Airbnb Reviews Scraper](https://apify.com/automation-lab/airbnb-reviews)

### Related real estate scrapers

- 🏠 [Airbnb Listing Scraper](https://apify.com/automation-lab/airbnb-listing) — extract Airbnb property data
- ⭐ [Airbnb Reviews Scraper](https://apify.com/automation-lab/airbnb-reviews) — scrape Airbnb guest reviews
- 🏨 [Booking.com Scraper](https://apify.com/automation-lab/booking-scraper) — extract hotel and property data

# Actor input Schema

## `searchLocation` (type: `string`):

Enter a UK city, town, postcode, or area name. Examples: London, Manchester, SW1A 1AA, Cotswolds.

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

Search for properties to buy or to rent.

## `maxResults` (type: `integer`):

Maximum number of property listings to scrape. Set to 0 for unlimited.

## `radius` (type: `string`):

Search radius from the location centre in miles.

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

Minimum property price (£). Leave empty for no minimum.

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

Maximum property price (£). Leave empty for no maximum.

## `minBeds` (type: `integer`):

Minimum number of bedrooms.

## `maxBeds` (type: `integer`):

Maximum number of bedrooms.

## `propertyType` (type: `string`):

Filter by property type. Leave empty for all types.

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

How to sort the search results.

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

Include properties that are Sold Subject to Contract (SSTC) or Let Agreed.

## Actor input object example

```json
{
  "searchLocation": "London",
  "channel": "BUY",
  "maxResults": 10,
  "radius": "0.0",
  "propertyType": "",
  "sortType": "6",
  "includeSSTC": false
}
```

# Actor output Schema

## `overview` (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 = {
    "searchLocation": "London",
    "channel": "BUY",
    "maxResults": 10,
    "radius": "0.0"
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/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 = {
    "searchLocation": "London",
    "channel": "BUY",
    "maxResults": 10,
    "radius": "0.0",
}

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

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

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

```

## CLI example

```bash
echo '{
  "searchLocation": "London",
  "channel": "BUY",
  "maxResults": 10,
  "radius": "0.0"
}' |
apify call automation-lab/rightmove-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=automation-lab/rightmove-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/32UEHO2bzMG4krgsk/builds/4tB7PtsH3twDEgINU/openapi.json
