Data catalogue/ Prices & transactions/ Listing events
Listing events
The complete transaction lifecycle for UK properties that have been marketed. Not just the final sale price: every event from the moment a property is listed to the day it completes, with dates and prices at each step.
Every step of the journey
Listing events are returned as a nested array on each transaction, ordered chronologically. Each event has a type, date, price, and source.
Response fields
Each object in the property_sale_events[] array contains these fields.
Status events (Added, Price Changed, Under Offer, Sold STC, Withdrawn) come from Home.co.uk's 30-year UK listing dataset: the same data powering one of the UK's longest-running property portals. Completed events come from HM Land Registry. We match them to a single UPRN to give you the full story in one API call.
| Field | Type | What it is |
|---|---|---|
| event_type | string | One of: Added, Price Changed, Under Offer, Sold STC, Withdrawn, Completed |
| date | string | Event date in ISO 8601 format (YYYY-MM-DD) |
| price | integer | |null Price in pence for Added, Price Changed, and Completed events. null for status-only events |
| source | string | Data source: Home.co.uk (listing portal data) or Land Registry (completion records) |
| agent | string | |null Estate agent name, populated on Added event if available |
| listing_id | string | |null Unique listing reference for cross-referencing within the dataset, where available |
Where the data comes from
API example
- GET /property_sales/?uprn={uprn}
- property_sale_events 200 OK
curl "https://api.homedata.co.uk/property_sales/?uprn=100023336956" \ -H "Authorization: Api-Key YOUR_KEY"
import requests
r = requests.get(
"https://api.homedata.co.uk/property_sales/",
params={"uprn": "100023336956"},
headers={"Authorization": "Api-Key YOUR_KEY"},
)
events = r.json()["results"][0]["property_sale_events"]
for e in events:
print(f"{e['date']}: {e['event_type']} at £{e['price']/100:,.0f}")
const res = await fetch(
"https://api.homedata.co.uk/property_sales/?uprn=100023336956",
{ headers: { "Authorization": "Api-Key YOUR_KEY" } }
);
const { results } = await res.json();
results[0].property_sale_events.forEach(e => {
console.log(`${e.date}: ${e.event_type} at £${(e.price/100).toLocaleString()}`);
});
"property_sale_events": [
{
"event_type": "Added",
"date": "2024-01-12",
"price": 59500000,
"source": "Home.co.uk",
"agent": "Savills Bristol"
},
{
"event_type": "Price Changed",
"date": "2024-02-28",
"price": 57500000,
"source": "Home.co.uk",
"agent": null
},
{
"event_type": "Completed",
"date": "2024-05-28",
"price": 55800000,
"source": "Land Registry",
"agent": null
}
]
More in Prices & transactions
Start building today.
Pay as you go, 100 tokens = £1, first top-up matched. Get your key and test with real data.