---
title: "Artículo consolidado del BOE (y grafo de hechos en Profesional+)"
method: GET
path: "/legislacion/{boe_id}"
tags: ["Fiscal"]
---

# Artículo consolidado del BOE (y grafo de hechos en Profesional+)

`GET /legislacion/{boe_id}`

## Request

- Base URL: `https://www.conversoriaecnae.es/api/v1`
- URL: `https://www.conversoriaecnae.es/api/v1/legislacion/{boe_id}`
- Auth: API key in header `X-API-Key`

Devuelve el texto vigente de un artículo del BOE consolidado (`boe_id` en la ruta, p. ej. `BOE-A-2006-20764`; `articulo` como query, p. ej. `31`). `articulo` es obligatorio salvo que se use `full=true` con plan Profesional o superior (para volcar la norma completa sin fijar un artículo base) — si falta sin esa combinación, responde 400. Si el artículo no existe vigente para esa norma, responde 200 con `articulo_texto: null` y `_meta.nota` (nunca 404). Con clave gratuita solo se devuelve `articulo_texto` (el mismo texto público que renderizan las páginas `/legislacion`); los flags de pago `facts`, `full` y `historial` se ignoran silenciosamente y `_meta.upgrade_hint` indica que requieren plan Profesional o superior. Con plan Profesional o superior: `facts=true` añade el grafo de hechos (Fact↔Law) del artículo, `historial=true` añade el historial de versiones, y `full=true` añade `norma_bloques` con todos los artículos vigentes de la norma (si se combina con la ausencia de `articulo`, la respuesta es solo `{ boe_id, norma_bloques, _meta }`, sin `articulo_texto`).

## Path parameters

- `boe_id` string, required

## Query parameters

- `articulo` string
- `facts` boolean
- `full` boolean
- `historial` boolean

## Response `200`

Artículo consolidado (y, en Profesional+, grafo de hechos / norma completa / historial cuando se solicitan)

- object
  - `boe_id` string
  - `articulo_texto` object, nullable: Texto vigente del artículo, o null si no se encontró vigente para esta norma (ver _meta.nota). Ausente en el modo bulk (full=true sin articulo).
    - `bloque_id` string
    - `bloque_titulo` string
    - `articulo_norm` string, nullable
    - `version_idx` integer
    - `fecha_vigencia` string, date, nullable
    - `valid_to` string, date, nullable
    - `es_vigente` boolean
    - `texto_html` string
    - `id_norma_modificadora` string, nullable
  - `facts` object[]: Solo Profesional+ y facts=true — grafo de hechos (Fact↔Law) del artículo.
    - `fact_domain` string
    - `fact_key` string
    - `valor` unknown
    - `unidad` string, nullable
    - `articulo` string, nullable
    - `source_anchor` string, nullable
    - `vigente` boolean
    - `valid_from` string, date, nullable
    - `valid_to` string, date, nullable
  - `historial` object[]: Solo Profesional+ y historial=true — historial de versiones del artículo.
    - `version_idx` integer
    - `bloque_titulo` string
    - `fecha_vigencia` string, date, nullable
    - `valid_to` string, date, nullable
    - `es_vigente` boolean
    - `id_norma_modificadora` string, nullable
  - `norma_bloques` object[]: Solo Profesional+ y full=true — todos los artículos vigentes de la norma.
  - `_meta` object
    - `plan` string
    - `count` integer
    - `remaining` integer
    - `nota` string: Presente cuando el artículo solicitado no se encontró vigente para esta norma.
    - `upgrade_hint` string

## Other responses

- `400`: Petición inválida (parámetro o cuerpo mal formado).
- `401`: Falta la cabecera `X-API-Key` o la clave es inválida/desactivada.
- `429`: Límite de cuota diaria o de ráfaga superado. La cabecera `Retry-After` indica los segundos hasta poder reintentar. El 429 por cuota diaria incluye además `X-RateLimit-Limit`, `X-RateLimit-Remaining` (0), `X-RateLimit-Reset` y `X-Conversor-Plan`.
- `500`: Error interno del servidor.

## Changes

- **2026-09-29** `a8e670bec432`: 3 info
  - added the optional property `_meta/trial_ends_in_days` to the response with the `400` status
  - added the optional property `_meta/trial_ends_in_days` to the response with the `401` status
  - added the optional property `_meta/trial_ends_in_days` to the response with the `500` status

[Operation history](https://skmtc.dev/conversoriaecnae/apis/conversor-iae-cnae-api/changes/legislacion/:boe_id/get.md)

---

[API](https://skmtc.dev/conversoriaecnae/apis/conversor-iae-cnae-api.md) - [All operations](https://skmtc.dev/conversoriaecnae/apis/conversor-iae-cnae-api/llms.txt) - [OpenAPI document](https://skmtc.dev/conversoriaecnae/apis/conversor-iae-cnae-api/revisions/9a7964356163?raw)
