Rightmove Scraper
Rightmove won't say what three-bed semis actually ask in a UK postcode or how fast stock moves, just a page at a time.
Rightmove won't say what three-bed semis actually ask in a UK postcode or how fast stock moves, just a page at a time. Rows give price, bedrooms, type, tenure, floor area, the added-or-reduced banner and first-listed date. Agent phone numbers and exact coordinates never collected.
$3.00 / 1,000 · 100.0% success over 27 public runs in the last 30 days.
Run it on Apify → Free to try - runs bill per result on your own account.
What you give it
Every field is optional unless marked; sensible defaults do the rest.
| Field | Type | What it does | Default |
|---|---|---|---|
location |
string | Place to search, exactly as you would type it in the Rightmove search box: a town ("Manchester"), area ("Camden, London") or outcode ("EN2"). The first suggestion Rightmove offers for it is used. Leave it out when you only re-check properties through listingIds. | Manchester |
listingIds |
array | Re-check properties you already know instead of searching: one property ID per line (the number at the end of every Rightmove address, and the propertyId of every dataset item), or the property's full address. Each one is read from its own page - price, beds, baths, tenure, agent, photos, the full description and the site's own status (sold or let subject to contract, under offer, on the market) - in the shape a search result has. A property that has left the site is skipped, named in the log and not billed. When given, the search fields of this form are ignored and the run status says which. Up to 50. |
[] |
channel |
string | Search properties for sale (buy) or to rent (rent). | buy |
priceMinGbp |
integer | Only include properties priced at least this many pounds. For rentals this is pounds per month. | - |
priceMaxGbp |
integer | Only include properties priced at most this many pounds. For rentals this is pounds per month. | - |
bedroomsMin |
integer | Only include properties with at least this many bedrooms. | - |
bedroomsMax |
integer | Only include properties with at most this many bedrooms. | - |
radiusMiles |
integer | Widen the search this many miles around the location. 0 = the location only. | - |
sortBy |
string | Order of results: date (newest first, best for monitoring), price_asc, price_desc, or oldest. | date |
postedAfter |
string | Only include listings posted on or after this date. With newest-first sorting the run stops early once older listings are reached. Format: YYYY-MM-DD (for example 2026-09-08) or a full ISO timestamp such as 2026-09-08T14:30:00Z. Slash dates like 08/09/2026 are refused on purpose: they are read as September in Europe and August in the United States, and this actor will not guess which you meant. |
- |
postedBefore |
string | Only include listings posted on or before this date. Format: YYYY-MM-DD (for example 2026-09-08) or a full ISO timestamp such as 2026-09-08T14:30:00Z. Slash dates like 08/09/2026 are refused on purpose: they are read as September in Europe and August in the United States, and this actor will not guess which you meant. |
- |
maxItems |
integer | Stop after this many properties. Free-plan runs are capped at 5 items. The form starts at 25 for a cheap first run - that is the form's prefill, not a cap on your plan; clear it to use the default of 1000. One run cannot return more than about 1,008 items however high you set this: Rightmove serves 42 pages of 24 results for a search. | 1000 |
scrapeDetails |
boolean | Read each property's own page for the agent's full description, of which the search results carry only a summary. This makes one extra request per listing, so a run is slower and costs one more page fetch each. The estate agent's branch and contact block is never read; only the description text reaches the output. Leave off for a fast search-only sweep. | False |
reportFailures |
boolean | When a run fails, send the developer the actor name and build, an error category, the error message (truncated) and a one-way hash of your input - so a bug can be fixed without anyone asking you to reproduce it. Your input itself, your results and your identity are never sent, and successful runs send nothing at all. Switch this off and the actor behaves exactly the same. | True |
What you get back
One JSON object per result, with exactly these fields - no seller identities, no contact data, ever.
A real result row from a recent run:
{
"addedOrReduced": "Added on 20/09/2026",
"agencyName": "RW Invest, Manchester",
"auction": false,
"bathrooms": 2,
"bedrooms": 2,
"channel": "buy",
"currency": "GBP",
"displayAddress": "West One – 6% Rental Yields | Lucrative Buy to Let Opportunity ",
"displaySize": null,
"featured": true,
"firstVisibleDate": "2026-09-20T17:04:56Z",
"imageUrls": [
"https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/a3b7d887d/93359670/a3b7d887d033af18dbd38461464691df_max_476x317.jpeg",
"https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/6b5ea152d/93359670/6b5ea152da401cac760c770e4f79ca6b_max_476x317.jpeg",
"https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/f40fb77a5/93359670/f40fb77a55400d6fee58c5194b44cb58_max_476x317.jpeg",
"https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/0dd421671/93359670/0dd42167194fe1e6045dfa58b8748ad9_max_476x317.jpeg",
"https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/20e6849f4/93359670/20e6849f436d47605b4c00e6efc1d888_max_476x317.jpeg",
"https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/cac24b7cd/93359670/cac24b7cdc0327c1fe3d2c9842b425b4_max_476x317.jpeg",
"https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/39b075421/93359670/39b07542199febd4b397a4ea7641fb3f_max_476x317.jpeg",
"https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/ae92d7857/93359670/ae92d7857a5c491e250d11b8995e9bf3_max_476x317.jpeg"
],
"listingUpdateDate": "2026-09-20T17:10:09Z",
"listingUpdateReason": "new",
"priceFrequency": null,
"priceGbp": 350000,
"priceQualifier": "Offers in Region of",
"propertyId": "93359670",
"propertyType": "Apartment",
"summary": "2-bed apartment near Manchester city centre. 6%+ NET yields with premium on-site gym and working space.\n",
"tenureType": "LEASEHOLD",
"title": "2 bedroom apartment for sale",
"url": "https://www.rightmove.co.uk/properties/93359670"
}
| Field | Type | Meaning |
|---|---|---|
propertyId |
string | Rightmove property ID. |
url |
string | Direct link to the property listing. |
title |
string | The site's full listing headline. |
displayAddress |
string | The address exactly as the listing displays it - the granularity the agent chose to publish. Exact coordinates are never collected. |
priceGbp |
['integer', 'null'] | Asking price in pounds; for rentals see priceFrequency (usually per month). |
currency |
string | Always GBP. |
priceFrequency |
['string', 'null'] | Rental payment frequency (monthly, weekly). Null for sales. |
priceQualifier |
['string', 'null'] | The site's price qualifier, e.g. Guide Price, Offers Over. |
bedrooms |
['integer', 'null'] | Number of bedrooms. |
bathrooms |
['integer', 'null'] | Number of bathrooms, when the listing reports it. |
propertyType |
['string', 'null'] | Property subtype, e.g. End of Terrace, Apartment, Detached. |
channel |
['string', 'null'] | buy or rent. |
tenureType |
['string', 'null'] | FREEHOLD or LEASEHOLD, when reported. |
displaySize |
['string', 'null'] | Floor area as displayed, e.g. "1,033 sq. ft.". |
summary |
string | Listing summary text as the agent wrote it. |
description |
string | The agent's full free-text property description, read from the property's own page. Only present when Fetch descriptions is on - the search carries only summary. The estate agent contact block is never read. |
firstVisibleDate |
['string', 'null'] | When the listing first appeared (ISO timestamp). |
listingUpdateReason |
['string', 'null'] | Last update kind, e.g. price_reduced, new. |
listingUpdateDate |
['string', 'null'] | When the listing was last updated (ISO timestamp). |
addedOrReduced |
['string', 'null'] | The site's added/reduced banner text. |
agencyName |
['string', 'null'] | Estate agency trading name and branch - business identity only. Agent phone numbers and contact routes are never collected. |
featured |
boolean | True for featured/premium paid placements. |
auction |
boolean | True when the property is sold at auction. |
imageUrls |
array | Listing photo URLs (up to 8). |
status |
string | The site's own state of the listing: on the market, sold or let subject to contract, under offer, or archived. Present on properties read through listingIds. |
Health
100.0% success over 27 public runs in the last 30 days. Live record, failures included: status page.
Full documentation, examples and the AI-assistant prompt live on the store page.