Parcelas
Parcelas
Section titled “Parcelas”GET /v1/parcels/{ref} devuelve una parcela por su referencia catastral, y GET /v1/parcels?lat=&lon=, las de un punto. Todo sale de la base territorial de Normatia, que reúne el Catastro, las capas de afección y el planeamiento de cada municipio con su fuente. No se consulta nada en vivo.
No consume cuota: pertenece al grupo de datos (60 peticiones por minuto). Los errores van en el formato de /v1, descrito en Errores.
curl "https://api.normatia.com/v1/parcels/6963301TG3466N?include=constraints,buildings" \ -H "Authorization: Bearer $NORMATIA_API_KEY"Todos los ejemplos de esta página funcionan con una clave de prueba: sus parcelas están en el entorno de pruebas.
Parámetros
Section titled “Parámetros”| Parámetro | Dónde | Descripción |
|---|---|---|
ref | ruta | Referencia catastral de 14 caracteres. Con los 20 de un inmueble, devuelve su parcela |
include | consulta | Bloques que añadir, separados por comas: constraints, zoning, buildings, units, geometry |
Respuesta
Section titled “Respuesta”Una parcela real de Sevilla, la del parque empresarial Torneo, con un edificio de 2.633 inmuebles (abreviada):
{ "object": "parcel", "ref": "6963301TG3466N", "place": { "geo_id": "ES-41091", "ine": "41091", "name": "SEVILLA" }, "cadastral_class": { "code": "urban", "label": "Urbana" }, "main_use": "residencial", "area_m2": 31648.0, "centroid": { "lat": 37.425128, "lon": -5.974094 }, "bbox": [-5.975714, 37.424103, -5.97282, 37.426162], "addresses": [ { "street": "CL ASTRONOMIA", "number": "S-N", "postal_code": "41015" }, { "street": "CU TORNEO PARQUE EMPRESARIAL", "number": "5", "postal_code": "41015" } ], "constraints": { "summary": { "affected": 3, "context": 10, "not_affected": 19, "no_data": 4 }, "layers": ["..."] }, "zoning": null, "buildings": { "built": true, "condition": "funcional", "year_built": 2006, "built_area_m2": 110927.0, "dwellings": 0, "units": 2633, "floors_above": 13, "floors_below": 2, "source": "Dirección General del Catastro (INSPIRE, edificios)" }, "units": null, "geometry": null, "disclaimer": "Información orientativa a partir de fuentes oficiales. No sustituye a certificados ni a informes oficiales."}Los bloques que no se piden en include salen null.
Afecciones (constraints)
Section titled “Afecciones (constraints)”Cada capa sale una vez, con uno de estos estados:
status | affected | Qué quiere decir |
|---|---|---|
affected | true | La afecta |
partially_affected | true | Afecta a una parte de la parcela |
context | false | No la afecta, pero hay un dato cercano que conviene saber (por ejemplo, un helipuerto a 2 km) |
not_affected | false | Comprobada y sin afección |
no_data | null | No hay datos de esa capa en su municipio (reason: "no_coverage") |
Una capa de esa misma parcela:
{ "layer": "vias_pecuarias", "affected": true, "status": "affected", "label": "A verificar", "summary": "Cañada Real del Bodegon de las Cañas O de Cordoba a Sevilla, clasificada, a 0 m", "distance_m": 0.0, "warnings": ["Cobertura best_effort: la ausencia de resultado no garantiza ausencia de afección"], "reason": "la distancia es a la traza cartográfica; la anchura legal la fija el acto de clasificación", "source": "MITECO / IEPNB"}label es la etiqueta del informe de afecciones de Normatia: Afecta, Exige trámite, Riesgo técnico, A verificar (el dato de la fuente es dudoso y reason dice por qué) o Informativa (contexto: status: "context").
Planeamiento (zoning)
Section titled “Planeamiento (zoning)”La clase de suelo, la zona de ordenanza principal con el porcentaje de la parcela que cae en ella y sus parámetros validados, las otras zonas que la tocan y los ámbitos de planeamiento. Cada uno lleva su fuente, su fecha y el instrumento. Si el planeamiento de su municipio no está cargado, zone y land_class salen null.
De la parcela 8058503DF2885G, en Barcelona:
{ "land_class": { "source": "Ajuntament de Barcelona", "date": "2026-10-03", "instrument": "PGM", "label": "Suelo urbano consolidado" }, "zone": { "source": "Ajuntament de Barcelona", "date": "2026-10-03", "instrument": "PGM", "code": "20a/9", "name": "Edificació aïllada, subzona plurifamiliar IVa", "percent": 94.1, "global_use": "Residencial multifamiliar", "typology": "Edificació aïllada", "parameters": { "edificabilidad": { "value": 1.0, "unit": "m2t/m2s", "text": null }, "frente_min_m": { "value": 14.0, "unit": "m", "text": null } } }, "other_zones": [], "areas": [], "zone_from_other_municipality": false, "contrast_land_class": { "source": "Ministerio de Vivienda y Agenda Urbana", "date": "2023-01-01", "instrument": "Plan General (1976)", "label": "Suelo urbano consolidado" }}Solo salen los parámetros que se han podido validar. contrast_land_class es la clase de suelo de una fuente de contraste (el Sistema de Información Urbana), aparte de la del planeamiento.
Edificación (buildings)
Section titled “Edificación (buildings)”Lo edificado según el Catastro: estado, año, superficie construida, viviendas, inmuebles y plantas. null si el Catastro de edificios no está cargado en su municipio; built: false si está cargado y no hay nada edificado.
Inmuebles (units)
Section titled “Inmuebles (units)”Los inmuebles catastrales de la parcela: el total y cuántos hay de cada uso, y la lista con la referencia de 20 caracteres, el uso, la superficie, el año y la dirección. Nunca la escalera, la planta ni la puerta. La lista trae como mucho 200 de cada uso: si hay más, has_more es true y total y by_use los cuentan todos. null si los datos del Catastro no están cargados en su municipio.
{ "total": 2633, "by_use": { "almacen_estacionamiento": 1755, "oficinas": 764, "comercial": 114 }, "data": [ { "ref": "6963301TG3466N2130LH", "use": "almacen_estacionamiento", "area_m2": 15, "year_built": 2006, "address": "CU TORNEO PARQUE EMPRESARIAL 5 CROS SAN JERONIMO MZ-5", "postal_code": "41015" } ], "has_more": true, "source": "Dirección General del Catastro", "date": "2026-08-14", "note": "Elaborado a partir de datos del Catastro. No es información catastral."}Geometría (geometry)
Section titled “Geometría (geometry)”El polígono de la parcela en GeoJSON (RFC 7946: longitud y latitud WGS84).
Las parcelas de un punto
Section titled “Las parcelas de un punto”GET /v1/parcels?lat=37.425128&lon=-5.974094 devuelve la parcela que contiene el punto o, si no cae en ninguna, las que están a menos de 50 m, de la más cercana a la más lejana, con su distancia.
{ "object": "list", "data": [{ "ref": "6963301TG3466N", "contains_point": true, "distance_m": null }], "has_more": false}Con una clave de prueba, solo encuentra las parcelas de prueba que contienen el punto: el centro de cada una está en GET /v1/sandbox.
Una lista vacía quiere decir que no hay ninguna parcela cerca (el mar, una plaza grande) o que el territorio no está en la base. Un punto fuera de España responde 422 point_outside_spain.
La búsqueda por dirección llegará con el buscador de direcciones de la base territorial.
Errores
Section titled “Errores”| Estado | code | Cuándo |
|---|---|---|
| 404 | parcel_not_found | La referencia no existe o su municipio no está en la base territorial |
| 404 | not_in_sandbox | Con una clave de prueba, la parcela no está en el entorno de pruebas |
| 422 | invalid_ref | La referencia no tiene 14 (o 20) caracteres válidos |
| 422 | invalid_include | Se pidió un bloque que no existe. El cuerpo trae allowed |
| 422 | point_outside_spain | El punto está fuera de España |
| 503 | parcel_data_unavailable | La base territorial no respondió a tiempo (más de 8 s). Reintenta tras Retry-After |