# Ley Abierta — Documentación completa

> Motor open source que convierte legislación oficial en archivos Markdown versionados con Git, y los expone a través de una API y web para que cualquier ciudadano pueda buscar, comparar versiones y entender cómo cambian las leyes que le afectan.

## Datos
- Más de 12.261 leyes consolidadas desde 1835 hasta hoy
- 18 jurisdicciones: España (estatal) + 17 comunidades autónomas
- Fuente oficial: Agencia Estatal Boletín Oficial del Estado (BOE)

## Cobertura

### Jurisdicciones
- España (estatal) (es): 8666 leyes
- Cataluña (es-ct): 377 leyes
- Comunitat Valenciana (es-vc): 265 leyes
- Aragón (es-ar): 264 leyes
- Illes Balears (es-ib): 263 leyes
- Andalucía (es-an): 241 leyes
- es-nc (es-nc): 235 leyes
- Galicia (es-ga): 216 leyes
- País Vasco (es-pv): 212 leyes
- Canarias (es-cn): 199 leyes
- Castilla y León (es-cl): 196 leyes
- Extremadura (es-ex): 183 leyes
- Comunidad de Madrid (es-md): 183 leyes
- Región de Murcia (es-mc): 176 leyes
- Castilla-La Mancha (es-cm): 160 leyes
- Cantabria (es-cb): 150 leyes
- Asturias (es-as): 138 leyes
- La Rioja (es-ri): 137 leyes

### Rangos normativos
- ley: 3788
- real_decreto: 3446
- orden: 2373
- instruccion: 818
- real_decreto_ley: 588
- otro: 506
- acuerdo_internacional: 254
- ley_organica: 184
- circular: 142
- decreto: 117
- real_decreto_legislativo: 44
- constitucion: 1

### Cobertura temporal
- Ley más antigua: 1835-11-07
- Última actualización: 2929-11-19

## Páginas principales
- [Inicio](https://leyabierta.es/): Buscador de leyes, estadísticas, últimas reformas
- [Cambios legislativos](https://leyabierta.es/cambios/): Cronología de reformas recientes con resúmenes
- [Leyes ómnibus](https://leyabierta.es/cambios/omnibus/): Detección de leyes que modifican múltiples normas
- [Alertas](https://leyabierta.es/alertas/): Suscripción a notificaciones por temas y jurisdicción
- [Sobre Ley Abierta](https://leyabierta.es/sobre/): Misión, datos, metodología

## API REST — Referencia completa

### Buscar leyes
`GET /v1/laws`

Parámetros:
- `q` (string): Texto de búsqueda (búsqueda full-text)
- `country` (string): Código de país (ej: "es")
- `rank` (string): Tipo de rango normativo (ej: "ley", "real_decreto")
- `status` (string): Estado de vigencia ("vigente", "derogado")
- `materia` (string): Categoría temática
- `jurisdiction` (string): Jurisdicción (ej: "es", "es-ct" para Cataluña)
- `limit` (number): Resultados por página (default: 20)
- `offset` (number): Desplazamiento para paginación

### Obtener una ley
`GET /v1/laws/:id`

Devuelve la ley completa con metadatos, artículos y reformas.

### Artículo específico
`GET /v1/laws/:id/articles/:n`

Artículo por posición con todas sus versiones históricas.

### Historial de reformas
`GET /v1/laws/:id/history`

Línea temporal de reformas con títulos de artículos afectados.

### Comparar versiones (diff)
`GET /v1/laws/:id/diff?from=YYYY-MM-DD&to=YYYY-MM-DD`

Diff unificado entre dos fechas.

### Versión en fecha concreta
`GET /v1/laws/:id/versions/YYYY-MM-DD`

Texto completo de la ley tal como era en una fecha específica.

### Análisis
`GET /v1/laws/:id/analisis`

Materias, notas y referencias cruzadas.

### Grafo de relaciones
`GET /v1/laws/:id/graph`

Datos del grafo de relaciones entre normas.

### Rangos normativos
`GET /v1/ranks`

Tipos de rango (constitución, ley orgánica, ley, real decreto, etc.) con conteos.

### Materias
`GET /v1/materias`

Categorías temáticas con conteos.

### Changelog
`GET /v1/changelog?jurisdiction=es&since=2024-01-01&limit=50`

Reformas recientes con resúmenes generados por IA.

### Reformas personalizadas
`GET /v1/reforms/personal?materias=IRPF,Empleo&jurisdiction=es-vc`

Reformas filtradas por materias y jurisdicción del usuario.

### Leyes ómnibus
`GET /v1/omnibus` — Lista de leyes ómnibus recientes
`GET /v1/omnibus/:normId` — Detalle con desglose por temas

## Formato de datos

Cada ley tiene frontmatter YAML con:
- `titulo`: Título de la norma
- `identificador`: ID único (ej: "BOE-A-1978-31229")
- `pais`: Código de país
- `jurisdiccion`: Jurisdicción (ej: "es", "es-ct")
- `rango`: Tipo de norma
- `fecha_publicacion`: Fecha de publicación original (ISO 8601)
- `ultima_actualizacion`: Fecha de última reforma
- `estado`: "vigente" o "derogado"
- `departamento`: Órgano emisor
- `fuente`: URL al BOE
- `articulos`: Número de artículos
- `reformas`: Lista de reformas con fecha y fuente
- `materias`: Categorías temáticas
- `referencias_posteriores`: Normas que modifican o desarrollan esta ley

## Atribución
Fuente de datos: Agencia Estatal Boletín Oficial del Estado (boe.es). Contenido legislativo en dominio público. Código fuente bajo licencia AGPL-3.0.

## Código fuente
- [GitHub](https://github.com/leyabierta/leyabierta): Código fuente del proyecto (AGPL-3.0)
- [Repo de leyes](https://github.com/leyabierta/leyes): Legislación como Markdown + historial Git

## Optional
- [RSS](https://leyabierta.es/feed.xml): Feed de reformas recientes
- [Sitemap](https://leyabierta.es/sitemap.xml): Mapa del sitio
- [Privacidad](https://leyabierta.es/privacidad/): Política de privacidad
- [Aviso legal](https://leyabierta.es/aviso-legal/): Aviso legal y atribución
