Rightmove APIrightmove.co.uk ↗
Search and retrieve Rightmove UK property listings for sale or rent. Access prices, bedrooms, agent details, floorplans, and room dimensions via 2 endpoints.
What is the Rightmove API?
The Rightmove API gives developers access to UK property listings through 2 endpoints: search_properties and get_property_details. search_properties returns up to 24 listings per page with filters for price range, bedroom count, radius, and channel (BUY or RENT), while get_property_details returns full listing data including room dimensions, floorplans, tenure type, nearby coordinates, and estate agent name for a given 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'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace rightmove-co-uk-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Rightmove property search — find homes by place name and inspect details."""
from parse_apis.Rightmove_Property_Listings_API import Rightmove, Channel, SortType, PropertyNotFound
client = Rightmove()
# Search by plain place name — auto-resolved to Rightmove location identifier
for listing in client.property_summaries.search(
location="Glasgow", channel=Channel.BUY, sort=SortType.NEWEST, limit=5
):
print(listing.display_address, listing.display_price, listing.property_type)
# Drill into the first result for full property details
listing = client.property_summaries.search(
location="Edinburgh", min_bedrooms="2", max_price="400000", limit=1
).first()
if listing:
detail = listing.details()
print(detail.display_address, detail.primary_price, detail.tenure)
for station in detail.nearby_stations[:3]:
print(station.name, station.distance, station.unit)
# Handle a property that no longer exists
try:
prop = client.property_summaries.search(location="Manchester", limit=1).first()
if prop:
refreshed = prop.details()
print(refreshed.description[:100])
except PropertyNotFound as exc:
print(f"Property removed: {exc.property_id}")
print("exercised: property_summaries.search / listing.details / nearby_stations / PropertyNotFound")
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 UK Property Listings
The search_properties endpoint accepts a location string plus optional filters: min_price, max_price, min_bedrooms (implied by max_bedrooms), radius in miles, and sort_type. Set channel to BUY or RENT depending on whether you want for-sale or to-let results. Results come back paginated at 24 per page; the response includes total_results, total_pages, and pages_fetched so you can drive multi-page retrieval programmatically. Use max_pages to pull multiple pages in a single call.
Property Detail Fields
Pass a property_id obtained from search_properties to get_property_details to retrieve the full listing record. The response includes bedrooms, bathrooms, tenure (e.g., FREEHOLD or LEASEHOLD), latitude and longitude, and an images array with URLs and captions. Room-level detail is available via the rooms array, which provides each room's name, description, width, length, and unit. Floorplans are returned as a separate array of URL-and-caption objects. If a property has been sold or removed, the endpoint returns input_not_found.
Agent and Location Data
Each detailed property record includes agent_name for the listing estate agent. Geographic coordinates (latitude, longitude) are returned at the property level and can be used for mapping or distance calculations. The search endpoint's radius parameter accepts values from 0.25 up to 40 miles, making it suitable for both hyper-local and broad regional queries.
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 prices in a postcode area over time using search_properties filters
- Generate a map of available rentals by extracting latitude and longitude from get_property_details responses
- Compare room dimensions across listings by reading the rooms array width, length, and unit fields
- Aggregate agent market share by counting agent_name occurrences across search results in a region
- Alert users when new listings matching their bedroom and price filters appear in search results
- Enrich a CRM with property tenure type and floorplan URLs pulled from get_property_details
- Analyse leasehold vs freehold distribution across Birmingham or any UK city using the tenure field
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.