BDNS — Base de Datos Nacional de Subvenciones
Sistema Nacional de Publicidad de Subvenciones y Ayudas Públicas. Convocatorias, concesiones, planes estratégicos y grandes beneficiarios de todas las administraciones españolas (AGE, CCAA, entidades locales, universidades). API REST pública sin autenticación.
Ficha técnica
- Formato
- REST API (JSON)
- Registros
- ~10,5M concesiones / ~350.000 convocatorias
- Cobertura
- Desde 2016
- Actualización
- Continua
- Licencia
- Datos abiertos
- Entidad
- IGAE — Ministerio de Hacienda
Descripción
La Base de Datos Nacional de Subvenciones (BDNS) es el sistema oficial de publicidad de subvenciones y ayudas públicas en España, regulado por la Ley 38/2003 General de Subvenciones (tras la reforma de la Ley 15/2014). Gestionada por la Intervención General de la Administración del Estado (IGAE) del Ministerio de Hacienda y Función Pública, centraliza la información de todas las ayudas concedidas por la AGE, las comunidades autónomas, las entidades locales, las universidades públicas y demás entes del sector público estatal.
El Sistema Nacional de Publicidad de Subvenciones y Ayudas Públicas (SNPSAP) expone esta información a través de un portal ciudadano en infosubvenciones.es y de una API REST pública documentada con Swagger/OpenAPI. La API permite consultar convocatorias, concesiones individuales, planes estratégicos, listados de grandes beneficiarios y sanciones, con filtros por fecha, órgano convocante, jerarquía territorial (nivel1/nivel2/nivel3), instrumento de la ayuda, CPV y otros criterios.
Desde la renovación del portal por Hacienda, es posible descargar conjuntos de datos completos además de consultar la API en tiempo real. El acceso a los endpoints públicos no requiere registro ni clave de API.
Estructura de datos
- codigoBDNS — Código único de la convocatoria
- titulo / descripcion — Objeto de la convocatoria
- nivel1 / nivel2 / nivel3 — Jerarquía territorial del órgano convocante
- organo — Órgano que convoca la ayuda
- fechaRecepcion / fechaPublicacion — Fechas de tramitación
- tiposBeneficiarios — Tipos de beneficiarios elegibles
- instrumentos — Instrumento (subvención, préstamo, aval, entrega dineraria...)
- importeTotal — Importe máximo de la convocatoria
- descripcionFinalidad — Finalidad de la ayuda (sector/objetivo)
- convocatoriaBases — URL de las bases reguladoras
- beneficiario — NIF/CIF y nombre del beneficiario (en concesiones)
- importe — Importe concedido (en concesiones)
- ayudaEstado / ayudaDeMinimis — Clasificación jurídica de la ayuda
Ejemplos de código
# Documentacion Swagger de la API
open https://www.infosubvenciones.es/bdnstrans/doc/swagger
# Buscar convocatorias publicadas en 2025
curl -s "https://www.infosubvenciones.es/bdnstrans/api/convocatorias/busqueda?fechaDesde=01/01/2025&fechaHasta=31/12/2025&pageSize=50&page=0" \
-H "Accept: application/json" | python3 -m json.tool import requests
BASE = 'https://www.infosubvenciones.es/bdnstrans/api'
session = requests.Session()
session.headers.update({'Accept': 'application/json'})
page = 0
while True:
resp = session.get(f'{BASE}/convocatorias/busqueda', params={
'fechaDesde': '01/01/2025',
'fechaHasta': '31/12/2025',
'pageSize': 100,
'page': page,
})
resp.raise_for_status()
data = resp.json()
items = data.get('content', [])
if not items:
break
for c in items:
print(c.get('codigoBDNS'), '-', (c.get('descripcion') or '')[:80])
page += 1 import requests
BASE = 'https://www.infosubvenciones.es/bdnstrans/api'
# Concesiones de un NIF concreto en un rango de fechas
resp = requests.get(f'{BASE}/concesiones/busqueda', params={
'nifCif': 'B12345678',
'fechaDesde': '01/01/2024',
'fechaHasta': '31/12/2025',
'pageSize': 200,
'page': 0,
}, headers={'Accept': 'application/json'})
for c in resp.json().get('content', []):
print(f"{c.get('fechaConcesion')} | {c.get('importe')} EUR | BDNS {c.get('codigoBDNS')}")