# Rightmove Property Search

Search UK property listings by location name or location identifier. Returns sale, rental and commercial listings with price, bedrooms, tenure, photos, floor area and agent contact details. One search sweep reaches 1025 records across 41 pages; narrow the location to go deeper. A search on a location identifier you already resolved costs 1 API request. A search by place name costs 2 the first time for that name, because the name has to be resolved into an identifier first, and 1 once that resolution is cached. Set enrich=1 to merge the mobile listing family for rent cadence, listing status, thumbnail counts and the inline branch contact — that costs 2 API requests, or 3 on the first search for a place name whose location is not cached yet.

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

## 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 |
| --- | --- | --- | --- |
| `location` | string | No | Place name to search, e.g. "London". Resolved to a location identifier for you. The first search for a given name resolves it and costs 2 API requests; the resolution is cached, so later searches cost 1. Pass location_identifier instead to always cost 1. |
| `location_identifier` | string | No | A resolved identifier such as REGION^87490. Always costs 1 API request. |
| `channel` | string | Yes | BUY, RENT, COMMERCIAL_BUY or COMMERCIAL_RENT. |
| `radius` | integer | No | Search radius in miles. |
| `location_name` | string | No | Optional display name sent alongside the identifier so the listing cards show a place. Ignored when location_identifier is omitted. |
| `min_price` | integer | No | Minimum price filter, applied upstream. |
| `max_price` | integer | No | Maximum price filter, applied upstream. |
| `min_bedrooms` | integer | No | Minimum number of bedrooms. |
| `max_bedrooms` | integer | No | Maximum number of bedrooms. |
| `property_type` | string | No | Property type filter, applied upstream, for example FLAT, HOUSE or BUNGALOW. |
| `page` | integer | No | Page number, 1 to 41. |
| `must_have` | string | No | Required feature filter, applied upstream. For example garden, parking or garage. |
| `sort` | integer | No | Sort order, e.g. 2 for newest first. |
| `enrich` | boolean | No | Set to 1 to merge the mobile listing family into every result for rent cadence, listing status, thumbnail and floorplan counts, and the inline branch contact. This opt-in search costs 2 API requests instead of 1, and 3 the first time a given place name has to be resolved. Commercial channels have no mobile family, so enrich is a no-op there and costs the same as a plain search. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/rightmove/search?location=London&channel=BUY"
```

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