Skip to content

Verify

POST Verificar un parámetro técnico

Recibe un elemento constructivo con su parámetro y su valor, busca en la normativa vigente que aplica al municipio y devuelve un resultado estructurado: si cumple, el valor límite encontrado, las condiciones y las fuentes.

La evaluación la hace un modelo de lenguaje a partir de los fragmentos normativos recuperados. No es un cálculo determinista: trata el resultado como una primera comprobación con sus fuentes, no como una certificación.

Requisito: el municipio de tu proyecto activo

Section titled “Requisito: el municipio de tu proyecto activo”

verify solo verifica en el municipio de tu proyecto activo en normatia.com:

  • Si no tienes proyecto activo, responde 400 no_active_project.
  • Si el proyecto activo no tiene municipio, responde 400 no_project_location.
  • Si el geo_id de la petición no es el del proyecto activo, responde 422 geo_id_mismatch.

El proyecto activo se cambia en la web. Para saber cuál es y su geo_id, usa GET /api/v1/projects: es el que tiene is_active: true.

CabeceraRequeridaDescripción
AuthorizationSíBearer sk-normatia-...
Content-TypeSíapplication/json
CampoTipoRequeridoDescripción
elementstringSíElemento constructivo o instalación (texto libre, de 1 a 500 caracteres)
parameterstringSíParámetro o requisito que se comprueba (texto libre, de 1 a 200 caracteres)
valuenumberSíValor del proyecto. Debe ser mayor o igual que 0
unitstringSíUnidad del valor (por ejemplo, W/m²K, m, dB), de 1 a 50 caracteres
geo_idstringSígeo_id del municipio del proyecto activo (por ejemplo, ES-41091)
codesarray | nullNoNormativas en las que buscar. Si se omite, se usan todas las que aplican al municipio
codes[].slugstringSí (en cada elemento)Identificador de la normativa
codes[].versionstring | nullNoSe acepta, pero hoy no se tiene en cuenta: la búsqueda se hace siempre sobre las versiones vigentes
contextstring | nullNoSe acepta, pero hoy no interviene en la evaluación

Los campos que no están en esta tabla se ignoran sin error.

Transmitancia térmica de una fachada, acotada al CTE DB-HE:

POST /api/v1/verify
Authorization: Bearer sk-normatia-...
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",
"codes": [
{ "slug": "cte-db-he" }
]
}

Sin acotar normativas, con todas las que aplican al municipio:

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

Ejemplo con valores ilustrativos:

{
"is_compliant": true,
"result_status": "compliant",
"element": "Fachada de ladrillo cara vista",
"parameter": "transmitancia térmica",
"provided_value": 0.35,
"limit_value": 0.56,
"unit": "W/m²K",
"conditions": [],
"sources": [
{
"index": 1,
"code_slug": "cte-db-he",
"version": "2022",
"document_title": "CTE DB-HE (modificación del RD 450/2022)",
"section_title": "Tabla 3.1.1.a-HE1 Valores límite de transmitancia térmica",
"url": "https://normatia.com/es/normativa/cte-db-he/2022"
}
],
"warnings": [],
"geo_context": {
"geo_id": "ES-41091",
"name": "Sevilla",
"climate_zone": "B4"
}
}
CampoTipoDescripción
is_compliantbooleantrue si el valor cumple
result_statusstringResultado (ver la tabla siguiente)
elementstringEl element de la petición
parameterstringEl parameter de la petición
provided_valuenumberEl value de la petición
limit_valuenumber | nullLímite normativo encontrado. null si no es cuantificable o no se encontró
unitstringLa unit de la petición
conditionsstring[]Condiciones adicionales que aplican aunque el resultado sea favorable
sourcesobject[]Fuentes normativas en las que se basa el resultado
sources[].indexintegerNúmero de la fuente, desde 1
sources[].code_slugstringIdentificador de la normativa
sources[].versionstring | nullVersión del documento usado
sources[].document_titlestring | nullTítulo del documento
sources[].section_titlestring | nullSección, artículo o tabla
sources[].urlstring | nullEnlace a la fuente en normatia.com
warningsstring[]Avisos sobre limitaciones del resultado
geo_contextobjectMunicipio usado: geo_id, name y climate_zone (puede ser null)

La respuesta no incluye el texto de las fuentes: para leerlo, sigue sources[].url.

ValorSignificado
compliantCumple el límite normativo
conditionalCumple, pero hay condiciones adicionales que también deben cumplirse (están en conditions)
non_compliantNo cumple el límite normativo
undeterminedNo se encontró un límite aplicable en las fuentes recuperadas

Si el modelo de lenguaje no responde o no da una respuesta válida, la respuesta es 502 llm_unavailable y no se gasta crédito: se puede reintentar. Un undetermined es siempre una respuesta del modelo, que no encontró el límite.

Estadodetail.errorCuándo
400no_active_projectEl usuario no tiene proyecto activo
400no_project_locationEl proyecto activo no tiene municipio
403insufficient_scopeLa clave no tiene el permiso ask
403not_available_in_sandboxEs una clave de prueba: verify no está en el entorno de pruebas
404location_not_foundEl geo_id no existe
422geo_id_mismatchEl geo_id no es el del proyecto activo
422no_applicable_codesNinguna normativa (o ninguna de las de codes) aplica al municipio
422Error de validación del cuerpo (detail es una lista)
429rate_limit_exceededLímite por minuto del grupo de inteligencia
429quota_exceededCréditos agotados
502llm_unavailableEl modelo de lenguaje no respondió o no dio una respuesta válida. No gasta crédito: reintenta

Más los errores de autenticación comunes (401, 403), descritos en Autenticación.