Rightmove Scraper avatar

Rightmove Scraper

Pricing

from $1.59 / 1,000 results

Go to Apify Store
Rightmove Scraper

Rightmove Scraper

Extract Rightmove UK property listings as clean JSON with zero personal data - prices, bedrooms, tenure, price reductions, agency brand only. For sale & to rent, newest-first monitoring, pay per result. Built for market research, price tracking and AI pipelines.

Pricing

from $1.59 / 1,000 results

Rating

0.0

(0)

Developer

Lowland Data

Lowland Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Rightmove Scraper — privacy-safe UK property data

Extract property listings from Rightmove — the UK's largest property portal — as clean, structured JSON. Prices, bedrooms, property types, tenure, floor area, listing dates, price reductions and photos, ready for market research, price monitoring and data pipelines.

No personal data, ever. This scraper is built privacy-first: agent phone numbers, contact routes and exact map coordinates never appear in the output — not as an option you have to remember to switch off, but by design. Addresses come exactly as the listing displays them; the agency appears as a business name only.

Quick start (30 seconds)

  1. Put a place name into location — a town (Manchester), area (Camden, London) or outcode (EN2), just like the Rightmove search box.
  2. Click Start. That's the whole minimum setup.
  3. When the run finishes, open the dataset's Overview tab for a clean table, or Export it as CSV/Excel/JSON.

Optional knobs: for-sale or to-rent channel, a price band, a bedrooms band, a search radius and newest-first sorting — and any input works on a daily Schedule.

What you can build with it

  • Track a local market. Run location: "Leeds" with sortBy: "date" daily — every new listing arrives with price, type, tenure and the added-or-reduced banner already parsed.
  • Catch price reductions. listingUpdateReason: "price_reduced" plus the update date turn the dataset into a reductions feed — filter and alert on it.
  • Compare rent levels by area. Run the rent channel over several locations and compare priceGbp per month against bedrooms and property type.
  • Feed an AI agent clean data. Every field is structured, predictable and free of personal data, so an assistant or pipeline can consume it directly — no scrubbing, no compliance review before you store it.

What you get

Each property is one dataset item:

{
"propertyId": "169700001",
"url": "https://www.rightmove.co.uk/properties/169700001",
"title": "3 bedroom end of terrace house for sale",
"displayAddress": "Chase Side Avenue, Enfield, EN2",
"priceGbp": 680000,
"currency": "GBP",
"priceFrequency": null,
"priceQualifier": "Guide Price",
"bedrooms": 3,
"bathrooms": 1,
"propertyType": "End of Terrace",
"channel": "buy",
"tenureType": "FREEHOLD",
"displaySize": "1,033 sq. ft.",
"summary": "This well proportioned 3 bedroom house...",
"firstVisibleDate": "2025-11-25T16:25:20Z",
"listingUpdateReason": "price_reduced",
"listingUpdateDate": "2026-08-01T09:06:33Z",
"addedOrReduced": "Reduced on 01/08/2026",
"agencyName": "Ian Gibbs, Enfield",
"featured": false,
"auction": false,
"imageUrls": ["https://media.rightmove.co.uk/property-photo/example.jpeg"]
}

Field notes, so you know exactly what you are buying:

  • priceGbp is in pounds. For rentals, priceFrequency says whether it is per month or per week.
  • displayAddress is the address exactly as the agent published it. Rightmove's data contains exact coordinates — they are deliberately never collected.
  • agencyName is the estate agency's trading name and branch: business identity, no phone numbers, no contact links.
  • listingUpdateReason and addedOrReduced carry the site's own freshness signals — ideal for reduction alerts.
  • featured marks paid placements.

How much does it cost to scrape Rightmove?

$1.99 per 1,000 properties delivered, pay-as-you-go — no subscription, no charge for empty or failed runs. In plain pounds and pence:

  • 100 properties ≈ $0.20 — a daily local-market watch.
  • 1,000 properties ≈ $1.99 — a full city snapshot.

The price is all-inclusive — your runs' platform usage is covered by it, with no separate compute or proxy charges. Runs are fast — a scoped few-hundred-item run typically finishes in under ten seconds. Datacenter proxies are sufficient — no residential proxy surcharge needed.

Free-plan runs are limited to a sample of 25 items, enough to evaluate the output format against your real query.

Not technical? Let your AI assistant set it up

Copy this into ChatGPT, Claude or any AI assistant, fill in the one line, and follow the conversation:

Help me set up the "Rightmove Scraper" actor on Apify
(https://apify.com/lowlanddata/rightmove-scraper). Guide me one step at a time.
What I want to watch: [E.G. "2-3 bedroom houses under 300k in Sheffield"]
Guide me to:
1. Propose my input values: location (as I'd type it on rightmove.co.uk), channel
buy or rent, an optional priceMinGbp/priceMaxGbp band, bedroomsMin/bedroomsMax,
sortBy "date" for newest-first monitoring, and maxItems.
2. Create a free Apify account (apify.com), open the actor page, paste the values
into the Input form, and start a run.
3. Set up a daily Schedule in the Apify Console with the same input, plus an email
or Slack integration so new results reach me automatically.
4. Show me how to export results as CSV/Excel, or read them from the API if I code.
5. If the results are what I wanted, remind me at the end to leave a quick rating on the actor page, and to report anything broken or missing on its Issues tab.

Input

FieldDescription
locationPlace as you would type it on Rightmove. Required. First suggestion wins.
channelbuy (default) or rent.
priceMinGbpOnly properties priced at least this many pounds (per month for rentals).
priceMaxGbpOnly properties priced at most this many pounds (per month for rentals).
bedroomsMinAt least this many bedrooms.
bedroomsMaxAt most this many bedrooms.
radiusMilesWiden the search this many miles around the location.
sortBydate (newest first, default), price_asc, price_desc, or oldest.
postedAfterOnly listings posted on or after this date (YYYY-MM-DD). Stops early with newest-first sorting.
postedBeforeOnly listings posted on or before this date (YYYY-MM-DD).
maxItemsStop after this many properties (default 1000).
proxyConfigurationProxy settings; keep Apify proxy enabled.

A run minimally needs a location; invalid combinations (like an inverted price band) fail immediately with the reason in the run's status message.

Use it from your code

Run the actor and get items straight back with one HTTP call (fine for scoped runs up to ~5 minutes):

curl "https://api.apify.com/v2/acts/lowlanddata~rightmove-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-X POST -H "Content-Type: application/json" \
-d '{"location": "Manchester", "maxItems": 100}'

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('lowlanddata/rightmove-scraper').call({
location: 'Manchester',
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lowlanddata/rightmove-scraper").call(
run_input={"location": "Manchester", "maxItems": 100})
items = client.dataset(run["defaultDatasetId"]).list_items().items

Schedules, webhooks and the Make/Zapier/n8n integrations all work out of the box — this is a standard Apify actor.

Use it with AI agents (MCP)

Claude, Cursor and other MCP-capable agents can run this scraper as a tool through Apify's hosted MCP server: the agent fills in the search itself, starts the run and reads the results — no glue code.

Claude Code:

$claude mcp add apify --transport http "https://mcp.apify.com?actors=lowlanddata/rightmove-scraper"

Cursor or Claude Desktop (add a custom connector / MCP server with this URL):

https://mcp.apify.com?actors=lowlanddata/rightmove-scraper

Sign in with your Apify account when prompted — runs are billed to it. Setup details per client: Apify MCP docs.

Prompts that work once connected:

  • "Get the 100 newest listings for sale in Manchester and summarize price per bedroom."
  • "Search Rightmove rentals in Bristol under 1500 pounds and flag anything added today."
  • "Watch Rightmove for price reductions in Leeds and list the ten biggest ones."

Public listing data — prices, property details, listing dates — is public commercial information, and this scraper is built so that the hard part of the question never arises: no personal data enters your dataset in the first place. UK GDPR sets strict rules on personal data; an output that carries no phone numbers, no contact routes and no coordinates beyond the address the agent chose to publish is the point of this actor, not an afterthought.

Structurally, the extractor maps a fixed whitelist of fields out of the page's data. Agent telephone numbers, contact URLs, map assets and exact coordinates are never read into the output. Requests are paced, load on the site is kept negligible, and no anti-bot protection is bypassed.

One honest limit: listing summaries are the agent's own words, delivered as-is. If an agent chooses to type contact details into the summary text, that text is not rewritten — the guarantee covers the data fields, not the content agents publish about themselves.

Is there a Rightmove API alternative?

Rightmove publishes no public API for listings. This actor is the practical alternative: the same listings as structured JSON through one HTTP call (run-sync-get-dataset-items), on a schedule, or as an MCP tool for AI agents — with the privacy question already answered in the data itself.

Does Rightmove block scrapers?

Rightmove serves its listings openly to ordinary requests — and this actor stays inside that welcome: paced requests, standard datacenter proxies, load kept negligible. No CAPTCHA fights, no bot-wall cat-and-mouse — which is also why runs are fast and reliable enough for daily schedules.

How do I monitor Rightmove prices?

Set sortBy: "date" with your location and filters, cap maxItems to a page or two, and add a daily (or hourly) Schedule in the Apify Console with an email/Slack integration on the runs — every new listing lands in your inbox with the price already parsed. For reductions, filter the dataset on listingUpdateReason: "price_reduced". The AI-assistant prompt above walks a non-technical user through exactly this setup. Even tighter: set postedAfter to yesterday's date — the dataset then contains only the new listings, nothing to dedupe on your side.

FAQ

Can I get agent phone numbers or contact details? No — by design. That is the product: data you can store, share and process without a privacy review.

Can I search by postcode? Yes — outcodes like EN2 or M20 work directly in location.

How deep does one search go? Rightmove serves at most ~1,000 results (42 pages) per search. Narrow by price band or bedrooms to see everything in busy markets.

Can I get only the newest listings? Yes — set postedAfter to a date (yesterday, say) and the dataset contains only listings posted since then. With newest-first sorting the run stops paging as soon as it provably reaches older listings, so a daily watch stays fast and cheap.

How fresh is the data? Live at run time — every run queries Rightmove directly. For continuous freshness, schedule the actor.

Can I export to Excel or CSV? Yes — every dataset exports as CSV, Excel, JSON or XML from the Apify Console or API.

Does it work with Make, Zapier or n8n? Yes — it is a standard Apify actor; all platform integrations, webhooks and schedules apply.

How do I find reduced properties on Rightmove? Filter the dataset on listingUpdateReason: "price_reduced". Each reduced listing also carries listingUpdateDate and Rightmove's own "Reduced on ..." banner in addedOrReduced, so building a reductions feed is one filter, not a project.

Does Rightmove have a public API? No — Rightmove publishes no listings API. This actor is the practical substitute: the same listings as structured JSON through one HTTP call, on a schedule, or as an MCP tool.

Can I scrape Rightmove rentals? Yes — set channel: "rent". The rent arrives in priceGbp, and priceFrequency tells you whether that figure is per month or per week.

Does it tell me if a property is freehold or leasehold? Yes — tenureType carries the tenure exactly as Rightmove publishes it, e.g. FREEHOLD.

Can I see the floor area? The displaySize field carries the floor area as the listing displays it, e.g. 1,033 sq. ft. — useful for rough price-per-area comparisons.

Does it include sold house prices? No — this actor extracts live for-sale and to-rent listings only. The closest signal is the reduction data: listingUpdateReason and addedOrReduced show where asking prices are moving.

Can I widen the search beyond one town? Yes — radiusMiles extends the search up to 40 miles around the location; leaving it at 0 keeps the search to the place itself.

How do I know when a property was listed? firstVisibleDate is the timestamp Rightmove first showed the listing; listingUpdateDate marks its latest change. Both are ISO dates you can sort and filter on.

Are listing photos included? Yes — imageUrls lists the property's photo URLs. Map assets and exact coordinates, by contrast, are deliberately never collected.

Why did my run stop at 25 results? That is the free-plan sample cap, meant for checking the output format against your real query. Any paid Apify plan removes it.

Do I need residential proxies for Rightmove? No — the default datacenter proxies are enough, because the actor stays within what Rightmove serves to ordinary requests. That keeps runs cheap and quick.

Does it show auction properties? Yes — the auction flag marks auction listings, and featured marks paid placements, so both are easy to include or exclude.

Can I get a property's exact map location? No — coordinates are excluded by design. You get displayAddress, the address exactly as the agent published it, and nothing more precise.

Is the output GDPR-safe to store? Yes, and structurally so: the extractor maps a fixed whitelist of fields, so phone numbers, contact routes and coordinates never enter the dataset. One honest limit — the summary is the agent's own text, delivered as-is.

The same clean-output guarantee across Europe's biggest marketplaces:

Troubleshooting

The actor fails fast with the reason in the run's status message:

  • "Rightmove does not know the location ..." — type the place as the Rightmove search box suggests it, e.g. Camden, London instead of an abbreviation.
  • "priceMinGbp must not be higher than priceMaxGbp." — swap the two values.
  • "Rightmove blocked the run before any results could be fetched. This is usually temporary - retry in a few minutes." — a temporary block on the first request; a retry usually lands on a clean proxy session.
  • Fewer items than requested on a free plan — the 25-item free sample cap; run on a paid Apify plan for full results.

Support

Found an issue or missing a field you need? Open an issue on the actor's Issues tab — reports get fixed, this actor is actively maintained.

Working well for you? A rating on this page takes ten seconds and helps other buyers find a privacy-clean option among the lookalikes — it is also the clearest signal of what we should build next.