Rightmove API: Search properties
Searches Rightmove homes for sale or to rent around a town, area or postcode, with price, bedroom, property type, radius and under-offer filters, sorted by newest or price.
Unofficial. Not affiliated with or endorsed by Rightmove.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Sort optional
sort Order of results, for example newest.
newest
One of
newest,price_low_to_high,price_high_to_low. Defaultnewest.- Location, required
location Town, area, or postcode to search, for example Clapham, London.
Clapham, London
- Max Price optional
max_price Maximum price in GBP, or monthly GBP for rent, for example 750000.
1000000
Whole number 0 or more.
- Min Price optional
min_price Minimum price in GBP, or monthly GBP for rent, for example 500000.
400000
Whole number 0 or more.
- Max Results optional
max_results Maximum number of listings to return, for example 24.
24
Whole number from 1 to 100. Default
24.- Listing Type optional
listing_type Choose homes for sale or rent, for example to_rent.
for_sale
One of
for_sale,to_rent. Defaultfor_sale.- Min Bedrooms optional
min_bedrooms Minimum number of bedrooms, for example 2.
2
Whole number 0 or more.
- Radius (miles) optional
radius_miles Radius in miles around the location; 0 means only this area, for example 0.5.
0
Number. One of
0,0.25,0.5,1,3,5,10. Default0.- Property Type optional
property_type Type of home or land, for example flats.
flats
One of
any,houses,flats,bungalows,land. Defaultany.- Include Under Offer optional
include_under_offer Include properties marked under offer or agreed, for example true.
false
True or false. Default
false.
Input as JSON
{ "sort": "newest", "location": "Clapham, London", "max_price": 1000000, "min_price": 400000, "max_results": 24, "listing_type": "for_sale", "min_bedrooms": 2, "radius_miles": 0, "property_type": "flats", "include_under_offer": false}Output
{ "properties": [ { "price": 600000, "address": "Kings Avenue, Clapham", "bedrooms": 3, "currency": "GBP", "bathrooms": 2, "agent_name": "Jacksons Estate Agents, Clapham", "photo_link": "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/c36f4fe22/93664287/c36f4fe228e4d292cd753f0431eaddb2_max_476x317.jpeg" , "agent_phone": "020 8487 3177", "property_id": "93664287", "listing_link": "https://www.rightmove.co.uk/properties/93664287#/?channel=RES_BUY" , "property_type": "Flat", "price_qualifier": null, "added_or_reduced_date": "2026-09-28" }, { "price": 520000, "address": "Hambalt Road, SW4", "bedrooms": 2, "currency": "GBP", "bathrooms": 1, "agent_name": "Keating Estates, Balham", "photo_link": "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/f3ec1322a/93657402/f3ec1322af2fde37694b7817c81bc359_max_476x317.jpeg" , "agent_phone": "020 8016 2751", "property_id": "93657402", "listing_link": "https://www.rightmove.co.uk/properties/93657402#/?channel=RES_BUY" , "property_type": "Flat", "price_qualifier": null, "added_or_reduced_date": "2026-09-28" }, { "price": 950000, "address": "Trouville Road, Clapham South, SW4", "bedrooms": 3, "currency": "GBP", "bathrooms": 2, "agent_name": "Moveli, London & Country", "photo_link": "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/954d110ab/93623544/954d110abab96bf45ad7fe6613eb461b_max_476x317.jpeg" , "agent_phone": "020 3906 1015", "property_id": "93623544", "listing_link": "https://www.rightmove.co.uk/properties/93623544#/?channel=RES_BUY" , "property_type": "Flat", "price_qualifier": null, "added_or_reduced_date": "2026-09-26" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"rightmove.co.uk/search_properties","input":{"sort":"newest","location":"Clapham, London","max_price":1000000,"min_price":400000,"max_results":24,"listing_type":"for_sale","min_bedrooms":2,"radius_miles":0,"property_type":"flats","include_under_offer":false}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "rightmove.co.uk/search_properties" , "input": { "sort": "newest", "location": "Clapham, London", "max_price": 1000000, "min_price": 400000, "max_results": 24, "listing_type": "for_sale", "min_bedrooms": 2, "radius_miles": 0, "property_type": "flats", "include_under_offer": False }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "rightmove.co.uk/search_properties" , "input": { "sort": "newest", "location": "Clapham, London", "max_price": 1000000, "min_price": 400000, "max_results": 24, "listing_type": "for_sale", "min_bedrooms": 2, "radius_miles": 0, "property_type": "flats", "include_under_offer": false } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run rightmove.co.uk/search_properties# with {"sort":"newest","location":"Clapham, London","max_price":1000000,"min_price":400000,"max_results":24,"listing_type":"for_sale","min_bedrooms":2,"radius_miles":0,"property_type":"flats","include_under_offer":false}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "location" ], "properties": { "sort": { "enum": [ "newest", "price_low_to_high", "price_high_to_low" ], "type": "string", "default": "newest", "description": "Order of results, for example newest." }, "location": { "type": "string", "minLength": 1, "description": "Town, area, or postcode to search, for example Clapham, London." }, "max_price": { "type": "integer", "minimum": 0, "description": "Maximum price in GBP, or monthly GBP for rent, for example 750000." }, "min_price": { "type": "integer", "minimum": 0, "description": "Minimum price in GBP, or monthly GBP for rent, for example 500000." }, "max_results": { "type": "integer", "default": 24, "maximum": 100, "minimum": 1, "description": "Maximum number of listings to return, for example 24." }, "listing_type": { "enum": [ "for_sale", "to_rent" ], "type": "string", "default": "for_sale", "description": "Choose homes for sale or rent, for example to_rent." }, "min_bedrooms": { "type": "integer", "minimum": 0, "description": "Minimum number of bedrooms, for example 2." }, "radius_miles": { "enum": [ 0, 0.25, 0.5, 1, 3, 5, 10 ], "type": "number", "default": 0, "description": "Radius in miles around the location; 0 means only this area, for example 0.5." }, "property_type": { "enum": [ "any", "houses", "flats", "bungalows", "land" ], "type": "string", "default": "any", "description": "Type of home or land, for example flats." }, "include_under_offer": { "type": "boolean", "default": false, "description": "Include properties marked under offer or agreed, for example true." } }}Output schema
{ "type": "object", "required": [ "properties" ], "properties": { "properties": { "type": "array", "items": { "type": "object", "required": [ "address", "price", "currency", "price_qualifier", "bedrooms", "bathrooms", "property_type", "agent_name", "agent_phone", "added_or_reduced_date", "photo_link", "listing_link", "property_id" ], "properties": { "price": { "type": [ "number", "null" ], "description": "Asking price in GBP or monthly rent in GBP; null when no price is quoted." }, "address": { "type": [ "string", "null" ], "description": "Listed address." }, "bedrooms": { "type": [ "integer", "null" ], "description": "Number of bedrooms." }, "currency": { "type": "string", "description": "Currency of the listed price." }, "bathrooms": { "type": [ "integer", "null" ], "description": "Number of bathrooms." }, "agent_name": { "type": [ "string", "null" ], "description": "Estate agent or branch name." }, "photo_link": { "type": [ "string", "null" ], "description": "Link to the main property photo." }, "agent_phone": { "type": [ "string", "null" ], "description": "Agent telephone number." }, "property_id": { "type": "string", "description": "Rightmove property ID.", "x-fous-developer": true }, "listing_link": { "type": "string", "description": "Link to the property listing." }, "property_type": { "type": [ "string", "null" ], "description": "Listed property type." }, "price_qualifier": { "type": [ "string", "null" ], "description": "Displayed price qualifier, such as Guide Price." }, "added_or_reduced_date": { "type": [ "string", "null" ], "format": "date", "description": "Date the listing was added or reduced." } }, "additionalProperties": false }, "description": "Properties in the selected order." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
rightmove.co.uk/search_properties- Returns
- address, price, currency, price qualifier, bedrooms, bathrooms, property type, agent name and phone, added or reduced date, photo, listing link, property ID
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method rightmove.co.uk/search_properties with the inputs above.
Ask your agent
- Find 3+ bedroom houses for sale in Harrogate under £450,000, newest listings first
- Show me flats to rent within 1 mile of BS8 between £1,200 and £1,800 a month, cheapest first
- On Rightmove, list bungalows for sale around Exmouth within 5 miles, including ones already under offer, up to 30 results
- What 2-bed properties are listed for sale in Clapham, London between £500k and £750k? Sort by highest price
- Pull the latest Rightmove land listings for sale within 10 miles of Truro, with agent contact details
See more
All Rightmove methodsFind recent sold prices and sale histories for a UK postcode, street or area on Rightmove. The average is calculated from the returned properties, not every sale in large areas.
rightmove.co.uk/get_sold_pricesSearches Zoopla homes for sale or to rent in a UK town, area or postcode, with price, bedroom, property type and sort options. Prices are in GBP; rents are monthly.
zoopla.co.uk/search_propertiesSearches Realtor.com homes for sale, for rent, or recently sold in a city, neighborhood or ZIP code, with optional price, bedroom, bathroom and home type filters and sort order. Rentals with price ranges use the lowest advertised rent; withheld sold prices are blank.
realtor.com/search_homesSearches Zillow homes for sale in a city and state, neighborhood or ZIP code, with optional price, bedroom, bathroom and property type filters and sort order, from Zillow's public search pages (up to 100 listings).
zillow.com/search_homesSearches Redfin homes for sale in a city, neighborhood or ZIP code, with price, home type, bed and bath filters and a sort order, returning each listing's price, size, status, photo and links.
redfin.com/search_homesSearches Homes.com homes for sale in a US city, neighborhood, or ZIP code, with optional price, bedroom, bathroom and home type filters. Returns listings in site order; days on market is null when not shown.
homes.com/search_homesSearches Zillow rentals in a city, neighborhood, or ZIP code, with optional rent, bedroom, pet, and home-type filters. Listing details that Zillow does not show are null.
zillow.com/search_rentalsSearches Zumper apartments and homes for rent in a city or neighborhood. You can filter by price, bedrooms, pet policy and property type.
zumper.com/search_rentals