Developers who search for a UK property data API usually need the same few things: the facts of a building from its address, a value in pounds, and risk measures for the location. The Houski API returns all of them in one request, for nearly every property in Great Britain, in the same schema it uses for every other country it covers.
This post covers the coverage, a live request for a home in Manchester, the fields that come back, and what insurers do with the flood and fire scores.
Great Britain coverage: England, Wales and Scotland
Houski covers Great Britain, which is England, Wales and Scotland. The data is built from public, government and crowdsourced data sources and is updated daily. Values that no record states are worked out by Houski and labelled Inferred.
Great Britain is addressed with country_abbreviation=gb. Below the country, place scope runs through province_abbreviation, city and community, and each level needs every level above it. England is province_abbreviation=eng. The /location endpoint returns the places that hold data, with the values the filters expect, so build your menus from its answers instead of a list written by hand.
Look up a British property by address
The block below is a live call against the real API. It asks for one address in Manchester and selects seven fields. The request code and the JSON answer are generated each time this page loads.
const houski_data = async (): Promise<PropertiesResponse> => {
// You must copy the PropertiesResponse type declarations from the
// Houski API documentation to strongly type the response
const url = new URL('https://api.houski.ca/properties');
url.searchParams.set('address', '22+Sussex+Avenue');
url.searchParams.set('api_key', 'YOUR_API_KEY');
url.searchParams.set('city', 'manchester');
url.searchParams.set('country_abbreviation', 'gb');
url.searchParams.set('province_abbreviation', 'eng');
url.searchParams.set('select', 'address,construction_year,interior_sq_m,roof_material,score_flood,score_fire,estimate_sale_price');
const response = await fetch(url);
const data = await response.json();
return data;
}
(async () => {
let data: PropertiesResponse = await houski_data();
// Log the response
console.log(data);
})();
{
"cache_hit": true,
"cost_cents": 0.52,
"data": [
{
"address": "22 Sussex Avenue",
"construction_year": 1939,
"estimate_sale_price": 692932,
"interior_sq_m": 146.0,
"property_id": "100550be3b8495f7",
"score_fire": 5,
"score_flood": 10
}
],
"error": "",
"pagination": {
"current_page": 1,
"has_next_page": false,
"has_previous_page": false,
"page_total": 1
},
"price_quote": false,
"result_total": 1,
"time_ms": 14,
"ui_info": {
"address": "22 Sussex Avenue",
"address_link": "gb/eng/manchester/unknown/22-sussex-avenue",
"address_slug": "22-sussex-avenue",
"city": "Manchester",
"city_id": "311dc539c85e1c6b",
"city_link": "gb/eng/manchester",
"city_slug": "manchester",
"community": "Unknown",
"community_link": "gb/eng/manchester/unknown",
"country": "United Kingdom",
"country_abbreviation": "GB",
"country_abbreviation_id": "90882893598cc98f",
"country_abbreviation_link": "gb",
"country_slug": "united_kingdom",
"property_id": "100550be3b8495f7",
"province": "England",
"province_abbreviation": "ENG",
"province_abbreviation_id": "5336aa935fab8e24",
"province_abbreviation_link": "gb/eng",
"province_slug": "england"
}
}
That one answer holds the year the home was built, its interior area in square metres, its roof material, its flood and fire scores, and its estimated sale price.
When the address comes from a person typing into a form, send it to the /search endpoint instead. It is a fuzzy address lookup that copes with typing errors and half-typed addresses, and it takes an optional country_abbreviation to keep the matches inside Great Britain.
The same schema as every other country
The fields in the Manchester request are the fields you would select for a home in Calgary, Paris or Seoul. One schema covers more than 220 million properties in Canada, the United States, Great Britain, France, Spain, the Netherlands, Poland, Czechia, Austria, Switzerland, Norway, Finland, Estonia, Latvia, Slovenia and South Korea.
For a team that works in more than one country, this removes the second vendor and the second data model. The filter syntax is the same everywhere: a field name, an operator suffix and a value, as in bedroom_gte=3 or property_type_eq=House. Text matches exactly, case included. The property types are the same list in every country: House, Townhouse, Apartment, Duplex, Multiplex, Manufactured, Land, Farm and Commercial.
There are more than 450 fields per property. The field reference lists them.
Property values in pounds
Money is in each country's own currency. For a British home, estimate_sale_price, estimate_list_price and estimate_rent_monthly are in pounds, with no conversion applied.
The estimate fields come back on any request. For how a value moved over time, the /predict endpoint returns modelled values for any date from 2021-01-01 to today. It does not forecast.
The data offers estimated values, listing history, assessments and permits. Many fields have a matching _source field that says whether a value is a link to a public record, Observed, Inferred or User. Adding exclude=inferred to a request leaves the inferred values out, which matters when a decision must rest only on recorded facts.
Flood and fire scores for insurers
Two of the scores speak directly to property insurance: score_flood and score_fire. Every score runs from 0 to 10, and higher is always better. A home with a score_flood of 9 is in a better position for flood than a home with a score of 3.
Insurers use them in three ways:
- Quote forms. An address lookup fills the form with construction_year, roof_material, interior_sq_m and both scores, so the applicant types less and the answers are consistent.
- Screening. A filter such as score_flood_lte=3 on the /properties endpoint returns the homes in a city with the weakest flood scores. The /aggregate endpoint counts them.
- Portfolio maps. The /map endpoint returns a heatmap over a box or a polygon.
A request for the weakest flood scores in Manchester looks like this:
curl "https://api.houski.ca/properties?api_key=$HOUSKI_API_KEY&country_abbreviation=gb&province_abbreviation=eng&city=manchester&score_flood_lte=3&score_flood_sort=asc&results_per_page=10&page=1&select=address,postal_code,property_type,construction_year,score_flood,score_fire&exclude=inferred"
The key is read from the HOUSKI_API_KEY environment variable and is never written into source code. The insurance page covers more of this use, and the finance page does the same for lenders.
What a UK property data request costs
Billing is on the values returned, never on how much was searched. Most fields cost $0.001 per value returned, and a field with no value for a home is not billed. The Manchester lookup above returns one row of seven fields.
Adding price_quote=true to any request returns its cost for free, with no data. Pay as you go has a $99 monthly minimum in United States dollars, and every account sets its own maximum monthly spend. The pricing page has the full table.
Get started
Access is self-serve, with no license needed. Get a key and send your first request for a British property with the quick start guide.
