BDNS — Base de Datos Nacional de Subvenciones
Sistema Nacional de Publicidad de Subvenciones y Ayudas Publicas. Convocatorias, concesiones, planes estrategicos y grandes beneficiarios de todas las administraciones espanolas (AGE, CCAA, entidades locales, universidades). API REST publica sin autenticacion.
Ficha tecnica
- Formato
- REST API (JSON)
- Registros
- ~10,5M concesiones / ~350.000 convocatorias
- Cobertura
- Desde 2016
- Actualizacion
- Continua
- Licencia
- Datos abiertos
- Entidad
- IGAE — Ministerio de Hacienda
Descripcion
La Base de Datos Nacional de Subvenciones (BDNS) es el sistema oficial de publicidad de subvenciones y ayudas publicas en Espana, regulado por la Ley 38/2003 General de Subvenciones (tras la reforma de la Ley 15/2014). Gestionada por la Intervencion General de la Administracion del Estado (IGAE) del Ministerio de Hacienda y Funcion Publica, centraliza la informacion de todas las ayudas concedidas por la AGE, las comunidades autonomas, las entidades locales, las universidades publicas y demas entes del sector publico estatal.
El Sistema Nacional de Publicidad de Subvenciones y Ayudas Publicas (SNPSAP) expone esta informacion a traves de un portal ciudadano en infosubvenciones.es y de una API REST publica documentada con Swagger/OpenAPI. La API permite consultar convocatorias, concesiones individuales, planes estrategicos, listados de grandes beneficiarios y sanciones, con filtros por fecha, organo convocante, jerarquia territorial (nivel1/nivel2/nivel3), instrumento de la ayuda, CPV y otros criterios.
Desde la renovacion del portal por Hacienda, es posible descargar conjuntos de datos completos ademas de consultar la API en tiempo real. El acceso a los endpoints publicos no requiere registro ni clave de API.
Estructura de datos
- codigoBDNS — Codigo unico de la convocatoria
- titulo / descripcion — Objeto de la convocatoria
- nivel1 / nivel2 / nivel3 — Jerarquia territorial del organo convocante
- organo — Organo que convoca la ayuda
- fechaRecepcion / fechaPublicacion — Fechas de tramitacion
- tiposBeneficiarios — Tipos de beneficiarios elegibles
- instrumentos — Instrumento (subvencion, prestamo, aval, entrega dineraria...)
- importeTotal — Importe maximo 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 — Clasificacion juridica de la ayuda
Ejemplos de codigo
# 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={
'numeroIdentificacion': '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')}")