50+ Attributes for Any UK Postcode — One API Call
Pass a UK postcode. Get back a complete area profile — deprivation score, crime rate, average sale price, nearby school count, public transport links, and broadband speed. All in one call, instead of five.
Free tier: 100 requests/month. No credit card required.
Five calls, reduced to one.
Building a property portal, mortgage app, or area comparison tool? You used to stitch together deprivation, crime, price trends, schools, transport, and broadband separately — six round-trips, six response schemas to parse.
The Postcode Profile endpoint bundles all of that into a single structured response. One call, consistent schema, cached at the postcode level.
curl "https://api.homedata.co.uk/api/postcode-profile/" \
-G \
--data-urlencode "postcode=SW1A 2AA" \
-H "Authorization: Api-Key YOUR_API_KEY"
{
"postcode": "SW1A 2AA",
"area": "City of Westminster",
"deprivation": {
"imd_rank": 26542,
"imd_decile": 9,
"income_score": 0.041,
"crime_score": 0.193
},
"crime": {
"monthly_avg": 4.2,
"rate_per_1000": 8.1,
"latest_month": "2024-11"
},
"property_prices": {
"avg_sale_price": 1240000,
"median_sale_price": 895000,
"transactions_12m": 47,
"currency": "GBP"
},
"schools": {
"within_1km": 6,
"ofsted_outstanding": 2,
"ofsted_good": 3
},
"transport": {
"stops_500m": 12,
"nearest_tube": "Westminster",
"nearest_rail": "Victoria"
},
"broadband": {
"avg_download_mbps": 148.3,
"full_fibre_available": true
}
}
Built for area comparison use cases
One endpoint does the heavy lifting. You focus on the UI.
Property portals
Show area scores on listing pages — deprivation, transport, and schools at a glance. One call per listing, cached at the postcode level.
Mortgage & lending
Area risk scoring for underwriting. Deprivation, crime, and price trend data in a single structured payload. No stitching required.
Relocation tools
Compare areas side-by-side. School quality, commute links, safety scores, and price context — everything buyers ask about, pre-assembled.
Response fields
| Field | Type | Description |
|---|---|---|
| deprivation.imd_rank | integer | IMD 2019 national rank (1=most deprived, 32,844=least) |
| deprivation.imd_decile | integer | 1–10 decile (1=most deprived 10%) |
| crime.monthly_avg | float | Average monthly crime incidents at this location (Police UK) |
| property_prices.avg_sale_price | integer | Average sold price in this outcode over last 12 months (£) |
| schools.within_1km | integer | GIAS-registered schools within 1km of postcode centroid |
| schools.ofsted_outstanding | integer | Ofsted Outstanding-rated schools within 1km |
| transport.stops_500m | integer | NaPTAN public transport stops within 500m |
| broadband.avg_download_mbps | float | Ofcom median download speed for this postcode (Mbps) |
| broadband.full_fibre_available | boolean | Whether FTTP is available at this postcode |
Code examples
Python
import requests
res = requests.get(
"https://api.homedata.co.uk/api/postcode-profile/",
params={"postcode": "SW1A 2AA"},
headers={"Authorization": "Api-Key YOUR_API_KEY"}
)
profile = res.json()
print(profile["property_prices"]["avg_sale_price"])
print(profile["schools"]["within_1km"])
JavaScript
const res = await fetch(
"https://api.homedata.co.uk/api/postcode-profile/"
+ "?postcode=" + encodeURIComponent("SW1A 2AA"),
{ headers: { "Authorization": "Api-Key YOUR_API_KEY" } }
);
const profile = await res.json();
console.log(profile.transport.stops_500m);
Replace five API calls with one
Free tier included. No credit card. Takes two minutes to integrate.