Getting Started
From zero to your first API call in under 5 minutes. No credit card required.
Prerequisites
- • An HTTP client (curl, Postman, or your language's HTTP library)
- • A Homedata account (free signup)
Create your free account
Sign up at homedata.co.uk/register. You'll need:
- • Your name and email
- • Organisation name (company or project name)
- • Industry (helps us tailor your experience)
Your API key is generated instantly after signup. The free tier gives you 100 requests/month — enough to build and test your integration.
Get your API key
After signing in, go to Developer → API Keys in your dashboard. Click "Reveal" to see your full API key.
⚠️ Keep your API key secret. Don't commit it to version control or expose it in client-side code.
Make your first request
Let's start with something simple — look up the EPC energy rating for a property. The EPC endpoint is open (no auth required), so you can try it right now:
curl https:/.homedata.co.uk/api/epc-checker/10093609154/
import requests
response = requests.get(
"https:/.homedata.co.uk/api/epc-checker/10093609154/"
)
data = response.json()
print(f"Energy efficiency: {data['current_energy_efficiency']}/100")
print(f"Potential: {data['potential_energy_efficiency']}/100")
const response = await fetch(
"https:/.homedata.co.uk/api/epc-checker/10093609154/"
);
const data = await response.json();
console.log(`Energy efficiency: ${data.current_energy_efficiency}/100`);
console.log(`Potential: ${data.potential_energy_efficiency}/100`);
$response = file_get_contents(
"https:/.homedata.co.uk/api/epc-checker/10093609154/"
);
$data = json_decode($response, true);
echo "Energy efficiency: " . $data['current_energy_efficiency'] . "/100";
Expected response:
{
"uprn": 10093609154,
"current_energy_efficiency": 84,
"potential_energy_efficiency": 84,
"last_epc_date": "2020-07-28",
"epc_floor_area": 59,
"construction_age_band": "2020-2029",
"epc_id": "1813679032512020072814144822200478"
}
Energy efficiency is scored 1–100 (higher = better). Use the /api/properties/{uprn}/ endpoint for full property details including EPC band letter, tenure, and sold history.
Use your API key for authenticated endpoints
Most endpoints require authentication. Pass your API key in the Authorization header:
# Full property data (requires API key) curl https:/.homedata.co.uk/api/properties/100023336956/ \ -H "Authorization: Api-Key YOUR_API_KEY" # Environmental risk assessment curl "https:/.homedata.co.uk/api/risks/flood/?uprn=100023336956" \ -H "Authorization: Api-Key YOUR_API_KEY" # Deprivation data by postcode curl "https:/.homedata.co.uk/api/deprivation/?postcode=SW1A%202AA" \ -H "Authorization: Api-Key YOUR_API_KEY"
import requests API_KEY = "YOUR_API_KEY" BASE = "https:/.homedata.co.uk" headers = {"Authorization": f"Api-Key {API_KEY}"} # Get full property data prop = requests.get(f"{BASE}/api/properties/100023336956/", headers=headers).json() print(f"Address: {prop['full_address']}") print(f"Type: {prop['property_type']}, Beds: {prop['bedrooms']}") # Get flood risk risk = requests.get( f"{BASE}/api/risks/flood/", params={"uprn": "100023336956"}, headers=headers ).json() for result in risk["results"]: print(f"{result['risk_type']}: {result['label']}") # Get deprivation data dep = requests.get( f"{BASE}/api/deprivation/", params={"postcode": "SW1A 2AA"}, headers=headers ).json() print(f"Deprivation: {dep['overall']['label']}")
const API_KEY = "YOUR_API_KEY"; const BASE = "https:/.homedata.co.uk"; const headers = { "Authorization": `Api-Key ${API_KEY}` }; // Get full property data const prop = await fetch(`${BASE}/api/properties/100023336956/`, { headers }) .then(r => r.json()); // Get all environmental risks at once const risks = await fetch( `${BASE}/api/risks/all/?uprn=100023336956`, { headers } ).then(r => r.json()); risks.results.forEach(r => console.log(`${r.risk_type}: ${r.label}`) );
Monitor your usage
Every response includes rate limit headers so you always know where you stand:
X-RateLimit-Limit: 100 ← Monthly allowance X-RateLimit-Remaining: 97 ← Requests left this month
You can also check your usage in the Developer Dashboard — it shows a 30-day usage chart with daily breakdown.