Catalunya — RAISC (Concesiones y convocatorias)
Registre d'Ajuts i Subvencions de Catalunya (RAISC) de la Generalitat. Dos datasets Socrata con unos 22,8 millones de concesiones y 69.000 convocatorias de la Generalitat, diputaciones, comarcas y ayuntamientos catalanes. La fuente más rica de subvenciones de toda España.
Ficha técnica
- Formato
- API Socrata (JSON/CSV/XML + SoQL)
- Registros
- ~22,8 millones concesiones / ~69.000 convocatorias (octubre de 2026)
- Cobertura
- Desde noviembre 2018
- Actualización
- Diaria
- Licencia
- CC BY (datos abiertos Generalitat)
- Entidad
- Generalitat de Catalunya
Descripción
El Registre d'Ajuts i Subvencions de Catalunya (RAISC) es el registro oficial de subvenciones y ayudas públicas de Catalunya, gestionado por la Generalitat y publicado como dos datasets Socrata en el portal de transparencia de la Generalitat. Contiene datos de la Generalitat, las cuatro diputaciones provinciales (Barcelona, Girona, Lleida, Tarragona), los consejos comarcales y los ayuntamientos catalanes.
El dataset de **concesiones** (s9xt-n979) tenía 22.794.027 registros en octubre de 2026, unos 21,4 millones de la administración autonómica y el resto de entidades locales: es con diferencia la mayor fuente regional de subvenciones de España. El dataset de **convocatorias** (khxn-nv6a) tiene unas 69.000 entradas. Ambos están accesibles a través de la API Socrata estándar, que soporta filtros SoQL ($select, $where, $group, $order), paginación con $limit/$offset y exportación en JSON, CSV y XML. No requiere autenticación ni API key.
Los nombres de columna son los del portal en catalán, abreviados por Socrata: el NIF está en cif_beneficiari, la razón social en ra_social_del_beneficiari y el importe en import_subvenci_pr_stec_ajut. Las personas físicas no se identifican: en lugar del NIF aparece «Benef. no publicable», «Persona física», «Altres» o «Estranger-Altres», así que conviene excluir esos valores antes de hacer rankings. Hay alguna fecha mal capturada (por ejemplo, del año 0023), y las agregaciones sobre todo el conjunto pueden tardar casi un minuto: filtra por fechas siempre que puedas.
Como fuente, es un superconjunto de la BDNS para el ámbito catalán: incluye más ayuntamientos y un histórico más detallado que lo que expone la BDNS nacional filtrada por Catalunya, y cada concesión lleva el código de la convocatoria en la BDNS (codi_bdns) para cruzarlas.
Estructura de datos
- clau — Clave de la concesión (código RAISC, discriminador y fecha)
- codi_raisc / codi_bdns — Código de la convocatoria en el RAISC y en la BDNS
- entitat_oo_aa_o_departament_1 — Departamento o entidad convocante
- t_tol_convocat_ria_castell / t_tol_convocat_ria_catal — Título de la convocatoria
- cif_beneficiari — NIF/CIF del beneficiario («Benef. no publicable» en personas físicas)
- ra_social_del_beneficiari — Razón social del beneficiario
- tipus_de_beneficiaris — Tipo de beneficiario (persona física, pyme, entidad sin ánimo de lucro…)
- import_subvenci_pr_stec_ajut — Importe de la subvención, préstamo o ayuda (EUR)
- import_ajuda_equivalent — Ayuda equivalente (EUR)
- data_concessi — Fecha de concesión
- tipus_d_instument_d_ajut_1 — Instrumento (subvención, préstamo, garantía…)
- finalitat_p_blica / finalitat_rais — Finalidad de la ayuda
- administraci_ — Administración (autonómica o local: municipio, comarca, provincia…)
- ajut_d_estat — Marca y datos de ayuda de Estado
Ejemplos de código
# Contar concesiones totales
curl -s "https://analisi.transparenciacatalunya.cat/resource/s9xt-n979.json?\$select=count(*)"
# Primeras 10 concesiones
curl -s "https://analisi.transparenciacatalunya.cat/resource/s9xt-n979.json?\$limit=10" | python3 -m json.tool
# Concesiones a un beneficiario por su NIF
curl -sG "https://analisi.transparenciacatalunya.cat/resource/s9xt-n979.json" \
--data-urlencode "\$select=data_concessi,ra_social_del_beneficiari,t_tol_convocat_ria_castell,import_subvenci_pr_stec_ajut" \
--data-urlencode "\$where=cif_beneficiari = 'Q0818001J'" \
--data-urlencode "\$order=data_concessi DESC" --data-urlencode "\$limit=20"
# Top 20 beneficiarios de 2025 por importe (sin personas físicas; tarda cerca de un minuto)
curl -sG "https://analisi.transparenciacatalunya.cat/resource/s9xt-n979.json" \
--data-urlencode "\$select=cif_beneficiari,ra_social_del_beneficiari,sum(import_subvenci_pr_stec_ajut) as total" \
--data-urlencode "\$where=data_concessi between '2025-01-01' and '2025-12-31' AND cif_beneficiari not in ('Benef. no publicable','Persona física','Altres','Estranger-Altres')" \
--data-urlencode "\$group=cif_beneficiari,ra_social_del_beneficiari" \
--data-urlencode "\$order=total DESC" --data-urlencode "\$limit=20"
# Convocatorias del dataset secundario
curl -s "https://analisi.transparenciacatalunya.cat/resource/khxn-nv6a.json?\$limit=10" | python3 -m json.tool from sodapy import Socrata
client = Socrata("analisi.transparenciacatalunya.cat", None)
# Concesiones a un beneficiario (por NIF) desde 2025
offset = 0
while True:
batch = client.get("s9xt-n979",
select="data_concessi,ra_social_del_beneficiari,t_tol_convocat_ria_castell,import_subvenci_pr_stec_ajut",
where="cif_beneficiari = 'Q0818001J' AND data_concessi >= '2025-01-01'",
order="data_concessi",
limit=2000,
offset=offset)
if not batch:
break
for r in batch:
print(r['data_concessi'][:10], r['ra_social_del_beneficiari'], r['import_subvenci_pr_stec_ajut'])
offset += 2000 import polars as pl
import requests
# Concesiones e importe por órgano convocante desde 2025 (top 50)
url = 'https://analisi.transparenciacatalunya.cat/resource/s9xt-n979.json'
params = {
'$select': 'entitat_oo_aa_o_departament_1 as organo, count(*) as n, sum(import_subvenci_pr_stec_ajut) as total',
'$where': "data_concessi >= '2025-01-01'",
'$group': 'entitat_oo_aa_o_departament_1',
'$order': 'total DESC',
'$limit': 50,
}
data = requests.get(url, params=params, timeout=120).json()
df = pl.DataFrame(data).with_columns(pl.col('n').cast(pl.Int64), pl.col('total').cast(pl.Float64))
print(df)