Rightmove
Rightmove Sold Prices API
Sold house prices for a town, outcode or postcode in England and Wales: 25 addresses per page, each with its full sale history since 1995 (price, date, tenure, new build), property type, bedrooms, bathrooms and coordinates, plus an area summary with the average price over the last year. Filter by property type, tenure, years since sale and radius; sort by date or price. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonlocationstringrequiredA town, outcode (SW11) or full postcode (SW11 1AA) in England or Wales, 2-80 characters.
Example: Bristol
property_typestringOnly this property type: flat, detached, semi_detached, terraced or other.
tenurestringfreehold or leasehold.
sold_within_yearsintegerOnly addresses sold in the last 1, 2, 3, 5, 10, 15, 20 or 30 years. Omit for every sale since 1995.
Example: 2
radius_milesnumberdefault:0Widen the area by this many miles: 0, 0.25, 0.5, 1, 3, 5, 10, 15, 20, 30 or 40.
sortstringdefault:newestnewest (most recent sale first), price_low or price_high.
pageintegerdefault:1Results page, 1-40 (25 addresses per page). Stop at max_page.
Example: 2
Notes
England and Wales only. Sold prices cover addresses in England and Wales, with transactions back to 1995; data_coverage gives the earliest and most recent transaction dates and when the data was last updated. Scotland and Northern Ireland are not covered by this endpoint.
40 pages per search. Rightmove serves 40 pages of 25 addresses per sold-prices search (1,000 addresses). To reach more in a big town, narrow by property_type, tenure, sold_within_years or a postcode, and run one search per slice.
Unknown locations are billed. A location with no sold prices returns a 404 naming it and costs 1 credit. Temporary failures (502/503) are not billed.
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
res = client.rightmove.sold("Bristol", sold_within_years=2, property_type="terraced")
print(res["data"]["summary"]["average_price_last_year"])
for p in res["data"]["properties"]:
last = p["transactions"][0]
print(p["address"], last["price"], last["date"], len(p["transactions"]))Response