Data catalogue/ Prices & transactions/ Asking prices
Asking prices
Current and historical UK asking prices: backed by 30 years of Home.co.uk data collection. Track price reductions, re-listings, and the gap between what sellers asked and what buyers paid.
{
"results": [{
"uprn": "100023336956",
"price_paid": 55800000,
"date_of_transfer": "2024-05-28",
"property_listings": [
{
"portal": "home.co.uk",
"listed_price": 59500000,
"current_price": 55800000,
"listing_date": "2024-01-14",
"status": "sold_stc",
"days_on_market": 131,
"price_reduction_pct": -6.2,
"price_changes": [
{
"date": "2024-03-08",
"old_price": 59500000,
"new_price": 57500000
},
{
"date": "2024-05-02",
"old_price": 57500000,
"new_price": 55800000
}
]
}
]
}]
}Price reduction history
Asking prices are returned as a nested property_listings array on each transaction. Each record tracks a listing across portals with every price change.
Response fields
Fields in each object within the property_listings array, returned as part of the property_sales response.
Asking prices are nested inside property_listings on the property_sales response. Call GET /property_sales/?uprn= : listing history is included automatically.
| Field | Type | What it is |
|---|---|---|
| portal | string | Source data provider, collected via Home.co.uk's 30-year UK listing database |
| listed_price | integer | Initial asking price when first listed (in pence) |
| current_price | integer | Most recent asking price, may differ from listed_price after reductions |
| listing_date | string | Date the property first appeared on this portal (ISO 8601) |
| status | string | Current portal status: active, sold_stc, withdrawn, or completed |
| days_on_market | integer | Number of days the listing was active before changing status |
| price_changes | array | Array of {date, old_price, new_price} objects for every price change event |
| price_reduction_pct | float | Total % reduction from listed_price to current_price, negative means reduced |
How to access
API example
Asking prices are returned as part of the property_sales endpoint. No separate call needed.
- GET /property_sales/?uprn={uprn} cURL
- Response: property_listings 200 OK
curl "https://api.homedata.co.uk/property_sales/?uprn=100023336956" \ -H "Authorization: Api-Key YOUR_KEY"
import requests
resp = requests.get(
"https://api.homedata.co.uk/property_sales/",
params={"uprn": "100023336956"},
headers={"Authorization": "Api-Key YOUR_KEY"},
)
data = resp.json()
for sale in data["results"]:
for listing in sale.get("property_listings", []):
print(listing["portal"], listing["current_price"], listing["status"])
const res = await fetch(
"https://api.homedata.co.uk/property_sales/?uprn=100023336956",
{ headers: { "Authorization": "Api-Key YOUR_KEY" } }
);
const data = await res.json();
data.results.forEach(sale => {
sale.property_listings?.forEach(listing => {
console.log(listing.portal, listing.current_price, listing.status);
});
});
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.