Rightmove API endpoint
Search Rightmove's new-homes-for-sale listings for a location, with price, bedroom, bathroom, and property-type filters. Results are individual new-build homes and plots (with development flags), not development-level cards.
/rightmove/new-homes/search| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location | string | yes | — | Rightmove location identifier (from autocomplete, e.g., REGION^87490) |
page | integer | no | 1 | Result page (1-indexed) |
min_price | integer | no | — | Minimum price in whole GBP units, not pence |
max_price | integer | no | — | Maximum price in whole GBP units, not pence |
min_bedrooms | integer | no | — | Minimum number of bedrooms |
max_bedrooms | integer | no | — | Maximum number of bedrooms |
min_bathrooms | number | no | — | Minimum number of bathrooms |
max_bathrooms | number | no | — | Maximum number of bathrooms |
property_type | string | no | — | Property type filter. Accepts one or more comma-separated values. Allowed values: detached, semi-detached, terraced, flat, bungalow, land, park-home |
| Field | Type | Description |
|---|---|---|
location | string | Echo of the input location |
page | integer | Current page number |
total | integer | Total number of matching properties |
results[].id | string | Rightmove property ID |
results[].title | string | Full property description |
results[].address | string | Display address |
results[].url | string | Direct link to property on Rightmove |
results[].image | string | Main property image URL |
results[].price | integer | Price in whole currency units; for GBP, 440000 means £440,000 |
results[].price_text | string | Formatted price string |
results[].price_frequency | string | Price frequency (empty for one-off sale prices) |
results[].currency | string | Currency code (always GBP) |
results[].bedrooms | integer | Number of bedrooms |
results[].bathrooms | integer | Number of bathrooms |
results[].property_type | string | Property subtype (e.g., Apartment, Town House, Penthouse) |
results[].status | string | Transaction type (buy) |
results[].tenure | string | Tenure type (e.g., LEASEHOLD, FREEHOLD, SHARE_OF_FREEHOLD) |
results[].size | string | Floor area as displayed by Rightmove, e.g. 538 sq. ft. |
results[].development | boolean | Whether the listing belongs to a new-home development |
results[].added_or_reduced | string | Listing update indicator, e.g. Added on 10/08/2026 |
400 — Invalid or missing location parameter, invalid filter ranges, or property_type not in the allowed value list503 — Upstream error (Rightmove unreachable or response format changed)500 — Internal server error/new-homes-for-sale/find.html with channel=NEW_HOME)| Field | Filled in, of 25 checked | Values in the sample |
|---|---|---|
| id | 25 | |
| title | 25 | “3 bedroom flat for sale” and 10 other values |
| address | 25 | |
| url | 25 | rightmove.co.uk |
| image | 25 | media.rightmove.co.uk |
| price | 25 | 210,000 to 47,000,000, median 21,250,000 |
| price_text | 25 | “£210,000” and 19 other values |
| currency | 25 | GBP in all 25 |
| bedrooms | 25 | 2 to 7, median 4 |
| bathrooms | 25 | 2 to 8, median 4 |
| property_type | 25 | Apartment (14), Penthouse (7), Flat (1) and 3 more |
| status | 25 | buy in all 25 |
| tenure | 25 | LEASEHOLD (23), FREEHOLD (2) |
| size | 25 | “1,087 sq. ft.” and 22 other values |
| development | 25 | true in 25 of 25 |
| added_or_reduced | 25 | “Added on 15/09/2026” and 20 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| location | string | Yes | Rightmove location identifier from autocomplete | REGION^87490 | |
| page | integer | No | Result page (default 1) | ||
| min_price | integer | No | Minimum price in whole GBP units, not pence | ||
| max_price | integer | No | Maximum price in whole GBP units, not pence | ||
| min_bedrooms | integer | No | Minimum bedrooms | ||
| max_bedrooms | integer | No | Maximum bedrooms | ||
| min_bathrooms | number | No | Minimum bathrooms | ||
| max_bathrooms | number | No | Maximum bathrooms | ||
| property_type | string | No | Property type filter. Accepts one or more comma-separated values. Allowed values: detached, semi-detached, terraced, flat, bungalow, land, park-home. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/rightmove/new-homes/search?location=REGION%5E87490&page=1&property_type=detached" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"location": "REGION^87490",
"page": 1,
"total": 4249,
"results": [
{
"id": "91857243",
"title": "1 bedroom apartment for sale",
"address": "840 Old Kent Road,\nLondon,\nSE15 1NQ",
"url": "https://www.rightmove.co.uk/properties/91857243#/?channel=RES_NEW",
"image": "https://media.rightmove.co.uk/property-photo/91857243.jpg",
"price": 440000,
"price_text": "£440,000",
"currency": "GBP",
"bedrooms": 1,
"bathrooms": 1,
"property_type": "Apartment",
"status": "buy",
"tenure": "LEASEHOLD",
"size": "538 sq. ft.",
"development": true,
"added_or_reduced": "Added on 10/08/2026"
}
]
}
}Request schema
No body schema
Response schema
Inline response schema
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | Code is the HTTP status code or a custom code used to indicate the result of the request @example 200 | |||
| data | rightmove.SearchResponse | No | ||||
| data.location | string | No | REGION^87490 | |||
| data.page | integer | No | 1 | |||
| data.results | array | No | PropertyItem record, 19 fields: added_or_reduced, address, bathrooms, bedrooms, currency, days_on_market, development, id, image, price, price_frequency, price_text and 7 more. Described under Rightmove Property Search API. | |||
| data.total | integer | No | 1245 | |||
| msg | unknown | No | Msg is the message that describes the result of the request @example "Request successful" |
| Status | Description | Schema |
|---|---|---|
| 400 | Invalid query parameter | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
| 503 | Upstream error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/rightmove/new-homes/search?location=REGION%5E87490&page=1&property_type=detached" \
-H "x-api-key: $CRAWLORA_API_KEY"