About the project
What it is, how it works and where the data comes from.
Why this tool
In representative democracies, citizens don't vote directly on laws: we delegate that decision to the people we elect every four years. The compact works if we can see what our representatives do with that mandate, which laws they approve, which they reject, who proposes them, how each group votes. This platform centralises that information in one place, open and downloadable, so any citizen or journalist can follow it without navigating scattered official portals.
What Hola Política is
Open civic platform that centralises votes, initiatives and parliamentary activity from Spanish chambers. Lets journalists and citizens see how each representative or group voted, with no intermediaries and no political interpretation.
Principle: mirror, not megaphone
The project is neutral civic infrastructure. It issues no opinions or assessments about the votes, only verifiable data. Comparative metrics across groups or representatives are always shown in full (every pair, both ends of the range) to avoid one-sided narratives.
How we use AI
The official texts of Congress are long and technical. To make them readable, a language model does four jobs, and none of them is deciding anything:
- It summarises each initiative in plain language and gives it a headline.
- It sorts it into topics (housing, health, jobs…), which is how you can filter it.
- It picks out who it affects from the text of the law itself (tenants, self-employed, young people…).
- It reads each law's official text (the Congress PDF, or the BOE for Royal Decree-laws) to set out its concrete measures, with the article each comes from, and what it changes: taxes, rights, environment and how services are run, always in pairs. Every tag carries the passage behind it and is checked by a stricter second reading; if it cannot be justified, it is not shown.
Everything the AI produces is marked "made with AI", and the official text is always one tap away under "Original text". It can be wrong: the legal text is the authority.
Vote results and who voted what never go through AI: they come straight from the official Congress data.
Where the data comes from
From the open data the Congress of Deputies publishes at congreso.es: plenary votes with each deputy's vote, initiatives and their passage, the make-up of the groups and the sitting calendar. We import it automatically.
We don't touch it up. If something is missing at the source it is missing here too, and we say so: a vote carried by assent, for instance, has no roll call, and the card says that.
Personal data and GDPRWhat each term means
Parliamentary language is technical. Here are the terms you'll encounter most often, in plain language.
- Proyecto de Ley (Government bill)
- A law proposed by the Government. If approved, it becomes binding law. The main path by which the Government legislates.
- Proposición de Ley (Parliamentary bill)
- A law proposed by a parliamentary group (not the Government). If approved, it becomes binding law.
- Proposición no de Ley / PNL (Non-binding motion)
- A NON-binding proposal. Asks the Government to do something but does not change the law. If approved, it's a political mandate without direct legal force. The most frequent kind of plenary vote.
- Real Decreto-ley / RDL (Royal Decree-law)
- An emergency norm with the force of law issued by the Government. Congress must ratify (accept) or repeal (annul) it within 30 days.
- Moción consecuencia de interpelación
- After an urgent question to the Government (interpelación), a group can table a motion demanding a specific position. Politically binding, not legally.
- Convalidación / Derogación
- Congress's decision on a Government RDL: convalidar = accept, derogar = annul.
- Internal cohesion
- % of a group's members voting the same way. 100% cohesion means perfect voting discipline; lower numbers signal cross-cutting votes.
- Cross-group coincidence
- % of votes where two groups voted the same way (Aye, No or Abstain).
Coverage
- Phase 1, Spanish Congress (XV legislature), live.
- Phase 2, Catalan Parliament, coming.
- Phase 3, Barcelona City Council Plenary, coming.
Public API
Everything you see here is available to journalists, researchers and citizens through a documented REST API. No keys, no signup, no arbitrary limits. Data is published under CC-BY 4.0.
GET /docsInteractive documentation (Swagger UI)GET /redocAlternative documentation (ReDoc)GET /openapi.jsonOpenAPI specification (machine-readable JSON)
Bulk JSON dumps
For academic analysis and data journalism, we expose dump endpoints that return a full dataset in a single request:
Active representatives in a legislature with their group and constituency.
curl 'https://api.holapolitica.org/dump/deputies?legislature_id=1'
Every vote in a legislature with aggregate counts (Aye/No/Abst/Absent). Optional date range filter.
curl 'https://api.holapolitica.org/dump/votes?legislature_id=1&from=2024-01-01&to=2024-12-31'
Each representative's individual vote on ONE specific vote (id passed in). Split out to avoid downloads of hundreds of thousands of records in a single request.
curl 'https://api.holapolitica.org/dump/vote-records?vote_id=42'
Every initiative in a legislature with its topic classification.
curl 'https://api.holapolitica.org/dump/initiatives?legislature_id=1'
Quotas
No hard limits today. We ask consumers to keep a reasonable pace. For recurring bulk loads or intensive academic use, contact us to coordinate periodic dataset copies.
Licence and contribution
Code under EUPL-1.2. Data under CC-BY 4.0. The project is open source and contributions are welcome.