Saltar al contenido

DATOS ABIERTOS

Datos abiertos de legislación española.

Para desarrolladores e investigadores. Sin límites, sin registro.

PARA LLMs Y HERRAMIENTAS LEGALTECH

Integración con modelos de lenguaje

La legislación consolidada española está disponible en formato optimizado para LLMs siguiendo la convención llms.txt. Estos archivos permiten que ChatGPT, Claude, Perplexity y otras herramientas citen artículos concretos con sus identificadores oficiales.

llms.txt Ver archivo →

Descripción concisa del proyecto, páginas principales y endpoints de la API. Ideal como contexto inicial para cualquier LLM. Se regenera en cada build.

llms-full.txt Ver archivo →

Documentación extendida con referencia completa de la API, cobertura por jurisdicción y rangos normativos. Regenerado en cada build con datos reales.

EJEMPLO DE PROMPT Para que cualquier LLM cite leyes españolas con precisión:

Lee https://leyabierta.es/llms-full.txt y responde citando los identificadores BOE-A-...

Sustituye los puntos suspensivos por tu pregunta legal concreta. El modelo tendrá contexto sobre cobertura, rangos y formato de identificadores.

FORMATO DEL ARCHIVO

  • Estructura Markdown siguiendo la especificación llms.txt
  • Cobertura: más de 12.000 leyes consolidadas, 18 jurisdicciones
  • Actualización: se regenera en cada despliegue del sitio (normalmente a diario)
  • Codificación: UTF-8, sin BOM

REPOSITORIO GIT

Cada ley es un archivo Markdown. Cada reforma es un commit.

El repositorio leyes contiene toda la legislación española consolidada como archivos Markdown con historial Git. Cada reforma legislativa corresponde a un commit con fecha oficial del BOE como GIT_AUTHOR_DATE. Clona el repositorio y trabaja localmente sin depender de ninguna API.

Clonar el repositorio

git clone https://github.com/leyabierta/leyes.git

Leer una ley

cat es/BOE-A-1978-31229.md

Ver el historial de reformas de una ley

git log --oneline es/BOE-A-1978-31229.md

Ver el texto de una ley en un commit concreto

git show <sha> es/BOE-A-1978-31229.md

Estructura de carpetas: es/ para legislación estatal, es-ct/, es-an/, es-pv/... para comunidades autónomas. Sigue la convención ELI (European Legislation Identifier).

Ver repositorio en GitHub →

API REST

Acceso programático a toda la legislación

API REST pública sobre toda la legislación española consolidada. Sin autenticación, sin límite de peticiones. Endpoint base: https://api.leyabierta.es/v1

Buscar y listar leyes

curl 'https://api.leyabierta.es/v1/laws?q=contrato+trabajo&limit=10'

Parámetros: q (texto), rank (ley, real_decreto…), jurisdiction (es, es-ct…), status (vigente, derogada), limit, offset.

Obtener una ley completa

curl 'https://api.leyabierta.es/v1/laws/BOE-A-1978-31229'

Devuelve metadatos completos, artículos y lista de reformas.

Comparar dos versiones de una ley

curl 'https://api.leyabierta.es/v1/laws/BOE-A-1978-31229/diff?from=2010-01-01&to=2024-01-01'

Diff unificado entre dos fechas. Útil para detectar qué artículos cambiaron en un período concreto.

Últimas reformas con resúmenes

curl 'https://api.leyabierta.es/v1/changelog?jurisdiction=es&limit=20'

Reformas recientes con resúmenes generados por IA. Filtra por jurisdicción y por fecha con since=YYYY-MM-DD.

Todos los endpoints devuelven JSON. Sin autenticación. Sin límites de tasa documentados — aplica cortesía razonable si haces scraping masivo.

RSS FEEDS

Suscripción a reformas legislativas

Feeds RSS para integrar las últimas reformas en tu flujo de trabajo.

Reformas recientes /feed.xml

Todas las reformas procesadas, ordenadas por fecha. Compatible con cualquier lector RSS.

https://leyabierta.es/feed.xml
Leyes ómnibus /feed-omnibus.xml

Feed específico para leyes que modifican múltiples normas simultáneamente, con desglose por temas.

https://leyabierta.es/feed-omnibus.xml

DESCARGAS MASIVAS

Corpus completo

Para análisis a gran escala o para construir tu propio índice.

JSONL Próximamente

Corpus completo en formato JSONL (una ley por línea), con metadatos y artículos. Pensado para ingesta en pipelines de datos o entrenamiento.

SQLite Próximamente

Snapshot de la base de datos SQLite con índice FTS5. Permite búsqueda local sin depender de la API.

Git (disponible hoy)

El repositorio leyes en GitHub contiene todo el corpus en archivos Markdown con historial completo. Es la forma más directa de obtener los datos hoy.

github.com/leyabierta/leyes →

CASOS DE USO

Ejemplos prácticos

Alertador de reformas en 20 líneas con jq

Obtén las últimas reformas de una jurisdicción y filtra las que afectan a un tema concreto:

#!/bin/sh
# Últimas reformas laborales en España
curl -s 'https://api.leyabierta.es/v1/changelog?jurisdiction=es&limit=50' \
  | jq -r '
      .reforms[]
      | select(.materias[]? | test("Trabajo|Empleo|Laboral"; "i"))
      | "\(.date) \(.title)"
    '

Indexa el corpus en tu propio RAG

Ley Abierta incluye 483.983 embeddings de artículos vigentes (Gemini embedding, 3072 dimensiones). Si prefieres construir tu propio índice vectorial, clona el repositorio leyes y extrae los artículos del frontmatter YAML:

# Extraer todos los identificadores y títulos
find leyes/es -name '*.md' | head -100 | while read -r f; do
  python3 -c "
import re, sys
with open(sys.argv[1]) as fh:
    content = fh.read()
match = re.search(r'---\n(.*?)---', content, re.DOTALL)
if match:
    for line in match.group(1).splitlines():
        if line.startswith('titulo:') or line.startswith('identificador:'):
            print(line.split(':', 1)[1].strip())
" "$f"
done

La arquitectura RAG completa de Ley Abierta (hybrid BM25 + vector search + Cohere reranking) está documentada en el código fuente.

Compara dos versiones con git diff

El historial Git permite comparar cualquier par de versiones de una ley. Cada commit corresponde a una reforma oficial con fecha exacta:

cd leyes

# Ver todos los commits de la Constitución
git log --oneline es/BOE-A-1978-31229.md

# Comparar dos versiones concretas (sustituye los SHAs)
git diff abc1234 def5678 -- es/BOE-A-1978-31229.md

# Versión de una ley en una fecha concreta
git log --before="2011-01-01" --format="%H" -1 es/BOE-A-1978-31229.md \
  | xargs -I{} git show {}:es/BOE-A-1978-31229.md

LICENCIA Y ATRIBUCIÓN

Uso libre, atribución obligatoria

Código fuente

El motor, la API y el sitio web están publicados bajo la licencia AGPL-3.0. Si distribuyes una versión modificada, debes publicar el código fuente.

Ver código en GitHub →

Contenido legislativo

La legislación española es de dominio público. Puedes usarla, redistribuirla y adaptarla sin restricciones de copyright.

Atribución requerida por la fuente oficial: