# Rightmove Sold Prices

Search historical sold prices across the UK by postcode or region, with optional property type, tenure and time-window filters. Sold data pages far deeper than active listings, so it is the way to cover a large area. A postcode search costs 3 API requests the first time for a given postcode, because the postcode has to resolve to its outcode and then to the numeric id sold data is keyed on; both resolutions are cached, so later searches for the same postcode cost 1. Send location_id with its location_type to always cost 1.

- **Documentation:** [https://scrappa.co/docs/rightmove-api/rightmove_sold_properties](https://scrappa.co/docs/rightmove-api/rightmove_sold_properties)
- **API group:** Rightmove API
- **Endpoint:** `GET https://scrappa.co/api/rightmove/sold-properties`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `postcode` | string | No | Full postcode such as SW1A1AA. Resolved to its outcode, then to the numeric area id sold prices are keyed on. Costs 3 API requests for a postcode not seen before; later searches for the same postcode cost 1, because both resolution hops are cached. |
| `location_id` | integer | No | Numeric location id when you already have one, e.g. 87490. Sold data is keyed on this numeric id, never on an outcode string. Always costs 1 API request, and it needs a matching location_type. |
| `location_type` | string | No | REGION, OUTCODE, POSTCODE, BRANCH or STATION. Must match the id you pass; resolve ids with /api/rightmove/locations/typeahead. |
| `property_type` | string | No | DETACHED, FLAT, TERRACED or SEMI_DETACHED. |
| `tenure` | string | No | FREEHOLD or LEASEHOLD. |
| `sold_in` | integer | No | Rolling window in months: 3, 6, 12, 24 or 120. |
| `page` | integer | No | Page number. Sold data pages very deep. |
| `radius` | integer | No | Search radius in miles, 0 to 50. Applied upstream. |
| `page_size` | integer | No | Records per page, up to 100. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/rightmove/sold-properties?postcode=SW1A1AA"
```

## Example response

```json
{
    "data": {
        "properties": [],
        "count": 0
    }
}
```

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
