Location
location da acceso a la jerarquía territorial: país, comunidad autónoma, provincia y municipio. Sirve para encontrar el geo_id de un lugar y saber qué normativas le aplican.
Ruta base: /api/v1/location
Los dos endpoints pertenecen al grupo de datos: 60 peticiones por minuto y sin consumo de cuota. Con una clave de prueba responden 403 not_available_in_sandbox.
Estructura del geo_id
Section titled “Estructura del geo_id”El identificador geográfico lleva el prefijo del país y sigue los códigos del INE:
ES País (España)ES-C01 Comunidad autónoma (Andalucía)ES-41 Provincia (Sevilla)ES-41091 Municipio (Sevilla)GET /api/v1/location/search
Section titled “GET /api/v1/location/search”GET Buscar territorios
Busca por nombre en todos los niveles: municipio, provincia, comunidad autónoma o país. No distingue mayúsculas ni tildes y acepta nombres parciales. Devuelve como máximo 50 resultados.
Parámetros de query
Section titled “Parámetros de query”| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
q | string | Sí | Texto que debe aparecer en el nombre |
level | string | No | Filtra por nivel: country, region, province o municipality |
ancestor_id | string | No | Busca solo dentro de un territorio (por ejemplo, ES-41 para la provincia de Sevilla) |
Ejemplo de petición
Section titled “Ejemplo de petición”GET /api/v1/location/search?q=sevilla&level=municipalityAuthorization: Bearer sk-normatia-...Respuesta 200
Section titled “Respuesta 200”{ "results": [ { "geo_id": "ES-41091", "name": "Sevilla", "level": "municipality" } ]}Campos de respuesta
Section titled “Campos de respuesta”| Campo | Tipo | Descripción |
|---|---|---|
results | array | Coincidencias, ordenadas por nivel (país, comunidad, provincia, municipio) y después por nombre |
results[].geo_id | string | Identificador geográfico |
results[].name | string | Nombre del territorio |
results[].level | string | country, region, province o municipality |
GET /api/v1/location/{geo_id}
Section titled “GET /api/v1/location/{geo_id}”GET Detalle de un territorio
Devuelve el territorio con sus ancestros, sus datos técnicos y las normativas que le aplican, tanto las suyas como las heredadas de la provincia, la comunidad autónoma y el país.
Parámetros de ruta
Section titled “Parámetros de ruta”| Parámetro | Tipo | Descripción |
|---|---|---|
geo_id | string | Identificador de cualquier nivel. No distingue mayúsculas. Ej.: ES-41091 |
Ejemplo de petición
Section titled “Ejemplo de petición”GET /api/v1/location/ES-41091Authorization: Bearer sk-normatia-...Respuesta 200
Section titled “Respuesta 200”Ejemplo abreviado, con valores ilustrativos:
{ "geo_id": "ES-41091", "name": "Sevilla", "level": "municipality", "ancestors": [ { "geo_id": "ES", "name": "España", "level": "country" }, { "geo_id": "ES-C01", "name": "Andalucía", "level": "region" }, { "geo_id": "ES-41", "name": "Sevilla", "level": "province" } ], "tech_data": { "climate_zone": "B4" }, "applicable_codes": [ { "slug": "cte-db-he", "title": "CTE DB-HE Ahorro de energía", "normative_scope": "national", "match_reason": "inherited" }, { "slug": "pgou-sevilla", "title": "Plan General de Ordenación Urbanística de Sevilla", "normative_scope": "municipal", "match_reason": "direct" } ]}Campos de respuesta
Section titled “Campos de respuesta”| Campo | Tipo | Descripción |
|---|---|---|
geo_id | string | Identificador geográfico |
name | string | Nombre del territorio |
level | string | Nivel geográfico |
ancestors | object[] | Territorios que lo contienen, del más amplio (país) al más cercano |
ancestors[].geo_id | string | Identificador del ancestro |
ancestors[].name | string | Nombre del ancestro |
ancestors[].level | string | Nivel del ancestro |
tech_data | object | null | Datos técnicos del territorio. null si no tiene ninguno. Ver la tabla siguiente |
applicable_codes | object[] | Normativas que aplican al territorio, ordenadas por ámbito y título |
applicable_codes[].slug | string | Identificador de la normativa (el que usa Codes) |
applicable_codes[].title | string | Título |
applicable_codes[].normative_scope | string | Ámbito: national, regional, provincial, municipal, sectoral, supramunicipal o european |
applicable_codes[].match_reason | string | direct si está asociada a este mismo territorio, inherited si la hereda de un ancestro |
tech_data
Section titled “tech_data”Cada territorio trae solo las claves que tiene informadas, por lo general los municipios. Estas son las que puede contener:
| Clave | Contenido |
|---|---|
climate_zone | Zona climática del CTE (por ejemplo, B4) |
winter_zone, thermal_zone, roof_climate_zone | Otras zonificaciones climáticas |
altitude_m, latitude, longitude, area_km2, population | Datos geográficos y de población |
wind_zone, snow_overload | Viento y sobrecarga de nieve |
seismic_acceleration, seismic_k_coefficient, seismic_acceleration_below_004 | Datos sísmicos |
radon_zone, lightning_intensity, is_extrapeninsular | Radón, densidad de impactos de rayo y territorio extrapeninsular |
rain_zone, rain_avg_zone, pluv_zone, isoy_mmh, pluv_intensity_mmh | Lluvia e intensidad pluviométrica |
mains_water_temp_monthly, solar_rad_monthly | Series mensuales de temperatura del agua de red y radiación solar |
design_temp_winter_c, design_temp_summer_c | Temperaturas de cálculo de invierno y verano |
Errores
Section titled “Errores”| Estado | detail.error | Cuándo |
|---|---|---|
| 404 | not_found | El geo_id no existe |