Skip to main content
Free UK property data API Start free →
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.

Homedata is the only UK API that exposes the full listing-event chain — Added, Reduced, Sold STC, Withdrawn, Re-listed — UPRN-matched and address-matched, queryable by date range across 30 years of history.

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

GET /api/properties/10093609154/
// 200 OK
{
  "uprn": 10093609154,
  "full_address": "APARTMENT 1009, CHAPMAN HOUSE…",
  "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

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 →

Drop-in widgets

Or skip the code — embed a widget.

Browser-callable public keys with origin lock + scope. Drop two lines of HTML on a property page and render flood risk, EPC, crime stats or nearby schools — pulling from the same Homedata data API, no key in your client code.

your-page.html
<div data-homedata-flood-risk
     data-uprn="100023336956"></div>

<script src="https://homedata.co.uk/js/homedata-flood-risk.js"
        data-key="wt_your_public_key_here"
        defer></script>

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 →

Interactive API Reference

OpenAPI 3.1

Full interactive API reference. Try endpoints live, generate client code in any language from the OpenAPI spec.

/docs/api-reference
Open API Reference →

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 (2 calls — no API key needed for public endpoint)
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 250,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.

Why we built this

Built out of necessity

Homedata started because UK property data is a mess. To assemble one usable property record we were stitching together half a dozen obscure APIs — one for addresses, another for sold prices, separate ones for EPC, environmental risk, planning, council tax. Each had its own auth, its own rate limits, its own field names, its own update cadence.

Market data — the most useful part — was basically non-existent.

Listing events, days on market, price reductions, withdrawal patterns, sold-vs-asking ratios — the signals that actually move a deal — weren't in any of the public feeds. And the bits that did exist sat behind silently inconsistent UPRN matching: the same property could be a different identifier in two feeds, or missing entirely from one. Records didn't line up. Fields conflicted. Joining a sold price to an EPC to a flood-risk score reliably took weeks of glue code per integration, and the joins broke quietly when an upstream schema shifted.

We built Homedata to fix that for ourselves. One licensed feed covering 90%+ of the UK property market, one canonical UPRN, every record matched and reconciled, every endpoint returning the same shape. The free tier is here because we wanted other developers to skip the work we had to do.

— The Homedata Team Try the free tier

Start building for free

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