API Documentation

UK property data,
built for developers

29 million properties. EPC ratings, sold prices, environmental risks, comparables, deprivation data. One API, consistent JSON, instant access.

Free tier includes 100 requests/month. No credit card required.

GET /api/properties/10093609154/
// 200 OK — 189ms
{
"uprn": 10093609154,
"full_address": "APARTMENT 1009, CHAPMAN HOUSE, SALFORD, M3 5FH",
"postcode": "M3 5FH",
"current_energy_efficiency": 84,
"potential_energy_efficiency": 84,
"last_epc_date": "2020-07-28",
"last_sold_date": "2019-11-15",
"construction_age_band": "2007-2011",
"epc_floor_area": 56.0,
"habitable_rooms": 3
}
29M+
UK properties
200M+
Data points
30 yrs
Price history
<300ms
Avg response time

Quickstart

From zero to first API call in under 5 minutes.

1

Create a free account

Sign up at homedata.co.uk/register. Your API key is generated instantly — no approval needed, no credit card required.

Create Free Account →
2

Copy your API key

Find your API key in your dashboard. All authenticated requests use the Api-Key header format.

HTTP header
Authorization: Api-Key hd_xxxxxxxxxxxxxxxxxxxx
3

Make your first request

Look up a property's EPC rating by its UPRN. Every UK property has a UPRN — a unique 12-digit identifier. The EPC endpoint requires no authentication, so you can test it right now.

cURL
# EPC checker — no API key required
curl https:/.homedata.co.uk/api/epc-checker/100023336956/

# Authenticated endpoints — pass your API key
curl https:/.homedata.co.uk/api/properties/100023336956/ \
  -H "Authorization: Api-Key YOUR_API_KEY"
Python
import requests

API_KEY = "YOUR_API_KEY"
UPRN = "10093609154"

# EPC lookup (no auth needed)
epc = requests.get(
    f"https:/.homedata.co.uk/api/epc-checker/{UPRN}/"
).json()

print(f"EPC: {epc['current_energy_efficiency']}/100")
# → EPC: 84/100

# Authenticated endpoints
headers = {"Authorization": f"Api-Key {API_KEY}"}
property_data = requests.get(
    f"https:/.homedata.co.uk/api/properties/{UPRN}/",
    headers=headers
).json()
JavaScript
const API_KEY = "YOUR_API_KEY";
const UPRN = "10093609154";
const BASE = "https:/.homedata.co.uk";

// EPC lookup (no auth needed)
const epc = await fetch(`${BASE}/api/epc-checker/${UPRN}/`)
  .then(r => r.json());

console.log(`EPC: ${epc.current_energy_efficiency}/100`);
// → EPC: 84/100

// Authenticated endpoints
const property = await fetch(`${BASE}/api/properties/${UPRN}/`, {
  headers: { "Authorization": `Api-Key ${API_KEY}` }
}).then(r => r.json());

Not sure what a UPRN is? Read our UPRN guide →

What you can build

Every endpoint returns clean JSON with consistent error handling. All endpoints are versioned and backward-compatible.

EPC & Energy

No auth

Current and potential energy ratings, efficiency scores, floor area, construction age band, and certificate date.

GET /api/epc-checker/{uprn}/
View data →

Property Intelligence

API key

Type, bedrooms, tenure, floor area, construction age, title data.

GET /api/properties/{id}/
View data →

Comparables

API key

Nearest comparable sales by PostGIS proximity. Filter by beds, type, date range.

GET /api/comparables/{uprn}/
View data →

Environmental Risks

API key

Flood, radon, noise, landfill, coal mining, air quality, invasive plants.

GET /api/risks/{risk_type}/
View data →

Price Trends

API key

Monthly median asking prices by outcode with volatility scoring. 12-month rolling window.

GET /api/price_trends/{outcode}/
View data →

Deprivation Index

API key

IMD data for any postcode. 10 domains: income, employment, health, crime, and more.

GET /api/deprivation/?postcode=
View data →

Live Listings

API key

Real-time property listings with full-text search. Powered by Elasticsearch.

GET /api/live-listings/search/
View data →

Agent Statistics

API key

Estate agent performance: listings, sales, average prices, time on market by area.

GET /api/agent_stats/
View data →

OpenAPI Schema

Swagger

Full interactive API explorer. Generate client code in any language from the OpenAPI spec.

GET /api/schema/
Open API Explorer →

Understanding UPRNs

Most of our API endpoints use a UPRN (Unique Property Reference Number) — a 12-digit number that uniquely identifies every addressable location in the UK. There are 40 million of them.

If you have addresses but not UPRNs, use our address matching endpoint to convert them, or query the UPRN lookup tool to find test values.

Stable — a UPRN never changes even if the address does
Universal — works across all Homedata endpoints
Precise — uniquely identifies a flat within a converted house
UPRN → Address lookup
# Search for an address (free — no API key needed)
curl "https:/.homedata.co.uk/api/address/find/?q=10+Downing+Street"

// Returns:
{
  "suggestions": [{
    "uprn": 100023336956,
    "address": "PRIME MINISTER & FIRST LORD OF THE TREASURY, 10 DOWNING STREET, LONDON, SW1A 2AA",
    "postcode": "SW1A 2AA",
    "town": "London"
  }],
  "count": 1
}

Authentication

All authenticated endpoints use Api-Key authentication. Pass your API key in the Authorization header.

Request format

Authorization: Api-Key hd_xxxxxxxxxxxxxxxxxxxx

Error responses

401 Missing or invalid API key
429 Rate limit exceeded — check your plan's limit
404 Property not found for the given UPRN

Rate limits

Rate limits are per API key. Current limits by plan:

Plan Monthly requests Rate limit
Free 100 2/sec
Starter 2,000 5/sec
Growth 10,000 10/sec
Pro 50,000 20/sec
Scale 200,000 40/sec
Enterprise Unlimited Custom

Need higher limits? View all plans →

Need something custom?

For large organisations, we offer dedicated infrastructure, white-label data feeds, custom rate limits, and bespoke endpoint development. Get in touch to discuss your requirements.

Start building for free

100 API requests per month, no credit card required. Upgrade when you're ready to scale.