
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape UK property listings from Rightmove: prices, beds, baths, addresses, descriptions, key features, photos, floorplans, tenure, agents and coordinates. For sale, to rent, new homes and commercial. No login needed.
Scrape UK property listings from Rightmove: prices, bedrooms, bathrooms, addresses, postcodes, descriptions, key features, photos, floorplans, EPCs, tenure, council tax, nearby stations and the listing agent. Paste a Rightmove search URL or type a location like "Manchester" or "NW3". No login and no browser needed: 10 fully detailed listings usually come back in under 10 seconds.
https://www.rightmove.co.uk/properties/123456789 work too.| Field | What it does |
|---|---|
startUrls | Rightmove search URLs (for sale, to rent, new homes, commercial) or property URLs. Search URLs keep their own filters. |
searchLocation | A town, city, area, station, outcode or postcode, e.g. London, Canary Wharf, NW3, SW6 1SW. |
maxItems | Maximum listings to save across all inputs (default 20). |
searchType | sale, rent, newHomes, commercialSale or commercialRent (used with Location). |
minPrice / maxPrice | Price range in £ (monthly rent for rentals). |
minBedrooms / maxBedrooms | Bedroom range (0 = studio). |
radius | Miles around the location. |
propertyTypes, mustHave, dontShow | Rightmove's property type, must-have and don't-show filters. |
maxDaysSinceAdded | Only listings added in the last 1, 3, 7 or 14 days. |
includeSSTC, includeLetAgreed, furnishTypes, letType | Sale and rental extras. |
sortBy | Newest, oldest, highest price or lowest price. |
includeDetails | Full listing details (on by default). Turn off for search-card data only. |
includePageDetails | Adds price per sq ft, rooms, lease years left, living costs and the raw page data. |
splitByPrice | Splits searches with more than ~1,000 results into price bands (on by default). |
Example:
{
"searchLocation": "Manchester",
"searchType": "rent",
"minBedrooms": 2,
"maxPrice": 1800,
"maxDaysSinceAdded": "7",
"maxItems": 200
}
One row per listing. Main fields:
| Field | Example |
|---|---|
id, propertyUrl | "100000001", listing link |
title, propertyType | "2 bedroom flat", "Flat" |
transactionType, channel | BUY or RENT |
priceAmount, price.primary, priceFrequency | 350000, "£350,000", "not specified" / "monthly" |
bedrooms, bathrooms, size, sizeSqFt | 2, 1, {"primary": "689 sq ft"}, 689 |
address, postcode, latitude, longitude | street-level address, full postcode, coordinates |
summary, description, keyFeatures | text and bullet list |
tenureType, salesInfo, lettingsInfo, councilTaxBand | tenure, ground rent, service charge, lease, deposit, furnishing |
addedOn, listingUpdateReason, firstVisibleDate | when it was listed or reduced |
agentName, agentPhone, agentAddress, branch | listing agent |
images, photos, floorplans, epcs, virtualTours, brochures | media links |
stations, features, status | nearest stations, utilities, sold STC / let agreed |
Example (sample data, trimmed):
{
"id": "100000001",
"propertyUrl": "https://www.rightmove.co.uk/properties/100000001",
"title": "2 bedroom flat",
"transactionType": "BUY",
"channel": "BUY",
"propertyType": "Flat",
"bedrooms": 2,
"bathrooms": 1,
"priceAmount": 350000,
"priceCurrency": "GBP",
"priceFrequency": "not specified",
"price": {"primary": "£350,000", "secondary": null, "qualifier": "Guide Price"},
"address": "Example Street, Islington, London, N1",
"postcode": "N1 0AA",
"latitude": 51.5362,
"longitude": -0.1031,
"keyFeatures": ["Two double bedrooms", "Private balcony", "Share of freehold"],
"size": {"primary": "689 sq ft", "secondary": "64 sq m"},
"sizeSqFt": 689,
"tenureType": "SHARE_OF_FREEHOLD",
"salesInfo": {"tenureType": "SHARE_OF_FREEHOLD", "groundRent": "Ask agent", "annualServiceCharge": "£1,200", "lengthOfLease": "125 years left"},
"councilTaxBand": "C",
"status": {"available": true, "label": null},
"addedOn": "2026-10-12",
"listingUpdateReason": "Added on 12/10/2026",
"agentName": "Example Estates, Islington",
"agentPhone": "020 0000 0000",
"mainImage": "https://media.rightmove.co.uk/property-photo/.../example.jpeg",
"stations": [{"station": "Angel Station", "distance": 0.3, "type": "2"}],
"scrapedAt": "2026-10-14T21:00:00Z"
}
You pay $1.00 per 1,000 listings ($0.001 per listing), full details included, plus the small platform usage of the run (compute and proxy traffic, about $0.02 per 1,000 listings on the datacenter proxy in our tests). You are charged only for listings that are saved, and the run stops cleanly when it reaches your maximum total charge.
Worked example: 1,000 detailed listings cost $1.00 in listing fees plus about $0.02 in platform usage, so roughly $1.02 in total.
Is it legal to scrape Rightmove? The scraper only reads public listing pages that anyone can open without an account. You are responsible for how you use the data, including data protection law (UK GDPR) and Rightmove's terms. Do not use it to contact people in ways the law does not allow.
Do I need a Rightmove account or a proxy? No account. The default datacenter proxy works; if Rightmove starts limiting requests, the scraper switches to the residential proxy by itself.
How many results can I get? Rightmove shows about 1,000 listings per search. With Split big searches by price on (the default), larger searches are split into price bands, so a whole city can be collected. Many listings at exactly the same price can still hit the cap inside one band.
Why is a field empty? Agents fill listings differently. Size, tenure, council tax or floorplans are often missing on Rightmove itself, and Rightmove shows "Ask agent" for many details. The scraper never invents values.
Can I schedule it or use the API? Yes. Save a task, schedule it daily or hourly, and fetch results through the API, webhooks or integrations.
I'm coming from another Rightmove scraper. Are the fields the same?
Most field names (propertyUrl, bedrooms, bathrooms, address, postcode, keyFeatures, fullDescription, photos, floorplans, epcs, stations, salesInfo, lettingsInfo, branch, pageDetails) match the common layout, plus flat columns such as priceAmount, sizeSqFt and agentName for spreadsheets.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalRightmove URLs
Rightmove search URLs (for sale, to rent, new homes, commercial; copy them from your browser after setting filters) or property URLs such as https://www.rightmove.co.uk/properties/123456789. Search URLs are used exactly as they are; the filters below apply only to the location search.
searchLocationstringOptionalLocation
A UK town, city, area, station, outcode or postcode, for example London, Manchester, Canary Wharf, NW3 or SW6 1SW. Rightmove's own location lookup picks the best match. You can also paste a location identifier such as REGION^87490.
maxItemsintegerOptionaldefault 20Maximum results
Maximum number of listings to save across all inputs. Rightmove shows about 1,000 listings per search; with price splitting on, bigger searches are split into price bands automatically.
Used with the Location field. Search URLs keep their own filters.
searchTypeenumOptionaldefault "sale"Search type
What to search for at the location.
minPriceintegerOptionalMinimum price (£)
Lowest price. Monthly rent (pcm) for rentals.
maxPriceintegerOptionalMaximum price (£)
Highest price. Monthly rent (pcm) for rentals.
minBedroomsintegerOptionalMinimum bedrooms
0 means studio. Rightmove supports up to 10.
maxBedroomsintegerOptionalMaximum bedrooms
Rightmove supports up to 10.
radiusenumOptionalSearch radius (miles)
Include listings within this distance of the location.
propertyTypesarrayOptionalProperty types
Leave empty for all residential types.
maxDaysSinceAddedenumOptionalAdded to site
Only listings added in the last N days.
mustHavearrayOptionalMust have
Only listings with all of these.
dontShowarrayOptionalDon't show
Hide these kinds of listing.
includeSSTCbooleanOptionaldefault falseInclude sold STC / under offer
For sale searches: also return listings that are sold subject to contract or under offer.
includeLetAgreedbooleanOptionaldefault falseInclude let agreed
For rent searches: also return listings that are already let agreed.
furnishTypesarrayOptionalFurnishing
For rent searches.
letTypeenumOptionalLet type
For rent searches.
sortByenumOptionaldefault "newest"Sort by
Order of the results within each search.
includeDetailsbooleanOptionaldefault trueInclude full details
Load each listing's details: full description, all photos, floorplans, EPC, nearest stations, agent address, tenure, ground rent, service charge, council tax, deposit and more. Turn off for a faster, search-card-only scrape.
includePageDetailsbooleanOptionaldefault falseInclude property page data
Also read each property page for price per sq ft, room list, lease years left, living costs and the full page data (pageDetails). Slower and uses more traffic.
splitByPricebooleanOptionaldefault trueSplit big searches by price
Rightmove shows about 1,000 listings per search. When a search has more and you asked for more, split it into price bands to reach them all.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxy used to reach Rightmove. Datacenter works well; the scraper switches to residential by itself if Rightmove starts limiting requests.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| mainImage | any | Photo |
| title | any | Property |
| price | any | |
| address | any | Address |
| postcode | any | Postcode |
| bedrooms | any | Beds |
| bathrooms | any | Baths |
| propertyType | any | Type |
| transactionType | any | Buy / rent |
| sizeSqFt | any | Sq ft |
| tenureType | any | Tenure |
| addedOn | any | Added |
| listingUpdateReason | any | Latest update |
| agentName | any | Agent |
| agentPhone | any | Agent phone |
| propertyUrl | any | Listing |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One property listing saved (full details included). | $0.001 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/rightmove-scraper').call({
"startUrls": [
{
"url": "https://www.rightmove.co.uk/property-for-sale/find.html?locationIdentifier=REGION%5E87490&maxPrice=500000&sortType=6"
}
],
"searchLocation": "Manchester",
"maxItems": 20,
"searchType": "sale",
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/rightmove-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/rightmove-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Newest rental listings with full details.
Homes for sale, cheapest first.
Rentals plus extra data from each property page.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.