# 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/workflows/rightmove
- Handle: `@rightmove`
- Category: [Real estate](https://fous.com/workflows/category/real-estate)
- Source website: https://rightmove.co.uk
- Last verified: Sep 29, 2026
- Fous is not affiliated with Rightmove.

## Methods

### Get sold prices

Operation `get_sold_prices`, version 1. 1 credit per call.

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 call.

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 |  | 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

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_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.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

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=120) 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.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_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);
```

Or describe the data in plain language: send `{"api":"@rightmove","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## 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

### Is Fous affiliated with Rightmove?

No. Fous is not affiliated with Rightmove. This workflow reads the public rightmove.co.uk website and returns its data.

### How much does it cost?

Each run costs 1 credit. 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; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check 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/workflows/zoopla.md): UK homes for sale and to rent.
- [Realtor.com API](https://fous.com/workflows/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/workflows/homes-com.md): Search homes for sale in the United States.
- [Domain.com.au API](https://fous.com/workflows/domain-com-au.md): Search Australian homes for sale, rent and recently sold on Domain.
- [Redfin API](https://fous.com/workflows/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/workflows/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/workflows/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/workflows/immoscout24.md): Search apartments and houses across Germany.
- [All Real estate workflows](https://fous.com/workflows/category/real-estate)
