Per a periodistes i desenvolupadors

API i widgets

Tot el contingut de Hola Política és open data sota llicència CC-BY 4.0. Pots consumir l'API REST directament, incrustar widgets a la teva web o descarregar fitxers de tota la legislatura. Veure metodologia →

API REST pública

L'API està hostatjada a https://api.holapolitica.org. No requereix autenticació; les peticions són respostes JSON amb caché de 5 minuts. Si esperes fer més de 100 peticions per minut, contacta'ns abans de desplegar res.

EndpointDescripció
GET /votesLlistat paginat de votacions. Filtres: chamber_id, legislature_id, topic_slug, proposing_group_slug, result, date_from, date_to, q.
GET /votes/{id}Detall d'una votació individual: totals (sí, no, abst., absent), descripció, expedient, proposant, resum planer.
GET /initiatives/{id}Iniciativa parlamentària: títol original, situació, vots associats, temes.
GET /topicsTaxonomia tancada de temes (17 editorials + 17 ODS). Paràmetre opcional kind=theme|sdg.
GET /topics/{slug}Detall del tema amb nom multilingüe i descripció.
GET /topics/{slug}/initiativesIniciatives classificades sota un tema. Filtres: legislature_id, status.
GET /groupsGrups parlamentaris actius. Filtre legislature_id.
GET /groups/{slug}Detall d'un grup parlamentari.
GET /groups/{slug}/membersDiputats actius del grup amb dates de pertinença.
GET /groups/{slug}/compositionDistribució per gènere, edat i partit electoral.
GET /personsLlistat paginat de diputats. Filtres: q, legislature_id.
GET /persons/{id}Fitxa pública del diputat (mai dades privades).
GET /persons/{id}/kpisIndicadors agregats: assistència, dissidència, vots emesos.
GET /stats/summaryComptadors globals (iniciatives, votacions, classificades).
GET /metrics/cohesion?vote_id=NCohesió per grup en una votació concreta.
GET /metrics/coincidence?legislature_id=NMatriu completa de coincidència entre parelles de grups.
GET /metrics/attendance?legislature_id=NAssistència per diputat al període sol·licitat.
GET /metrics/dissidence?legislature_id=NDissidència individual respecte a la línia del grup.

Exemple amb curl — última pàgina de votacions del PSOE:

curl -s "https://api.holapolitica.org/votes?proposing_group_slug=psoe&page_size=5" \
  | jq '.items[] | {id, title, voted_at, result}'

Les rutes són estables; canvis de signatura es comuniquen amb mes d'antelació al CHANGELOG.

Widgets embedables

Cinc widgets pensats per a articles de premsa: incrusta'ls amb un <iframe> sense scripts ni cookies de tercers. Cap tracker, càrrega <1s, contingut només factual amb atribució a Hola Política i enllaç a la font.

RutaQuè mostraAlçada
/embed/votes/{id}Resultat d'una votació: totals, qui ho proposa, barra apilada.320px
/embed/groups/{slug}Cohesió mitjana, assistència mitjana, mida del grup.220px
/embed/topics/{slug}Distribució d'iniciatives sobre el tema (aprovades, rebutjades, en tràmit).220px
/embed/persons/{id}Fitxa breu del diputat: foto, grup, KPIs (assistència, dissidència).220px
/api/og/vote/{id}Imatge social 1200×630 (PNG) per a Open Graph / Twitter.

Exemple d'iframe:

<iframe
  src="https://holapolitica.org/embed/votes/12345"
  width="100%" height="320" frameborder="0"
  sandbox="allow-scripts allow-same-origin"
  loading="lazy"
  title="Votació al Congrés — Hola Política"
></iframe>

El sandbox és recomanat però opcional. Si t'omple massa l'alçada, ajusta l'atribut height — el contingut és responsive.

Diccionari de dades essencial

Els camps més consultats. La definició completa és al codi font (models/__init__.py).

  • vote.result: approved | rejected | tie. Empat només quan els sí igualen els no exactament.
  • vote.proposed_by_government: booleà. Quan és true, el camp proposing_group_slug sol ser null: el govern proposa, no un grup.
  • vote.expediente_raw: codi oficial del Congrés (p.ex. 122/000262) — clau per cercar a la font original.
  • initiative.type: enum amb proyecto_ley, proposicion_ley, proposicion_no_ley, real_decreto_ley, mocion, interpelacion, other.
  • cohesion: percentatge de membres del grup que voten igual que la majoria del grup. null quan menys de 3 membres voten.
  • coincidence: percentatge de votacions on dos grups voten igual sentit (sí vs. sí, no vs. no, abst. vs. abst.).
  • attendance: percentatge de votacions on el diputat emet un vot (sí, no o abstenció). Excusats i baixes computen com a absents perquè la font no els distingeix.
  • dissidence: percentatge de votacions on el diputat vota diferent que la majoria del seu grup. Diputats amb càrrec institucional (govern, mesa) tenen valors no comparables; el camp role_kind ho indica.

Llicències i atribució

  • Dades: CC-BY 4.0. Reutilitza-les citant Hola Política i la font original (Congreso de los Diputados).
  • Codi font: EUPL-1.2 (GitHub).
  • Widgets i imatges OG: lliures d'ús en mitjans i xarxes amb la mateixa obligació d'atribució.

Contacte tècnic: dades@holapolitica.org.

Et falta un endpoint

Si la teva redacció necessita un tall concret (per exemple, totes les votacions d'un partit en un trimestre), obre un issue al repositori i ho prioritzem.

Obrir un issue a GitHub
API i widgets · Hola Política · Hola Política