Demographics & households
Census 2021Age bands, household composition, tenure mix, and dependants from Census 2021. Twenty plus columns covering who lives there and how they live.
Send a postcode, get back demographics, deprivation, crime, housing, broadband, and access scores. Plug the result into models for risk, pricing, or lead qualification.
See a sample responseEach call returns these field groups for any GB postcode. Field shape is stable across endpoints, so model code stays unchanged when you switch from single lookup to batch.
Age bands, household composition, tenure mix, and dependants from Census 2021. Twenty plus columns covering who lives there and how they live.
IMD score and decile for England, plus WIMD for Wales and SIMD for Scotland. Income, employment, education, health, and crime sub-domains exposed individually.
Council tax bands, EPC energy ratings, tenure mix, and rolling median price paid from HM Land Registry. Useful for mortgage and catchment work.
Recorded offences within a one kilometre radius, broken out by category and rolling 12 month trend. Sourced from police.uk monthly drops.
Median fixed-line download speed, FTTP availability, and 4G/5G outdoor coverage from Ofcom Connected Nations.
Drive time to nearest GP, A&E, primary school, secondary school, supermarket, and train station. Computed against Ordnance Survey Open Roads.
A realistic shape for a single postcode. Field groups mirror the schema docs. Every group ships with an as_of date so you can audit freshness.
GET /api/postcode/SW1A1AA HTTP/1.1
Host: scoring.akilima.tech
Authorization: Bearer ak_pcint_*** 200 OK {
"postcode": "SW1A 1AA",
"geography": {
"region": "London",
"country": "England",
"rural_urban": "A1 - Major conurbation",
"lsoa": "E01004736",
"lat": 51.5014,
"lon": -0.1419
},
"demographics": {
"population": 412,
"households": 198,
"median_age": 42.6,
"single_person_pct": 0.48,
"tenure_owned_pct": 0.31
},
"deprivation": {
"imd_decile": 8,
"imd_income_decile": 9,
"imd_employment_decile": 9,
"imd_crime_decile": 4
},
"housing": {
"median_price_paid": 1850000,
"council_tax_band_mode": "H",
"epc_median_band": "C"
},
"crime_1km_12m": {
"all_offences_per_1000": 78.2,
"burglary_per_1000": 4.1,
"violence_per_1000": 22.3,
"trend": "declining"
},
"connectivity": {
"median_download_mbps": 412,
"fttp_available": true,
"outdoor_5g_pct": 0.99
},
"access_minutes": {
"gp": 2,
"primary_school": 3,
"train_station": 4,
"a_and_e": 7
},
"risk": {
"composite_score": 0.18,
"flood_zone": "1"
},
"as_of": {
"demographics": "2021-03-21",
"crime": "2026-04-01",
"housing": "2026-03-31"
}
} Lookup, batch, or risk-only. Each call returns the same field shape so model code stays unchanged when you switch.
GET /api/postcode/{postcode} Single postcode lookup. Returns the full feature vector with provenance and as-of dates per group.
POST /api/postcode/batch Up to 1,000 postcodes per call. Same field shape as the single endpoint, returned as an array.
GET /api/postcode/{postcode}/risk Risk-only subset. Crime rates, deprivation deciles, flood zone, and a composite score. Cheaper per call.
Postcode features sit alongside the features you already have, in models you already run.
Score inbound enquiries before sales picks up the phone. Use deprivation deciles, income proxies, and access scores as model features.
Add postcode-level risk signals to motor, home, and contents pricing models without licensing a separate dataset.
Flag postcodes that diverge from a customer's declared profile. Crime trend, mobility, and demographic mismatches make useful features.
Quantify catchment for retail, healthcare, or service sites. Build models on access times, household composition, and density.
Use property mix, EPC ratings, and IMD income sub-domain to enrich credit decisions. Postcode features sit alongside applicant features.
Stratify A/B tests by postcode profile so you can read effects across deprivation deciles or rural-urban splits.
Every column comes from an attributed UK open-data source. Every response cites which one and how fresh it is.
| Source | Covers | Refresh |
|---|---|---|
| ONS Census 2021 | Demographics, households, tenure | Decadal |
| MHCLG English IMD 2019 | Deprivation deciles and sub-domains | Periodic |
| Welsh Government WIMD | Welsh deprivation deciles | Periodic |
| Scottish Government SIMD | Scottish deprivation deciles | Periodic |
| HM Land Registry Price Paid | Property prices | Monthly |
| police.uk | Recorded crime within radius | Monthly |
| Ofcom Connected Nations | Broadband and mobile coverage | Biannual |
| OS Open Roads | Drive times to amenities | Biannual |
| Environment Agency | Flood risk zone | Quarterly |
1.7M+ live GB postcodes. England, Scotland, Wales.
Monthly for crime and pricing. Quarterly for the full vector.
Aggregates only. Smallest attributed unit is the postcode (around 15 households).
One GET call, or a batch of up to 1,000 in a POST. Auth is a scoped bearer token.
Demographics, deprivation, housing, crime, connectivity, access, risk. Same shape on every call.
Plug the response into your existing pipeline. Cache hits are free. Bulk usage rolls over to the dataset licence.
No. Coverage is Great Britain only. NI uses a separate postcode authority and deprivation framework, and several of the upstream sources do not extend there. Get in touch if you need NI and we will scope it out.
Crime and Land Registry pricing refresh monthly. Connectivity and Open Roads refresh twice a year. Census-derived columns are decadal. Each response includes an as_of block per group so you can audit freshness directly.
No. Every column is a postcode-level aggregate. The smallest unit attributed is the postcode itself, around 15 households on average. Nothing in the response identifies a person.
Yes. We deliver the same schema as Parquet or CSV with monthly diffs. Pricing depends on the slice and refresh cadence you need.
Often, yes. If you have a public source you want enriched onto every postcode (a flood model, a brand catchment, a custom risk score), we can add it as a private extension column for your account.
We respect each upstream licence. Most sources are OGL v3.0 with attribution. Ordnance Survey content is delivered under OS OpenData terms. Sources are attributed in every response and in our docs.
Tell us the slice you need. We can send a sample CSV or issue a scoped API token within a working day.