Open Index
Datos públicos del Reino Unido por zona: precios de la vivienda, delitos registrados, privación, escuelas y más, con fuentes, fechas y enlaces de citación.
Servidor MCP alojado
npx add-mcp 'https://openindex.co.uk/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Dirección base
https://openindex.co.uk/v1
Formato
JSON, UTF-8. Cada respuesta tiene el mismo sobre.
Clave
No se necesita ninguna
Uso razonable
Unas 60 solicitudes por minuto por dirección IP
Actualizaciones
Instantáneas mensuales. Esta es 2026.10.8
OpenAPI 3.1
Inicio rápido
Pide un área por su código oficial. Hackney es E09000012; la búsqueda encuentra cualquier otra.
curl
curl https://openindex.co.uk/v1/places/E09000012
JavaScript
const res = await fetch("https://openindex.co.uk/v1/places/E09000012");
const { data, meta } = await res.json();
const price = data.headline["house-price-average"];
console.log(price.value, price.period); // 605729 "2026-07"
console.log(meta.sources.map((s) => s.credit)); // the credit lines to show
Cada respuesta es {data, meta}. meta.sources enumera las fuentes que hay detrás de los datos, cada una con su licencia y la línea de crédito que debes mostrar junto a ellos. meta.snapshot indica qué instantánea mensual respondió.
meta, del ejemplo
{
"snapshot": "2026.10.8",
"sources": [
{
"id": "ons-geography",
"name": "ONS boundaries, lookups and code history (Open Geography Portal)",
"publisher": "Office for National Statistics",
"licence": "OGL-3.0",
"licence_url": "https://www.ons.gov.uk/methodology/geography/licences",
"credit": "Source: Office for National Statistics licensed under the Open Government Licence v.3.0. Contains OS data © Crown copyright and database right 2026.",
"edition": null,
"published_at": null,
"retrieved_at": "2026-10-18T13:45:02Z"
},
{
"id": "ons-mye",
"name": "Mid-year population estimates",
"publisher": "Office for National Statistics, National Records of Scotland and the Northern Ireland Statistics and Research Agency",
"licence": "OGL-3.0",
"licence_url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/",
"credit": "Source: Office for National Statistics licensed under the Open Government Licence v.3.0.",
"edition": null,
"published_at": null,
"retrieved_at": "2026-10-15T17:37:24Z"
},
… 26 more
],
"docs": "https://openindex.co.uk/api#places",
"licence": {
"id": "CC-BY-4.0",
"name": "Creative Commons Attribution 4.0 International",
"url": "https://creativecommons.org/licenses/by/4.0/",
"covers": "Open Index's own text and the figures it works out. Each source in meta.sources keeps its own licence and credit line."
},
"credit": "Source: Open Index, openindex.co.uk",
"doi": "10.5281/zenodo.23508850"
}
Qué ofrece la API
GET /v1 Todos los endpoints, con enlaces a esta guía y al archivo OpenAPI.
Sin parámetros.
Ejemplo
GET https://openindex.co.uk/v1
Respuesta: data, abreviada
{
"name": "Open Index API",
"version": "v1",
"docs": "https://openindex.co.uk/api",
"openapi": "https://openindex.co.uk/v1/openapi.json",
"endpoints": [
{
"method": "GET",
"path": "/v1/places/{code}",
"summary": "One area",
"docs": "https://openindex.co.uk/api#places"
},
{
"method": "GET",
"path": "/v1/places/{code}/data",
"summary": "Every value for an area",
"docs": "https://openindex.co.uk/api#place-data"
},
… 7 more
]
}
Errores: 429, 503. Qué significan
Un área
GET /v1/places/{code} El nombre, nivel, tipo, padres, vecinos de un área y el último valor de cada capa publicada en su nivel, cada uno con su periodo, fecha de publicación, rango y comparaciones. Las capas sin valor aquí se enumeran en gaps con el motivo.
code ObligatoriopathEl código oficial del área, como E09000012 (Hackney). También funciona en minúsculas.
Ejemplo
GET https://openindex.co.uk/v1/places/E09000012
Respuesta: data, abreviada
{
"code": "E09000012",
"name": "Hackney",
"level": "council",
"type": "London borough",
"boundary_set": "LAD26",
"parents": [
{
"code": "E12000007",
"name": "London",
"level": "region",
"path": "/london",
"url": "https://openindex.co.uk/london"
},
{
"code": "E92000001",
"name": "England",
"level": "nation",
"path": "/england",
"url": "https://openindex.co.uk/england"
},
… 1 more
],
"headline": {
"house-price-average": {
"layer": "house-price-average",
"name": "Average house price",
"unit": "gbp",
"value": 605729,
"period": "2026-07",
"published_at": "2026-09-16",
"flags": [],
"rank": {
"position": 13,
"of": 360,
"scope": "uk",
"direction": "highest",
"position_desc": 13,
"tied": false
},
"parent": {
"code": "E12000007",
"name": "London",
"value": 550037,
"period": "2026-07"
},
"uk": {
"code": "K02000001",
"name": "United Kingdom",
"value": 272611,
"period": "2026-07"
},
"sources": ["uk-hpi"],
"derived": null
},
"age-15-to-64": {
"layer": "age-15-to-64",
"name": "Aged 15 to 64",
"unit": "percent",
"value": 74.1,
"period": "2021",
"published_at": "2026-07-21",
"flags": [],
"rank": {
"position": 10,
"of": 361,
"scope": "uk",
"direction": "highest",
"position_desc": 10,
"tied": false
},
"parent": { "code": "E12000007", "name": "London", "value": 70, "period": "2021" },
"uk": null,
"sources": ["ons-census-2021", "nrs-census-2022", "nisra-census-2021"],
"derived": null
},
… 79 more
},
"gaps": [
{
"layer": "council-tax-homes-band-i",
"period": "2026",
"flags": ["not-covered"],
"reasons": ["England has eight bands, A to H. Band I exists only in Wales."]
},
{
"layer": "crime-scotland-count",
"period": "2025/26",
"flags": ["not-covered"],
"reasons": ["This layer covers Scotland only. For England, see street-level crime."]
},
… 5 more
],
"links": {
"data": "https://openindex.co.uk/v1/places/E09000012/data",
"page": "https://openindex.co.uk/hackney"
},
… 14 more fields
}
Errores: 400, 404, 429, 503. Qué significan
Todos los valores de un área
GET /v1/places/{code}/data Todos los valores de capa del área en su propio nivel, cada uno con su periodo, fecha de publicación, indicadores en palabras, fuentes y licencias. Un valor null siempre viene con un motivo. Filtra a una sola familia con family.
code ObligatoriopathEl código oficial del área, como E09000012 (Hackney). También funciona en minúsculas.
family OpcionalquerySolo esta familia de capas, como housing.housing, crime, people, deprivation, health, education, environment, transport, connectivity, planning, economy, council-tax, elections, services
Ejemplo
GET https://openindex.co.uk/v1/places/E09000012/data?family=housing
Respuesta: data, abreviada
{
"place": {
"code": "E09000012",
"name": "Hackney",
"level": "council",
"level_name": "Council",
"type": "London borough",
"path": "/hackney",
"url": "https://openindex.co.uk/hackney"
},
"family": "housing",
"values": [
{
"layer": "house-price-average",
"name": "Average house price",
"family": "housing",
"unit": "gbp",
"precision": 0,
"level": "council",
"value": 605729,
"period": "2026-07",
"published_at": "2026-09-16",
"flags": [],
"notes": [],
"rank": {
"position": 13,
"of": 360,
"scope": "uk",
"direction": "highest",
"position_desc": 13,
"tied": false
},
"parent": {
"code": "E12000007",
"name": "London",
"value": 550037,
"period": "2026-07"
},
"uk": {
"code": "K02000001",
"name": "United Kingdom",
"value": 272611,
"period": "2026-07"
},
"sources": ["uk-hpi"],
"licences": ["OGL-3.0"],
"derived": null,
"links": { "layer": "https://openindex.co.uk/v1/layers/house-price-average" }
},
{
"layer": "house-price-change-1y",
"name": "Annual price change",
"family": "housing",
"unit": "percent",
"precision": 1,
"level": "council",
"value": -2.6,
"period": "2026-07",
"published_at": "2026-09-16",
"flags": [],
"notes": [],
"rank": {
"position": 31,
"of": 360,
"scope": "uk",
"direction": "lowest",
"position_desc": 328,
"tied": true
},
"parent": { "code": "E12000007", "name": "London", "value": -3.3, "period": "2026-07" },
"uk": {
"code": "K02000001",
"name": "United Kingdom",
"value": 1.4,
"period": "2026-07"
},
"sources": ["uk-hpi"],
"licences": ["OGL-3.0"],
"derived": null,
"links": { "layer": "https://openindex.co.uk/v1/layers/house-price-change-1y" }
},
… 14 more
],
… 1 more fields
}
Errores: 400, 404, 429, 503. Qué significan
Todas las capas
GET /v1/layers El catálogo: familias, cada capa con datos en esta instantánea (su unidad, niveles y periodos), y cada fuente con su licencia y línea de crédito.
Sin parámetros.
Ejemplo
GET https://openindex.co.uk/v1/layers
Respuesta: data, abreviada
{
"families": [
{ "id": "housing", "name": "Housing", "order": 1, "layers": 17 },
{ "id": "crime", "name": "Crime and justice", "order": 2, "layers": 19 },
… 12 more
],
"layers": [
{
"id": "age-15-to-64",
"slug": "age-15-to-64",
"name": "Aged 15 to 64",
"short_name": "15 to 64",
"family": "people",
"description": "The share of residents aged 15 to 64 at the census.",
"unit": "percent",
"kind": "share",
"better": "neutral",
"precision": 1,
"period_type": "census",
"geometry": "area",
"nations": ["E", "W", "S", "N"],
"finest_level": "output_area",
"levels": [
{
"level": "nation",
"level_name": "Nation",
"areas": 4,
"first": "2021",
"latest": "2021",
"count": 1
},
{
"level": "region",
"level_name": "Region",
"areas": 12,
"first": "2021",
"latest": "2021",
"count": 1
},
… 9 more
],
"derived": null,
"sources": ["ons-census-2021", "nrs-census-2022", "nisra-census-2021"],
"links": {
"self": "https://openindex.co.uk/v1/layers/age-15-to-64",
"values": "https://openindex.co.uk/v1/layers/age-15-to-64/values",
"page": "https://openindex.co.uk/sources/age-15-to-64",
"map": "https://openindex.co.uk/map/age-15-to-64"
}
},
{
"id": "age-65-and-over",
"slug": "age-65-and-over",
"name": "Aged 65 and over",
"short_name": "65 and over",
"family": "people",
"description": "The share of residents aged 65 and over at the census.",
"unit": "percent",
"kind": "share",
"better": "neutral",
"precision": 1,
"period_type": "census",
"geometry": "area",
"nations": ["E", "W", "S", "N"],
"finest_level": "output_area",
"levels": [
{
"level": "nation",
"level_name": "Nation",
"areas": 4,
"first": "2021",
"latest": "2021",
"count": 1
},
{
"level": "region",
"level_name": "Region",
"areas": 12,
"first": "2021",
"latest": "2021",
"count": 1
},
… 9 more
],
"derived": null,
"sources": ["ons-census-2021", "nrs-census-2022", "nisra-census-2021"],
"links": {
"self": "https://openindex.co.uk/v1/layers/age-65-and-over",
"values": "https://openindex.co.uk/v1/layers/age-65-and-over/values",
"page": "https://openindex.co.uk/sources/age-65-and-over",
"map": "https://openindex.co.uk/map/age-65-and-over"
}
},
… 128 more
],
"sources": [
{
"id": "bgs-radon",
"name": "Indicative atlas of radon (Great Britain and Northern Ireland)",
"publisher": "British Geological Survey and UK Health Security Agency",
"licence": "OGL-3.0",
"licence_url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/",
"credit": "Contains British Geological Survey materials © UKRI 2022. Radon Potential classification UK Health Security Agency © Crown copyright 2022. Contains OS data © Crown copyright 2020. Contains public sector information licensed under the Open Government Licence v3.0.",
"landing_url": "https://www.bgs.ac.uk/datasets/radon-data-indicative-atlas-of-radon/",
"cadence": "irregular",
"nations": ["E", "W", "S", "N"]
},
{
"id": "defra-air-maps",
"name": "Modelled background air pollution maps (1 km grid)",
"publisher": "Department for Environment, Food & Rural Affairs",
"licence": "OGL-3.0",
"licence_url": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/",
"credit": "Source: Defra, modelled background air pollution maps. Contains public sector information licensed under the Open Government Licence v3.0.",
"landing_url": "https://www.gov.uk/government/publications/air-quality-compliance-assessment-2025-modelled-data-and-reports",
"cadence": "annual",
"nations": ["E", "W", "S", "N"]
},
… 45 more
]
}
Errores: 429, 503. Qué significan
Una capa
GET /v1/layers/{id} Una capa: su descripción y advertencias, cada nivel con cada periodo, cortes de color, cobertura por nación, vacíos con motivos, indicadores en palabras y sus fuentes.
id ObligatoriopathUn id de capa de /v1/layers, como house-price-average. Su slug (house-prices) también funciona.Cualquier id de /v1/layers
Ejemplo
GET https://openindex.co.uk/v1/layers/house-price-average
Respuesta: data, abreviada
{
"id": "house-price-average",
"name": "Average house price",
"unit": "gbp",
"precision": 0,
"levels": [
{
"level": "uk",
"level_name": "United Kingdom",
"areas": 1,
"first": "1968-04",
"latest": "2026-07",
"count": 700,
"periods": ["1968-04", "1968-05", "1968-06", "1968-07", "1968-08", "1968-09", … 694 more],
"breaks": [175000, 225000, 275000, 350000, 450000, 600000],
"stats": {
"period": "2026-07",
"n": 1,
"min": 272611,
"median": 272611,
"max": 272611
},
"coverage": {}
},
{
"level": "nation",
"level_name": "Nation",
"areas": 4,
"first": "1968-04",
"latest": "2026-07",
"count": 700,
"periods": ["1968-04", "1968-05", "1968-06", "1968-07", "1968-08", "1968-09", … 694 more],
"breaks": [175000, 225000, 275000, 350000, 450000, 600000],
"stats": {
"period": "2026-07",
"n": 4,
"min": 196349,
"median": 208762,
"max": 293479
},
"coverage": {
"E": { "areas": 1, "with_value": 1 },
"W": { "areas": 1, "with_value": 1 },
"S": { "areas": 1, "with_value": 1 },
"N": { "areas": 1, "with_value": 1 }
}
},
… 2 more
],
"flag_labels": {
"no-data": "No figure for this area in this period.",
"not-covered": "Not published here.",
"former-code": "The publisher gives this figure under the area's former code. Open Index has matched it to today's area, whose boundary may differ slightly.",
"summed-from-neighbourhoods": "Worked out by Open Index by adding up the neighbourhood estimates inside this area.",
"shared-from-neighbourhoods": "Worked out by Open Index from neighbourhood estimates, shared out by where people lived at the census (by area in Northern Ireland). This area's edges do not follow neighbourhood edges, so the figure is close but not exact.",
"provisional": "HM Land Registry revises sales volumes for the latest 12 months as more sales are registered, so this figure may change.",
"no-type-price": "The UK House Price Index publishes no price for this type of home in this area.",
"no-type-price-ni": "The UK House Price Index publishes prices by property type for Northern Ireland as a whole, not for its councils.",
"series-starts-later": "Council figures start in January 2004 in Scotland and January 2005 in Northern Ireland.",
"excluded-low-sales": "The UK House Price Index leaves out the Isles of Scilly because it has very few sales each month."
},
"gaps": {
"level": "council",
"period": "2026-07",
"total": 1,
"by_flag": { "excluded-low-sales": 1 },
"areas": [
{
"code": "E06000053",
"name": "Isles of Scilly",
"flags": ["excluded-low-sales"],
"reason": "The UK House Price Index leaves out the Isles of Scilly because it has very few sales each month."
}
]
},
"links": {
"self": "https://openindex.co.uk/v1/layers/house-price-average",
"values": "https://openindex.co.uk/v1/layers/house-price-average/values",
"page": "https://openindex.co.uk/sources/house-prices",
"map": "https://openindex.co.uk/map/house-prices",
"download": "https://data.openindex.co.uk/s/2026.10.8/downloads/layers/house-price-average/council.csv"
},
… 19 more fields
}
Errores: 400, 404, 429, 503. Qué significan
El valor de cada área
GET /v1/layers/{id}/values El valor de cada área en un nivel y periodo, en orden de código. Las páginas contienen hasta 1.000 filas; sigue page.next para el resto. Los valores solo se dan para los niveles que publicó una fuente (ningún nivel se desglosa a áreas más finas).
id ObligatoriopathUn id de capa de /v1/layers, como house-price-average. Su slug (house-prices) también funciona.Cualquier id de /v1/layers
level OpcionalqueryEl nivel, como council. Por defecto, el nivel más fino que tiene la capa.uk, nation, region, council, constituency, postcode_area, postcode_district, town, ward, middle_area, neighbourhood, output_area, postcode, point
period OpcionalqueryEl periodo, como 2026-07, 2025 o 2025/26. Por defecto, el más reciente.2026-07, 2025, 2025/26 o latest
limit OpcionalqueryFilas por página, de 1 a 1.000.1 a 1000
cursor OpcionalqueryDesde page.next. Trátalo como opaco.
Ejemplo
GET https://openindex.co.uk/v1/layers/house-price-average/values?level=council&period=2026-07
Respuesta: data, abreviada
{
"layer": "house-price-average",
"level": "council",
"period": "2026-07",
"unit": "gbp",
"published_at": "2026-09-16",
"values": [
{ "code": "E06000001", "name": "Hartlepool", "value": 136894, "flags": [] },
{ "code": "E06000002", "name": "Middlesbrough", "value": 140909, "flags": [] },
… 359 more
],
"page": { "limit": 1000, "count": 361, "total": 361, "next": null },
… 5 more fields
}
Errores: 400, 404, 429, 503. Qué significan
Las áreas en las que se encuentra un código postal
GET /v1/postcodes/{postcode} Cada área en la que se encuentra un código postal activo, desde el Reino Unido hacia abajo, y su ubicación con una precisión de unos 10 metros. Solo Gran Bretaña: los códigos postales de Irlanda del Norte (BT) responden 404 porque su licencia solo permite uso interno.
postcode ObligatoriopathUn código postal completo. Los espacios y las mayúsculas no importan: E81AA, e8-1aa y E8%201AA funcionan todos.
Ejemplo
GET https://openindex.co.uk/v1/postcodes/E81AA
Respuesta: data, abreviada
{
"postcode": "E8 1AA",
"district": "E8",
"sector": "E8 1",
"location": { "lon": -0.0617, "lat": 51.548 },
"areas": {
"council": {
"code": "E09000012",
"name": "Hackney",
"path": "/hackney",
"url": "https://openindex.co.uk/hackney",
"api": "https://openindex.co.uk/v1/places/E09000012"
},
"uk": {
"code": "K02000001",
"name": "United Kingdom",
"path": "/united-kingdom",
"url": "https://openindex.co.uk/united-kingdom",
"api": "https://openindex.co.uk/v1/places/K02000001"
},
… 7 more
},
"links": { "page": "https://openindex.co.uk/postcode/e8-1aa" }
}
Errores: 400, 404, 429, 503. Qué significan
Buscar lugares, capas y códigos postales
GET /v1/search Los mismos resultados que la barra de búsqueda: lugares ordenados primero los exactos, luego por tipo y tamaño; capas por nombre y sinónimos; códigos postales, sectores y distritos por patrón. "crime in hackney" se divide en una capa y un lugar.
q ObligatorioqueryQué buscar, de 1 a 100 caracteres.
limit OpcionalqueryResultados por grupo, de 1 a 50.1 a 50
Ejemplo
GET https://openindex.co.uk/v1/search?q=hackney&limit=3
Respuesta: data, abreviada
{
"query": "hackney",
"parts": null,
"places": [
{
"name": "Hackney",
"kind": "council",
"kind_label": "Council",
"code": "E09000012",
"context": "London borough",
"path": "/hackney",
"url": "https://openindex.co.uk/hackney",
"api": "https://openindex.co.uk/v1/places/E09000012",
"lon": -0.0551,
"lat": 51.5498
},
{
"name": "Hackney",
"kind": "place",
"kind_label": "Place",
"code": "E02000427",
"context": "Place in Haringey",
"path": "/haringey/harringay-ladder-south",
"url": "https://openindex.co.uk/haringey/harringay-ladder-south",
"api": "https://openindex.co.uk/v1/places/E02000427",
"lon": -0.0966,
"lat": 51.5711
},
… 1 more
],
"layers": [],
"postcode": null,
"notes": []
}
Errores: 400, 429, 503. Qué significan
La instantánea que responde
GET /v1/snapshot Qué instantánea está activa, cuándo se construyó, sus niveles y conjuntos de límites, cada edición de fuente que contiene, sus resultados de comprobación y dónde están sus descargas.
Sin parámetros.
Ejemplo
GET https://openindex.co.uk/v1/snapshot
Respuesta: data, abreviada
{
"snapshot": "2026.10.8",
"created_at": "2026-10-20T01:20:42Z",
"levels": ["uk", "nation", "region", "council", "constituency", "postcode_area", … 6 more],
"boundary_sets": {
"uk": ["K02000001"],
"nation": ["CTRY25"],
"region": ["CTRY25", "RGN25"],
"council": ["LAD26"],
"constituency": ["PCON24"],
"ward": ["WD26"],
"middle_area": ["IZ22", "MSOA21", "SDZ21"],
"neighbourhood": ["DZ21", "DZ22", "LSOA21"],
"output_area": ["OA21", "OA22"],
"neighbourhood@DZ11": ["DZ11"],
"neighbourhood@SOA01": ["SOA01"],
"postcode_area": ["PCA-ONSPD_AUG26"],
"postcode_district": ["PCD-ONSPD_AUG26"],
"town": ["BUA22"]
},
"areas": {
"uk": 1,
"nation": 4,
"region": 12,
"council": 361,
"constituency": 650,
"postcode_area": 120,
"postcode_district": 2863,
"town": 1209,
"ward": 8413,
"middle_area": 9448,
"neighbourhood": 46844,
"output_area": 235243
},
"layers": 130,
"sources": [
{
"id": "bgs-radon",
"edition": "Indicative Atlas of Radon: GB v3, NI v1",
"published_at": "2022-12-01",
"retrieved_at": "2026-10-19T16:07:49Z"
},
{
"id": "defra-air-maps",
"edition": "Background maps 2025 (CMAQ-Urban, 1 km)",
"published_at": "2026-10-09",
"retrieved_at": "2026-10-15T18:46:18Z"
},
… 95 more
],
"checks": { "passed": 1457, "warnings": 78, "failed": 0 },
"downloads": "https://data.openindex.co.uk/s/2026.10.8/downloads/index.json",
… 2 more fields
}
Errores: 429, 503. Qué significan
Esta API como OpenAPI 3.1
GET /v1/openapi.json Generado a partir de las definiciones de rutas y el catálogo de esta instantánea: los ids de capa, familias, niveles y unidades son enums.
Sin parámetros.
Ejemplo
GET https://openindex.co.uk/v1/openapi.json
Errores: 429, 503. Qué significan
Para asistentes de IA (MCP)
Las mismas cifras como herramientas que un asistente puede llamar, mediante el Model Context Protocol. Sin clave, sin inicio de sesión.
Servidor
https://openindex.co.uk/mcp
Transporte
Streamable HTTP. Sin estado: sin sesiones, no se almacena nada
Protocolo
2026-07-28, y 2025-03-26 a 2025-11-25 para clientes más antiguos
Claude Code
claude mcp add --transport http open-index https://openindex.co.uk/mcp
search_places Lugares y códigos postales por nombre, con el código, nivel y página de cada uno.
get_place Las cifras clave de un área, o todas las cifras de un tema, cada una con su periodo, fuente y un enlace a la cifra.
get_ranking Concejos clasificados según una medida en todo el Reino Unido, una nación o una región de Inglaterra.
compare_places Dos áreas del mismo nivel una al lado de la otra.
lookup_postcode Las áreas en las que se encuentra un código postal de Gran Bretaña, o los concejos que cubre un distrito.
search Documentos de área para investigación profunda, con una ruta de página, título y URL de cita.
fetch Un documento de área por su ruta de página, con las mismas cifras clave y fuentes que get_place.
Las respuestas de cifras son texto plano breve. Cada una termina con una cita: la página a la que enlazar, cada fuente con su licencia, fechas y línea de crédito, y el propio crédito de Open Index. Se aplican las mismas reglas de licencia que en la API, y las medidas que cada nación elabora a su manera, como la privación, nunca se clasifican ni se comparan entre naciones.
Errores
Los errores usan una sola forma, con palabras que dicen qué funcionaría en su lugar.
404
{
"error": {
"code": "not_found",
"message": "No area with code E09999999 in this snapshot."
}
}
400 bad_request La solicitud está mal formada: un parámetro desconocido, un código incorrecto, o un nivel o periodo que la capa no tiene. El mensaje dice qué funcionaría.
404 not_found No existe tal área, capa, código postal o endpoint en esta instantánea, o es un código postal de Irlanda del Norte.
405 method_not_allowed Cualquier cosa que no sea GET, HEAD u OPTIONS. La API solo lee.
429 rate_limited Demasiadas solicitudes desde una misma dirección. Espera un minuto y vuelve a intentarlo.
503 unavailable Los datos no se pudieron leer en este momento. Vuelve a intentarlo en breve. Nunca se almacena en caché.
Límites y caché
Sin clave, cada dirección IP puede hacer unas 60 solicitudes por minuto. Pasado ese límite, la API responde 429 durante un breve periodo; espera un minuto y vuelve a intentarlo. Las claves con límites más altos llegarán más adelante. Para capas completas, las descargas son más rápidas que paginar por la API.
Las respuestas se pueden almacenar en caché durante una hora (Cache-Control: public, max-age=3600). Cada una tiene un ETag: envíalo de vuelta en If-None-Match y una respuesta sin cambios será un 304 sin cuerpo. El encabezado X-Snapshot indica la instantánea, para que puedas saber cuándo cambiaron los datos.
CORS está abierto (Access-Control-Allow-Origin: *), así que una página web puede llamar a la API directamente. Solo se responden GET, HEAD y OPTIONS.
Licencias y crédito
Los datos pertenecen a sus editores. La mayoría está bajo la Open Government Licence v3.0, que te permite copiarlos, publicarlos y adaptarlos, incluso comercialmente, siempre que acredites la fuente. Muestra la línea credit de cada fuente en meta.sources junto a cualquier cosa que hagas con ellos, y revisa cada licence: unas pocas fuentes usan otras licencias abiertas.
Las cifras que Open Index calcula por sí mismo, como los precios de la vivienda frente al salario, llevan una etiqueta derived ("Calculado por Open Index a partir de …"). Mantén esa etiqueta con la cifra. Ellas, y el propio texto de Open Index, están bajo licencia CC BY 4.0: acredítalos como "Source: Open Index, openindex.co.uk". Cada respuesta lo indica en meta.licence y meta.credit, y da el DOI que se debe citar en meta.doi (10.5281/zenodo.23508850 para esta instantánea).
Algunas cosas nunca se sirven, porque sus licencias no lo permiten: los campos de dirección de Price Paid Data y los certificados energéticos, y los códigos postales de Irlanda del Norte (BT), que tienen licencia solo para uso interno.
Versionado
/v1 nunca cambia de forma. Se pueden añadir campos, pero ninguno se elimina ni se renombra, así que ignora los campos que no conozcas. Un cambio que rompiera esa promesa pasaría a /v2, anunciado en el changelog con /v1 manteniéndose en funcionamiento en paralelo.
Los números sí cambian: cada instantánea mensual trae nuevos periodos, y los editores revisan las cifras recientes. Cada valor lleva su periodo y fecha de publicación, para que puedas saber qué edición tienes.
Cada capa en CSV y Parquet, los límites en GeoJSON y GeoParquet, y el registro y las búsquedas de códigos postales en Parquet: 1.884 archivos, listados en downloads/index.json, con cada línea de crédito y licencia en LICENCE.txt. La página de cada capa en Sources enlaza su propio CSV.