Skip to content

Verify

POST Verificar cumplimiento normativo

Recibe un elemento constructivo con su parámetro y valor, busca la normativa aplicable mediante búsqueda semántica y devuelve un resultado estructurado de cumplimiento con citas trazables.

El RAG determina automáticamente la dirección del límite (máximo, mínimo, igualdad). El caller solo proporciona el valor que quiere verificar. El contexto del proyecto se expresa en texto libre — no hay catálogo de campos ni esquema predefinido.

CabeceraRequeridaDescripción
AuthorizationBearer sk-normatia-xxxxx
Content-Typeapplication/json

CampoTipoRequeridoDescripción
elementstringElemento constructivo o instalación a verificar (texto libre, máx. 500 car.)
parameterstringParámetro o requisito que se comprueba (texto libre, máx. 200 car.)
valuenumberValor del proyecto a verificar
unitstringUnidad del valor (ej. W/m²K, lux, dB)
geo_idstringID geográfico del municipio (ej. ES-41091)
codesarray | nullNoNormativas concretas contra las que verificar. Si null, usa todas las aplicables al geo_id
codes[].slugstring (en el item)Slug de la normativa
codes[].versionstring | nullNoVersión concreta. Si se omite, usa todos los documentos active
building_usestring | nullNoUso del edificio (texto libre, opcional)

Verificación numérica — transmitancia térmica:

POST /api/v1/verify
Authorization: Bearer sk-normatia-xxxxx
Content-Type: application/json
{
"element": "Fachada de ladrillo cara vista",
"parameter": "transmitancia térmica",
"value": 0.35,
"unit": "W/m²K",
"geo_id": "ES-41091",
"building_use": "Residencial unifamiliar",
"codes": [
{ "slug": "cte-db-he" }
]
}

Consulta con versión histórica concreta:

{
"element": "Fachada de ladrillo cara vista",
"parameter": "transmitancia térmica",
"value": 0.38,
"unit": "W/m²K",
"geo_id": "ES-41091",
"codes": [
{ "slug": "cte-db-he", "version": "2019" }
]
}

Sin acotar normativas — usa todas las aplicables al municipio:

{
"element": "Cubierta plana no transitable",
"parameter": "transmitancia térmica",
"value": 0.30,
"unit": "W/m²K",
"geo_id": "ES-28079"
}

Ejemplo — resultado conforme:

{
"is_compliant": true,
"result_status": "compliant",
"element": "Fachada de ladrillo cara vista",
"parameter": "transmitancia térmica",
"provided_value": 0.35,
"limit_value": 0.41,
"unit": "W/m²K",
"margin": 0.06,
"conditions": [],
"sources": [
{
"code_slug": "cte-db-he",
"version": "2022",
"section_title": "HE 1 Tabla 3.1.1.a — Transmitancia límite fachadas",
"content_excerpt": "Para la zona climática B4, la transmitancia máxima en fachadas es 0,41 W/m²K."
}
],
"geo_context": {
"geo_id": "ES-41091",
"name": "Mairena del Aljarafe",
"climate_zone": "B4"
},
"warnings": []
}

Ejemplo — resultado condicional:

{
"is_compliant": true,
"result_status": "conditional",
"element": "Aparcamiento subterráneo",
"parameter": "sistema de extracción de humos",
"provided_value": 1,
"limit_value": null,
"unit": "boolean",
"margin": null,
"conditions": [
"El caudal de extracción debe ser ≥ 150 l/s por plaza según CTE DB-SI 3.",
"El sistema debe disponer de detector de CO con activación automática por encima de 50 ppm."
],
"sources": [
{
"code_slug": "cte-db-si",
"version": "2022",
"section_title": "SI 3 — Evacuación de ocupantes",
"content_excerpt": "Los aparcamientos de más de 5 plazas dispondrán de un sistema de extracción mecánica..."
}
],
"geo_context": {
"geo_id": "ES-28079",
"name": "Madrid",
"climate_zone": "D3"
},
"warnings": []
}
CampoTipoDescripción
is_compliantbooleantrue si el valor cumple el límite normativo
result_statusstringEstado del resultado (ver tabla más abajo)
elementstringEco del elemento del request
parameterstringEco del parámetro del request
provided_valuenumberEco del valor del request
limit_valuenumber | nullLímite normativo cuantificable encontrado. null en verificaciones booleanas o undetermined
unitstringEco de la unidad del request
marginnumber | nulllimit_value − provided_value. Positivo = cumple
conditionsstring[]Condiciones adicionales que aplican aunque el resultado sea compliant. Vacío si no las hay
sourcesobject[]Bloques normativos usados para determinar el cumplimiento
sources[].code_slugstringSlug de la normativa de origen
sources[].versionstring | nullVersión concreta del documento
sources[].section_titlestring | nullSección o tabla específica donde se encuentra el límite
sources[].content_excerptstring | nullFragmento del texto normativo relevante
geo_contextobject | nullContexto geográfico resuelto
geo_context.geo_idstringID geográfico
geo_context.namestringNombre de la localización
geo_context.climate_zonestring | nullZona climática extraída del tech_data
warningsstring[]Avisos no bloqueantes sobre limitaciones de la respuesta
ValorSignificado
compliantEl valor cumple el límite normativo sin condiciones adicionales
conditionalEl valor está dentro del límite pero existen condiciones adicionales que también deben cumplirse
non_compliantEl valor supera o incumple el límite normativo
undeterminedNo se encontró un límite normativo para este parámetro y contexto en las fuentes disponibles
StatusCódigoCondición
400invalid_codeUn slug de normativa no existe
403plan_not_allowedEl plan no tiene api_access
404location_not_foundEl geo_id no existe
429quota_exceededSe han agotado los créditos del plan