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.
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.
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 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.
Todas las reformas procesadas, ordenadas por fecha. Compatible con cualquier lector RSS.
https://leyabierta.es/feed.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.
Corpus completo en formato JSONL (una ley por línea), con metadatos y artículos. Pensado para ingesta en pipelines de datos o entrenamiento.
Snapshot de la base de datos SQLite con índice FTS5. Permite búsqueda local sin depender de la API.
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.
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: