Rightmove APIrightmove.co.uk ↗
Access Rightmove UK property listings via API. Search for-sale and to-let properties by location, price, bedrooms, and type. Get details, images, and room data.
What is the Rightmove API?
The Rightmove API provides 8 endpoints for querying the UK's largest property portal, covering both for-sale and to-let listings across England, Scotland, and Wales. The search_properties endpoint returns up to 24 listings per page with filters for price range, bedrooms, radius, and sort order, while get_property_details delivers full listing data including room dimensions, floor plans, nearby stations, tenure, and agent contact details for a specific property ID.
curl -X GET 'https://api.parse.bot/scraper/86dba7ad-639c-4a75-b7f6-b5436788ce16/search_properties?page=1&radius=5&channel=BUY&max_pages=1&max_price=500000&min_price=100000&sort_type=2&max_bedrooms=4&min_bedrooms=2&property_types=detached&location_identifier=Glasgow' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for property listings on Rightmove with filters like location, price range, bedrooms, and property type. Returns paginated results with 24 properties per page. Pagination is page-based; each page returns up to 24 results. Supports BUY and RENT channels with various sort options. Accepts plain place names (e.g. 'Glasgow', 'Dennistoun') or postcodes which are automatically resolved to Rightmove location identifiers via typeahead.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number to start from (1-based) |
| radius | string | Search radius in miles from location (e.g. 0.25, 0.5, 1, 3, 5, 10, 15, 20, 30, 40) |
| channel | string | Search channel |
| max_pages | integer | Maximum number of pages to fetch in a single request |
| max_price | string | Maximum price filter (numeric string, e.g. 500000) |
| min_price | string | Minimum price filter (numeric string, e.g. 100000) |
| sort_type | string | Sort order for results |
| max_bedrooms | string | Maximum number of bedrooms (numeric string, e.g. 4) |
| min_bedrooms | string | Minimum number of bedrooms (numeric string, e.g. 2) |
| property_types | string | Property type filter (e.g., detached, semi-detached, flat, terraced) |
| location_identifier | string | Location to search. Accepts a plain place name (e.g. 'Glasgow', 'Dennistoun', 'SW1A'), a postcode, or a raw Rightmove location identifier (e.g. 'REGION^93917' for London, 'REGION^162' for Birmingham). Plain names are automatically resolved via Rightmove's typeahead. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"count": "integer number of properties returned in this response",
"properties": "array of property listing objects",
"total_pages": "integer total number of pages available",
"pages_fetched": "integer number of pages fetched in this request",
"total_results": "integer total number of matching properties",
"results_per_page": "integer results per page (always 24)"
}
}About the Rightmove API
Search and Pagination
The search_properties endpoint accepts a location_identifier (resolved via resolve_location), a channel of either BUY or RENT, and optional filters including min_price, max_price, max_bedrooms, radius (in miles), and sort_type. Results are paginated at 24 per page; the response includes total_results, total_pages, and pages_fetched. For bulk collection, search_properties_filtered aggregates all available pages into a flat listings array de-duplicated by ID, though Rightmove caps results at 42 pages (~1,008 listings) per query — the capped boolean signals when this limit is hit. The count_properties endpoint lets you check total_results for a given filter set before committing to a full bulk fetch.
Full-Location Collection and Status Checks
search_location_all handles locations that exceed the 42-page cap by splitting the query into non-overlapping price bands automatically and returning a next_cursor token for resuming across multiple calls. The complete boolean confirms when the entire location has been collected. To refresh existing records without re-querying an area, check_listings_status accepts up to 100 property IDs and returns each listing's current status (one of live, sstc, under_offer, let_agreed, or removed), price_amount, and price_frequency.
Property Detail Fields
get_property_details returns a single property's full data: bedrooms, bathrooms, tenure (e.g. FREEHOLD, LEASEHOLD), latitude/longitude, size_value/size_unit, images (URL and caption), rooms (name, description, width, length, unit), nearby_stations, key_features, description, price_amount, price_currency, and price_frequency (monthly or weekly for rentals, null for sales). The batch variant get_property_details_batch accepts up to 100 comma-separated IDs and returns one row per ID in input order, with a partial flag and failed_ids array when any ID could not be fetched.
Location Resolution
resolve_location converts a plain place name or postcode into Rightmove location_identifier values (e.g. REGION^162) that the search endpoints require. Each match includes a display_name, type (such as REGION, OUTCODE, POSTCODE, or STATION), and the full location_identifier string ready to pass to any search endpoint.
The Rightmove API is a managed, monitored endpoint for rightmove.co.uk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rightmove.co.uk changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official rightmove.co.uk API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a property price tracker that monitors asking price changes for a saved set of listing IDs using
check_listings_status. - Aggregate all active for-sale listings across a city using
search_location_allwith automatic price-band splitting. - Generate a postcode-level supply report by running
count_propertiesacross multiple outcodes with aBUYchannel filter. - Feed a rental comparison tool with RENT-channel results filtered by
min_bedrooms,max_price, andmust_havefeatures. - Populate a property database with room dimensions and floor plans by calling
get_property_details_batchafter a bulk search. - Resolve user-entered location strings to Rightmove identifiers before passing them to search endpoints via
resolve_location. - Detect newly sold or let-agreed properties by polling
check_listings_statuson a watchlist and filtering forsstcorlet_agreedstatus.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Rightmove have an official public developer API?+
How does the 42-page cap affect bulk searches, and how do I work around it?+
search_properties_filtered and search_location_all both hit Rightmove's limit of 42 pages (~1,008 listings) per query. When a query's total_results exceeds this, capped is set to true. search_location_all handles this automatically by splitting the query into contiguous price bands and returning a next_cursor for resumption. For search_properties_filtered, use count_properties first to check total_results, then manually split by price bands using min_price and max_price to stay within the cap per band.What listing statuses does `check_listings_status` distinguish?+
live (actively listed), sstc (sold subject to contract), under_offer, let_agreed, or removed (no longer on Rightmove). A null status appears only when the ID errored. The price_amount field is null for removed listings.Does the API return sold house price history or historical listings?+
Are new-build or shared ownership listings included, and can they be filtered out?+
search_properties_filtered and count_properties endpoints accept a dont_show parameter where you can pass comma-separated values such as newHome, sharedOwnership, retirement, or auction to exclude those listing types. The must_have parameter works inversely to require any of those same features.