House Price Growth by Postcode — Track Capital Appreciation Over 30 Years
Annual capital appreciation rates for any UK outcode area. Pass a postcode prefix — get back 1, 3, 5, and 10-year return figures alongside a monthly price index. Computed from Land Registry sold price records, updated monthly.
Free tier: 100 requests/month. No credit card required.
Capital appreciation, straight from the source.
Property investors, mortgage advisors, and portal builders all need the same question answered: how has this area performed? The Price Growth endpoint delivers that in a single call — no aggregation work required on your side.
Data sourced directly from HM Land Registry sold price records. Updated monthly. Covers all residential property types in England and Wales.
curl "https://api.homedata.co.uk/api/price-growth/SW1A/" \
-H "Authorization: Api-Key YOUR_API_KEY"
{
"outcode": "SW1A",
"area_name": "Westminster",
"currency": "GBP",
"growth": {
"annual_rate": 3.2,
"1y_return": 3.2,
"3y_return": 11.4,
"5y_return": 19.7,
"10y_return": 48.3
},
"prices": {
"current_avg": 1240000,
"avg_1y_ago": 1201000,
"avg_3y_ago": 1114000,
"avg_5y_ago": 1037000
},
"monthly_index": [
{ "month": "2024-11", "avg_price": 1240000, "transactions": 47 },
{ "month": "2024-10", "avg_price": 1218000, "transactions": 52 },
{ "month": "2024-09", "avg_price": 1229000, "transactions": 39 }
],
"data_through": "2024-11",
"transaction_count_12m": 547
}
Built for investment and advisory use cases
Growth data that's actually useful — historical depth, multiple time horizons, raw transaction context.
Investment platforms
Show 1Y/5Y/10Y capital appreciation alongside rental yield. Give investors the full picture for any area in a single endpoint call.
Mortgage advisors
Area price context for remortgage and equity release conversations. Historic trends add credibility to valuations and LTV assessments.
Property portals
Enrich listing pages with area price trend sparklines. Show buyers how prices have moved over 1, 3, and 5 years in the area they're searching.
Response fields
| Field | Type | Description |
|---|---|---|
| growth.annual_rate | float | Year-on-year price change % (most recent 12-month period) |
| growth.1y_return | float | Total return % over last 12 months |
| growth.3y_return | float | Total return % over last 3 years |
| growth.5y_return | float | Total return % over last 5 years |
| growth.10y_return | float | Total return % over last 10 years |
| prices.current_avg | integer | Average sold price over last 12 months (£) |
| monthly_index | array | Monthly price series — month, avg_price, transaction count |
| transaction_count_12m | integer | Number of Land Registry transactions in the last 12 months |
| data_through | string | Most recent month included in the dataset (YYYY-MM) |
Code examples
Python
import requests
res = requests.get(
"https://api.homedata.co.uk/api/price-growth/SW1A/",
headers={"Authorization": "Api-Key YOUR_API_KEY"}
)
data = res.json()
print(f"1Y: {data['growth']['1y_return']}%")
print(f"5Y: {data['growth']['5y_return']}%")
print(f"Avg price: £{data['prices']['current_avg']:,}")
JavaScript
const outcode = "SW1A";
const res = await fetch(
`https://api.homedata.co.uk/api/price-growth/${outcode}/`,
{ headers: { "Authorization": "Api-Key YOUR_API_KEY" } }
);
const data = await res.json();
// data.monthly_index → array for sparkline chart
const series = data.monthly_index.map(m => ({
x: m.month,
y: m.avg_price,
}));
vs PropertyData /growth
PropertyData offers a growth endpoint — here's how we compare.
| Feature | Homedata | PropertyData |
|---|---|---|
| Historical depth | 10 years | Varies |
| Monthly index series | ✓ Included | Separate endpoint |
| Transaction count context | ✓ Per response | Not included |
| Data source | HM Land Registry | HM Land Registry |
| Free tier | ✓ 100 req/mo | Credits only |
10 years of price history. One endpoint.
Free tier included. No credit card. Takes two minutes to integrate.