Skip to content

Normativa (v1)

La normativa como dato: el catálogo, las versiones de cada norma, su índice y el texto de cada sección, artículo a artículo. No consume cuota (grupo de datos). Para preguntar sobre la normativa en lenguaje natural, ask.

EndpointQué devuelve
GET /v1/regulationsEl catálogo, con la versión vigente de cada norma
GET /v1/regulations/{slug}Una norma, sus versiones y sus documentos relacionados
GET /v1/regulations/{slug}/contentsEl índice de secciones de una versión
GET /v1/regulations/{slug}/sections/{section}El texto de una sección

Los identificadores son estables: la norma es su slug (cte-db-he), la versión el suyo (2022), la sección el suyo dentro de la versión y cada bloque (un artículo, un apartado) el suyo dentro de la sección.

GET /v1/regulations?q=energía&scope=national&limit=20

ParámetroDescripción
qTexto en el título
scopenational, regional o municipal
tagUna etiqueta
placeES- y el código INE: las normas que aplican a ese municipio, de la estatal a la municipal
curatedtrue: solo las de texto curado a mano. false: las de texto automático o sin texto
limitHasta 100 (20 por defecto)
cursorEl next_cursor de la respuesta anterior
{
"object": "list",
"data": [
{
"object": "regulation",
"slug": "cte-db-he",
"title": "Documento Básico HE - Ahorro de Energía",
"short_title": "CTE DB-HE",
"scope": "national",
"tags": [],
"current_version": {
"version": "2022", "title": "Documento Básico HE - Ahorro de Energía", "status": "active",
"published_date": null, "effective_date": null, "has_text": true, "curated": true,
"source_url": "https://www.codigotecnico.org/pdf/Documentos/HE/DBHE.pdf"
}
}
],
"has_more": true,
"next_cursor": "eyJvIjogMjB9"
}

GET /v1/regulations/cte-db-he añade la descripción, todas las versiones (versions, la vigente primero) y los documentos relacionados (related_documents: comentarios, guías, documentos de apoyo), que no tienen texto en la API pero sí el enlace a su original.

Solo las versiones que Normatia ha procesado tienen texto: lo dice has_text. De las demás, source_url lleva al documento original.

El texto de cada versión es de una de dos clases, y curated dice cuál:

curatedQué quiere decir
trueRevisado a mano por Normatia: artículos, numeración, tablas y listas contrastados con el original
falseConvertido de forma automática desde el documento original y sin revisar: puede tener errores de lectura, numeración o estructura

La mayor parte de la normativa estatal y autonómica está curada; buena parte del planeamiento municipal es automático. Si un dato va a sostener una decisión, contrasta el texto automático con source_url.

GET /v1/regulations/cte-db-he/contents devuelve las secciones de la versión vigente; con version=2019, las de esa.

GET /v1/regulations/cte-db-he/sections/seccion-he-0-limitacion-del-consumo-energetico devuelve sus bloques en orden:

{
"object": "section",
"regulation": "cte-db-he",
"version": { "version": "2022", "status": "active", "has_text": true, "curated": true, "...": "..." },
"slug": "seccion-he-0-limitacion-del-consumo-energetico",
"title": "Sección HE 0 Limitación del consumo energético",
"blocks": [
{
"slug": "1-ambito-de-aplicacion",
"parent": null,
"type": "article",
"level": 3,
"title": "1 Ámbito de aplicación",
"text": "1 Ámbito de aplicación. Esta sección es de aplicación a: edificios de nueva construcción; ...",
"html": null
}
]
}

parent es el slug del bloque que lo contiene. Con format=html, cada bloque trae también su texto con formato (tablas, listas).

EstadocodeCuándo
404regulation_not_foundNo hay ninguna norma con ese slug
404version_not_foundLa norma no tiene esa versión (o es un documento relacionado, sin texto)
404section_not_foundLa versión no tiene esa sección. El índice está en /contents
404place_not_foundEl place no existe
422invalid_cursorEl cursor no es uno de los que da la API