# Rightmove API

> Rightmove returns property listings and sold prices through a workflow and API.

Rightmove searches homes for sale or rent by town, area or postcode, with optional price, bedroom, property type, radius and sorting filters. Get sold prices returns recent sale prices and sale histories for a UK postcode, street or area, with optional time period and property type.

- Page: https://fous.com/tools/rightmove
- Handle: `@rightmove`
- Category: [Real estate](https://fous.com/tools/category/real-estate)
- Source website: https://rightmove.co.uk
- Last verified: Sep 29, 2026

## Methods

### Get sold prices

Operation `get_sold_prices`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find recent sold prices and sale histories for a UK postcode, street or area. The average is calculated from the returned properties, not every sale in large areas.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `years` | integer | no | `3` | Include sales within the last number of years, such as 3. |
| `location` | string | yes | `"SW11 6EH"` | UK postcode, street or area, such as SW11 6EH or Clapham. |
| `max_results` | integer | no | `30` | Maximum properties to return, such as 25. |
| `property_type` | string | no | `"flat"` | Property type to include, such as flat. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "location"
  ],
  "properties": {
    "years": {
      "enum": [
        1,
        2,
        3,
        5,
        10,
        20
      ],
      "type": "integer",
      "default": 3,
      "description": "Include sales within the last number of years, such as 3.",
      "examples": [
        3,
        5
      ]
    },
    "location": {
      "type": "string",
      "description": "UK postcode, street or area, such as SW11 6EH or Clapham.",
      "examples": [
        "SW11 6EH",
        "SW11 1AA",
        "Bolingbroke Grove"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum properties to return, such as 25.",
      "x-fous-developer": true,
      "examples": [
        30
      ]
    },
    "property_type": {
      "enum": [
        "any",
        "detached",
        "semi_detached",
        "terraced",
        "flat"
      ],
      "type": "string",
      "default": "any",
      "description": "Property type to include, such as flat.",
      "examples": [
        "flat"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "years": 3,
      "location": "SW11 6EH"
    },
    {
      "years": 3,
      "location": "SW11 1AA"
    },
    {
      "years": 5,
      "location": "Bolingbroke Grove",
      "max_results": 30,
      "property_type": "flat"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `currency` | string | `"GBP"` |  |
| `area_name` | string | `"SW11 6EH"` |  |
| `properties` | array |  |  |
| `properties[].tenure` | string or null | `"leasehold"` |  |
| `properties[].address` | string | `"Flat B, 41, Bolingbroke Grove, London SW11 6EH"` |  |
| `properties[].bedrooms` | integer or null | `4` |  |
| `properties[].date_sold` | string | `"2026-07-24"` |  |
| `properties[].earlier_sales` | array |  |  |
| `properties[].property_link` | string | `"https://www.rightmove.co.uk/house-prices/details/3a1fb84f-4029-454c-bc2c-c1ac8bc087c3"` |  |
| `properties[].property_type` | string or null | `"Flat"` |  |
| `properties[].last_sold_price_gbp` | integer | `700000` |  |
| `average_sold_price_gbp` | integer or null | `851167` | Average of the returned most recent property sale prices in GBP. |

**Example input**

```json
{
  "years": 3,
  "location": "SW11 6EH"
}
```

**Example output**

```json
{
  "currency": "GBP",
  "area_name": "SW11 6EH",
  "properties": [
    {
      "tenure": "leasehold",
      "address": "Flat B, 41, Bolingbroke Grove, London SW11 6EH",
      "bedrooms": 4,
      "date_sold": "2026-07-24",
      "earlier_sales": [
        {
          "date_sold": "2021-04-20",
          "price_gbp": 710000
        },
        {
          "date_sold": "2011-08-15",
          "price_gbp": 449950
        },
        {
          "date_sold": "1997-04-03",
          "price_gbp": 158500
        }
      ],
      "property_link": "https://www.rightmove.co.uk/house-prices/details/3a1fb84f-4029-454c-bc2c-c1ac8bc087c3",
      "property_type": "Flat",
      "last_sold_price_gbp": 700000
    },
    {
      "tenure": "leasehold",
      "address": "Flat A, 41, Bolingbroke Grove, London SW11 6EH",
      "bedrooms": null,
      "date_sold": "2025-08-28",
      "earlier_sales": [
        {
          "date_sold": "2013-08-16",
          "price_gbp": 935000
        },
        {
          "date_sold": "1997-07-18",
          "price_gbp": 267000
        }
      ],
      "property_link": "https://www.rightmove.co.uk/house-prices/details/188e4335-28f8-4b96-b1ad-53e6e41b7ef9",
      "property_type": "Flat",
      "last_sold_price_gbp": 1283500
    },
    {
      "tenure": "leasehold",
      "address": "40, Bolingbroke Grove, London SW11 6EH",
      "bedrooms": 6,
      "date_sold": "2025-06-20",
      "earlier_sales": [
        {
          "date_sold": "2018-08-31",
          "price_gbp": 2275000
        },
        {
          "date_sold": "2007-04-30",
          "price_gbp": 1250000
        },
        {
          "date_sold": "1997-11-21",
          "price_gbp": 3000
        }
      ],
      "property_link": "https://www.rightmove.co.uk/house-prices/details/779e8def-f812-4f89-85a2-bfcb3397ada4",
      "property_type": "Flat",
      "last_sold_price_gbp": 570000
    }
  ],
  "average_sold_price_gbp": 851167
}
```

### Search properties

Operation `search_properties`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Search Rightmove homes for sale or rent by area or postcode, with price, bedroom, property type, radius, offer status, and sort filters. Returns up to 100 property listings with agent details; unquoted prices and unavailable details are null.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"price_low_to_high"` | Order of results, for example newest. |
| `location` | string | yes | `"M1 4BT"` | Town, area, or postcode to search, for example Clapham, London. |
| `max_price` | integer | no | `1800` | Maximum price in GBP, or monthly GBP for rent, for example 750000. |
| `min_price` | integer | no | `400000` | Minimum price in GBP, or monthly GBP for rent, for example 500000. |
| `max_results` | integer | no | `8` | Maximum number of listings to return, for example 24. |
| `listing_type` | string | no | `"to_rent"` | Choose homes for sale or rent, for example to_rent. |
| `min_bedrooms` | integer | no | `2` | Minimum number of bedrooms, for example 2. |
| `radius_miles` | number | no | `1` | Radius in miles around the location; 0 means only this area, for example 0.5. |
| `property_type` | string | no | `"houses"` | Type of home or land, for example flats. |
| `include_under_offer` | boolean | no | `false` | Include properties marked under offer or agreed, for example true. |

**Input schema**

```json
{
  "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.",
      "examples": [
        "price_low_to_high",
        "newest",
        "price_high_to_low"
      ]
    },
    "location": {
      "type": "string",
      "minLength": 1,
      "description": "Town, area, or postcode to search, for example Clapham, London.",
      "examples": [
        "M1 4BT",
        "Clapham, London"
      ]
    },
    "max_price": {
      "type": "integer",
      "minimum": 0,
      "description": "Maximum price in GBP, or monthly GBP for rent, for example 750000.",
      "examples": [
        1800,
        1000000
      ]
    },
    "min_price": {
      "type": "integer",
      "minimum": 0,
      "description": "Minimum price in GBP, or monthly GBP for rent, for example 500000.",
      "examples": [
        400000
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 24,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of listings to return, for example 24.",
      "x-fous-developer": true,
      "examples": [
        8,
        24,
        5
      ]
    },
    "listing_type": {
      "enum": [
        "for_sale",
        "to_rent"
      ],
      "type": "string",
      "default": "for_sale",
      "description": "Choose homes for sale or rent, for example to_rent.",
      "examples": [
        "to_rent",
        "for_sale"
      ]
    },
    "min_bedrooms": {
      "type": "integer",
      "minimum": 0,
      "description": "Minimum number of bedrooms, for example 2.",
      "examples": [
        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.",
      "examples": [
        1,
        0
      ]
    },
    "property_type": {
      "enum": [
        "any",
        "houses",
        "flats",
        "bungalows",
        "land"
      ],
      "type": "string",
      "default": "any",
      "description": "Type of home or land, for example flats.",
      "examples": [
        "houses",
        "flats",
        "bungalows"
      ]
    },
    "include_under_offer": {
      "type": "boolean",
      "default": false,
      "description": "Include properties marked under offer or agreed, for example true.",
      "examples": [
        false,
        true
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "price_low_to_high",
      "location": "M1 4BT",
      "max_price": 1800,
      "max_results": 8,
      "listing_type": "to_rent",
      "radius_miles": 1,
      "property_type": "houses"
    },
    {
      "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
    },
    {
      "location": "Clapham, London",
      "max_results": 5,
      "radius_miles": 0,
      "property_type": "bungalows"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `properties` | array |  | Properties in the selected order. |
| `properties[].price` | number or null | `110` | Asking price in GBP or monthly rent in GBP; null when no price is quoted. |
| `properties[].address` | string or null | `"Burton Place, Manchester, Greater Manchester, M15"` | Listed address. |
| `properties[].bedrooms` | integer or null | `0` | Number of bedrooms. |
| `properties[].currency` | string | `"GBP"` | Currency of the listed price. |
| `properties[].bathrooms` | integer or null | `0` | Number of bathrooms. |
| `properties[].agent_name` | string or null | `"Thornley Groves, Manchester Southern Gateway"` | Estate agent or branch name. |
| `properties[].photo_link` | string or null | `"https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/f8352938e/172770647/f8352938e35286d9d76f04672344976` | Link to the main property photo. |
| `properties[].agent_phone` | string or null | `"0161 241 5875"` | Agent telephone number. |
| `properties[].property_id` | string | `"172770647"` | Rightmove property ID. |
| `properties[].listing_link` | string | `"https://www.rightmove.co.uk/properties/172770647#/?channel=RES_LET"` | Link to the property listing. |
| `properties[].property_type` | string or null | `"Not Specified"` | Listed property type. |
| `properties[].price_qualifier` | string or null | `"Offers in Excess of"` | Displayed price qualifier, such as Guide Price. |
| `properties[].added_or_reduced_date` | string or null | `"2026-03-02"` | Date the listing was added or reduced. |

**Example input**

```json
{
  "sort": "price_low_to_high",
  "location": "M1 4BT",
  "max_price": 1800,
  "max_results": 8,
  "listing_type": "to_rent",
  "radius_miles": 1,
  "property_type": "houses"
}
```

**Example output**

```json
{
  "properties": [
    {
      "price": 110,
      "address": "Burton Place, Manchester, Greater Manchester, M15",
      "bedrooms": 0,
      "currency": "GBP",
      "bathrooms": null,
      "agent_name": "Thornley Groves, Manchester Southern Gateway",
      "photo_link": "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/f8352938e/172770647/f8352938e35286d9d76f046723449761_max_476x317.jpeg",
      "agent_phone": "0161 241 5875",
      "property_id": "172770647",
      "listing_link": "https://www.rightmove.co.uk/properties/172770647#/?channel=RES_LET",
      "property_type": "Not Specified",
      "price_qualifier": null,
      "added_or_reduced_date": "2026-03-02"
    },
    {
      "price": 150,
      "address": "CP30295-TB1022730, 15 Silvercroft St, Manchester",
      "bedrooms": 0,
      "currency": "GBP",
      "bathrooms": 0,
      "agent_name": "AIHOMES LIMITED, Manchester",
      "photo_link": "https://media.rightmove.co.uk:443/dir/crop/10:9-16:9/property-photo/744d4022a/93421485/744d4022ace0fb20a72f417264f1bdef_max_476x317.jpeg",
      "agent_phone": "0161 524 7176",
      "property_id": "93421485",
      "listing_link": "https://www.rightmove.co.uk/properties/93421485#/?channel=RES_LET",
      "property_type": "Not Specified",
      "price_qualifier": null,
      "added_or_reduced_date": "2026-09-22"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@rightmove",
  "visibility": "public",
  "operation": "get_sold_prices",
  "version": 1,
  "input": {
    "years": 3,
    "location": "SW11 6EH"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@rightmove\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_sold_prices\",\n  \"version\": 1,\n  \"input\": {\n    \"years\": 3,\n    \"location\": \"SW11 6EH\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@rightmove",
  "visibility": "public",
  "operation": "get_sold_prices",
  "version": 1,
  "input": {
    "years": 3,
    "location": "SW11 6EH"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/rightmove`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_sold_prices`: Get sold prices. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_properties`: Search properties. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-rightmove https://api.fous.com/mcp/tools/rightmove --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare homes for sale within a target budget.
- Find rental properties by area and bedroom count.
- Review recent sale prices for a postcode or street.
- Compare sale histories and average prices across returned properties.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Rightmove tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Rightmove account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from rightmove.co.uk when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What homes are for sale or rent in an area?

Search properties returns listings for a town, area or postcode, with optional filters for price, bedrooms, property type and more.

### What were recent sale prices in a postcode?

Get sold prices returns recent sale prices and sale histories for a UK postcode, street or area.

## Related

- [Zoopla API](https://fous.com/tools/zoopla.md): UK homes for sale and to rent.
- [Realtor.com API](https://fous.com/tools/realtor-com.md): Realtor.com returns home listings for sale, rent, or recently sold, property details and estimates, and local agent profiles; some fields or sold prices may be missing.
- [Homes.com API](https://fous.com/tools/homes-com.md): Search homes for sale in the United States.
- [Domain.com.au API](https://fous.com/tools/domain-com-au.md): Search Australian homes for sale, rent and recently sold on Domain.
- [Redfin API](https://fous.com/tools/redfin.md): Redfin provides publicly listed homes, details, estimates, and latest area market figures with up to 12 months of sale prices; some data may be unavailable.
- [Zillow API](https://fous.com/tools/zillow.md): Zillow provides homes for sale, rental listings, home details, estimates, and housing market figures; rental details, history, schools, estimates, and market figures may be missing or reflect different reporting dates.
- [Idealista API](https://fous.com/tools/idealista.md): Idealista provides homes for sale and rent in Spain, Italy and Portugal, plus current property listings and latest monthly asking prices per square metre for published areas.
- [ImmoScout24 API](https://fous.com/tools/immoscout24.md): Search apartments and houses across Germany.
- [All Real estate tools](https://fous.com/tools/category/real-estate)
