# Rightmove Scraper \[💰$0.9/1K] | UK Property | Sold Prices (`ahmed_jasarevic/rightmove-scraper`) Actor

Extract UK property listings from Rightmove — prices, sold prices, agent data and floor plans. Track price changes, compare sold history and build UK property market datasets.

- **URL**: https://apify.com/ahmed_jasarevic/rightmove-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:** Real estate, E-commerce, Lead generation
- **Features:** Limited permissions
- **Stats:** 10 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.87 / 1,000 results

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 Total Raw Scraper

A fast **Rightmove scraper** for UK property data. Extract complete listing objects — price, bedrooms, images, location, tenure, listing history and more — from public Rightmove search pages for market research, price monitoring and agent lead generation.

### Why use Rightmove Total Raw Scraper?

Rightmove is the UK's largest property portal, with over a million live listings. Scraping it gives you a real-time feed of the housing market for:

- **Property investment** — track pricing, time-on-market, and price reductions
- **Market research** — analyze supply, pricing trends, and listing activity per area
- **Lead generation** — build prospect lists of sellers, landlords, and agents
- **Real-estate analytics** — territory planning and portfolio benchmarking
- **Competitor monitoring** — follow agency listings and new developments

Main features:

- 📦 **100% raw data** — every field Rightmove returns, nothing stripped or transformed
- 🔢 **Exact totals** — paginates until it reaches Rightmove's reported `resultCount`, deduplicated by property ID

### What data can Rightmove Total Raw Scraper extract?

| Field | Type | Description |
| --- | --- | --- |
| `id` | integer | Unique Rightmove property ID |
| `displayAddress` | string | Address shown on the listing |
| `price` | object | Amount, currency, frequency, and display text |
| `bedrooms` / `bathrooms` | integer | Number of bedrooms / bathrooms |
| `propertyTypeFullDescription` | string | e.g. "Semi-Detached Bungalow" |
| `tenure` | string | Freehold / Leasehold / Share of Freehold |
| `location` | object | Latitude and longitude |
| `summary` | string | Listing description text |
| `images` | array | Photo objects with URLs and captions |
| `listingUpdate` | object | Date and reason for the last update |
| `addedOrReduced` | string | Whether the price was added or reduced |
| `formattedDistance` | string | Distance from the search point |
| `propertyUrl` | string | Direct link to the Rightmove listing |
| `firstVisibleDate` | string | When the listing first appeared |
| `channel` | string | `BUY` or `RENT` |
| `customer` | object | Listing agent / branch details |

### How It Works

![Rightmove Scraper workflow: from UK property search to structured listing and sold-price records](https://api.apify.com/v2/key-value-stores/oeuA0kLOyhbRM4fzt/records/how-it-works-rightmove.webp)

Looking for a reliable **Rightmove scraper** or a practical **Rightmove API alternative**? Paste a Rightmove search URL and get structured UK property records for **market research, price monitoring and vendor or agent lead generation**. Each record includes price, bedrooms, bathrooms, floor area, address, coordinates, property type, tenure, agent branch, listing updates and photos across England, Scotland and Wales.

Use the dataset to monitor new listings and reductions, build sold-price comparables, track time on market, or feed UK property dashboards and CRM workflows. Export as JSON, CSV or Excel, or pull results through the Apify API. Start with a small run, then pay from $0.90 per 1,000 results.

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

The Actor runs in seconds per search and has almost no compute overhead, so cost is dominated by the Apify proxy only. Free plans can scrape up to **50 properties per run**; paid users can scrape up to **1,000 properties per search** (Rightmove's API limit). Small searches — a single town or postcode — typically cost a fraction of a cent.

### Input

See the **Input** tab for the full configuration. The only required field is `listUrls`.

| Field | Description |
| --- | --- |
| `listUrls` | Rightmove search URLs. One search per URL; multiple URLs are processed in order. |
| `maxProperties` | Maximum number of properties to collect across all URLs. |
| `proxy` | Apify Proxy configuration (residential recommended). |
| `delayBetweenRequestsMs` | Wait between API pages (default 250 ms). Increase if you hit rate limits. |

### Output

The Actor stores one JSON object per property in its **dataset**. You can download the dataset in various formats such as **JSON, HTML, CSV, or Excel**, or fetch it programmatically from the API tab.

Example output (truncated):

```json
{
  "id": 91505814,
  "bedrooms": 2,
  "bathrooms": 1,
  "numberOfImages": 15,
  "summary": "Offered with No Upward Chain is this Two Bedroom Semi-Detached Bungalow...",
  "displayAddress": "Windsor Drive, Market Drayton",
  "location": { "latitude": 52.910074, "longitude": -2.474674 },
  "price": { "amount": 175000, "currencyCode": "GBP", "displayPrices": ["£175,000"] },
  "propertyUrl": "https://www.rightmove.co.uk/properties/91505814",
  "channel": "BUY",
  "firstVisibleDate": "2025-07-28T13:05:10.000",
  "listingUpdate": { "listingUpdateReason": "price_change", "listingUpdateDate": "..." },
  "customer": { "branchName": "..." },
  "images": [ { "srcUrl": "https://media.rightmove.co.uk/...", "caption": "Front Aspect Crop" } ]
}
```

### SEO Keywords

rightmove scraper, rightmove api, rightmove property data, rightmove price monitoring, uk property data, rightmove sold prices, rightmove rental data, rightmove time on market, uk real estate data, rightmove listings extractor, rightmove api alternative, property investment data uk, uk housing market data, rightmove agent leads, rightmove price tracker, scrape rightmove without api, rightmove JSON api, uk property scraper, rightmove search scraper, rightmove market analysis

### Related Actors

Verified related actors on Apify that pair well with this one. All links point to real, publicly available actors.

- [Zillow Scraper](https://apify.com/maxcopell/zillow-scraper)
- [Immobilienscout24 Scraper](https://apify.com/memo23/immobilienscout24-scraper)

### Tips / Advanced options

- **Rightmove caps each search at ~1,000 results** (42 pages). For areas with more listings, split the area into smaller searches (e.g. by town, postcode district, or radius) and add them all to `listUrls`.
- If a run ends early, check the log: the Actor prints **"Total results available"** for each location — if that number is small, the location simply has few listings (it is not a bug).
- To avoid rate limiting on big runs, keep `delayBetweenRequestsMs` at or above 250 ms and use Apify Proxy with residential IPs.
- For **rental** searches, use a Rightmove `to-rent` URL — the channel is detected automatically.

### FAQ, Disclaimers, and Support

**Why does my run stop at a specific number of results?** The Actor stops when it has collected everything Rightmove reports for that search (`resultCount`) or your `maxProperties` cap. It logs the true total for each location.

**Are you scraping private data?** No. The Actor only extracts what is publicly displayed on Rightmove listings. However, property listings can contain personal data (e.g. owner details in some areas). Personal data is protected by GDPR in the EU and other regulations worldwide — do not scrape personal data without a legitimate reason, and consult a lawyer if unsure.

**Is scraping Rightmove allowed?** Scraping can affect the website's performance, so always use respectful request rates and honor Rightmove's Terms of Service and `robots.txt`. Use this Actor only for lawful, ethical purposes.

Questions or feedback? Open an issue on the **Issues** tab, or use the **API** tab to trigger runs and fetch results programmatically.

# Actor input Schema

## `listUrls` (type: `array`):

Enter Rightmove property search URLs (e.g. https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490).

## `maxProperties` (type: `integer`):

Maximum number of properties to collect.

## `proxy` (type: `object`):

Apify Proxy with Residential IPs is recommended to avoid blocking.

## `delayBetweenRequestsMs` (type: `integer`):

Milliseconds to wait between API page requests. Increase if Rightmove blocks fast scraping.

## Actor input object example

```json
{
  "listUrls": [
    {
      "url": "https://www.rightmove.co.uk/property-for-sale/find.html?searchLocation=London&useLocationIdentifier=true&locationIdentifier=REGION%5E87490&radius=0.0&_includeSSTC=on"
    }
  ],
  "maxProperties": 1000,
  "proxy": {
    "useApifyProxy": true
  },
  "delayBetweenRequestsMs": 250
}
```

# Actor output Schema

## `dataset` (type: `string`):

Raw Rightmove property objects

# 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 = {
    "listUrls": [
        {
            "url": "https://www.rightmove.co.uk/property-for-sale/find.html?searchLocation=London&useLocationIdentifier=true&locationIdentifier=REGION%5E87490&radius=0.0&_includeSSTC=on"
        }
    ],
    "proxy": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/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 = {
    "listUrls": [{ "url": "https://www.rightmove.co.uk/property-for-sale/find.html?searchLocation=London&useLocationIdentifier=true&locationIdentifier=REGION%5E87490&radius=0.0&_includeSSTC=on" }],
    "proxy": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/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 '{
  "listUrls": [
    {
      "url": "https://www.rightmove.co.uk/property-for-sale/find.html?searchLocation=London&useLocationIdentifier=true&locationIdentifier=REGION%5E87490&radius=0.0&_includeSSTC=on"
    }
  ],
  "proxy": {
    "useApifyProxy": true
  }
}' |
apify call ahmed_jasarevic/rightmove-scraper --silent --output-dataset

```

## MCP server setup

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