Skip to main content

boe

CI PyPI Python Licencia: MIT

Cliente en Python de la API de datos abiertos del BOE: sumarios diarios del BOE y del BORME, legislación consolidada (búsqueda, fichas, relaciones entre normas y texto vigente artículo a artículo, con todas sus versiones) y tablas auxiliares. Sin dependencias.

pip install boe
>>> from boe import BOE
>>> boe = BOE()

>>> sumario = boe.sumario("2026-10-08")
>>> sumario.numero, len(sumario.disposiciones)
('250', 208)
>>> for d in sumario.buscar("vivienda"):
...     print(d.identificador, d.titulo)

>>> ley = boe.norma("BOE-A-2015-10565")
>>> ley.titulo
'Ley 39/2015, de 1 de octubre, del Procedimiento Administrativo Común de las Administraciones Públicas.'
>>> ley.vigente, ley.fecha_vigencia
(True, datetime.date(2016, 10, 2))

>>> print(boe.articulo("BOE-A-2015-10565", 30).texto)
Artículo 30. Cómputo de plazos.
1. Salvo que por Ley o en el Derecho de la Unión Europea se disponga otro cómputo, cuando los plazos se señalen por horas...

Qué incluye

Método Devuelve
sumario(fecha) / sumario_borme(fecha) Sumario del día: número, PDF y la lista de Disposicion con sección, departamento, epígrafe, enlaces y páginas. Filtros de_seccion("III.") y buscar("texto").
buscar(...) Lista de Norma de la legislación consolidada, con filtros por texto, título, rango, departamento, ámbito, materia, número oficial, vigencia y fechas, orden y paginación.
norma(id) Ficha de una norma: rango, departamento, fechas, vigencia, derogación, ELI.
analisis(id) Materias, notas y relaciones con otras normas (deroga, modifica, cita…).
indice(id) Bloques de la norma: preámbulo, títulos, artículos, disposiciones.
bloque(id, id_bloque) / articulo(id, n) Texto consolidado de un bloque con todas sus versiones; .texto da la vigente y .en_fecha(fecha) la que estaba en vigor ese día.
texto_xml(id) Texto consolidado completo en el XML original.
rangos(), departamentos(), materias(), ambitos()… Tablas auxiliares de códigos.

Las fechas se pueden pasar como date o como texto AAAA-MM-DD o AAAAMMDD.

Buscar legislación

>>> boe.rangos()["1300"]
'Ley'
>>> for n in boe.buscar(titulo="vivienda", rango="1300", vigentes=True, publicadas_desde="2020-01-01", limite=5):
...     print(n.fecha_publicacion, n.numero_oficial, n.titulo)

>>> boe.buscar(numero_oficial="39/2015", rango="1300")[0].identificador
'BOE-A-2015-10565'

Por defecto se ordena por fecha de publicación, de la más reciente a la más antigua (orden="-fecha_publicacion"). Para condiciones más complejas, consulta acepta la sintaxis propia de la API y se combina con el resto de filtros:

>>> boe.buscar(consulta="materia@codigo:6658 or materia@codigo:4107", limite=10)

Versiones de un artículo

>>> from datetime import date
>>> art = boe.articulo("BOE-A-2015-10565", 30)
>>> [v.fecha_vigencia for v in art.versiones]
[datetime.date(2016, 10, 2)]
>>> art.en_fecha(date(2016, 1, 1)) is None   # todavía no estaba en vigor
True

Errores

  • NoEncontrado: la información no existe, por ejemplo un domingo (no hay BOE) o un identificador erróneo.
  • ErrorBOE: cualquier otro error de la API (parámetros incorrectos, fallo del servidor, respuesta ilegible). NoEncontrado es una subclase, y ambas tienen el código HTTP en .codigo.

Línea de comandos

boe sumario 2026-10-08 --seccion "I." --buscar vivienda
boe sumario 2026-10-08 --borme
boe buscar --titulo "procedimiento administrativo" --rango 1300 --vigentes
boe norma BOE-A-2015-10565
boe articulo BOE-A-2015-10565 30
boe rangos

Desarrollo

pip install -e ".[dev]"
pytest                 # sin red: usa respuestas reales guardadas en tests/datos
BOE_RED=1 pytest       # además, comprueba la API real
ruff check . && ruff format --check . && mypy

Licencia y datos

Código bajo licencia MIT. Los datos son de la Agencia Estatal Boletín Oficial del Estado; su reutilización está sujeta a las condiciones de reutilización del BOE. Este proyecto no está afiliado al BOE.

Metadata

Release files for boe 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for boe 0.1.0
File Size Uploaded
boe-0.1.0.tar.gz 54.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for boe 0.1.0
File Interpreter ABI Platform
boe-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 68.6 kB

Release files / boe-0.1.0.tar.gz

Download URL boe-0.1.0.tar.gz
Size 54.4 kB
Tags Source
SHA-256 checksum
How to use checksums
8d9be24db34a958608bc7b30ff41bf3ef3249f4bfcd8caadb4eac24b158e89af
BLAKE2b-256 checksum
How to use checksums
c718c4b4c736763cd0a862e541431365984f02d75b0617aa211be2e68f773260
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / boe-0.1.0-py3-none-any.whl

Download URL boe-0.1.0-py3-none-any.whl
Size 14.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
46e664d28079cd442cf67fe188485178f7af15e3d5e97c583a85233aa71b33b0
BLAKE2b-256 checksum
How to use checksums
ce63c31e2716b03b5c1388f27da1c0a1c0a0aa1a301017475eb095da3dc043ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page