Data & downloads
Every table on this site downloads as CSV (UTF-8, RFC 4180) or JSON. The 10th term only, from July 2024. Source: European Parliament, CC BY 4.0.
Downloads
Whole-term files. Register exports take the same filters as the register page (its query string); the Export menu on each page links them with the page’s filters.
- Decisions decisions
Every decision of the term: date, kind, text, dossier, effect, the final vote’s counts and record, topics. Takes the decision register’s filters.
- Roll-call votes votes
Every roll-call vote: the vote in words, its decision, kind, counts, outcome, the groups that requested it. Takes the vote register’s filters.
- Member records records?period=term&scope=all
Every current and former member’s roll-call participation, votes with the majority line and against the clear line, with denominators (group at the date).
- Dossiers dossiers
Every dossier with a decision in plenary: reference, type, stage, lead committee, decisions, first and last date.
- Final votes × members finals-matrix
One row per final vote recorded by name, one column per member; positions as words (see the codebook).
- Final votes × members, W-NOMINATE coding finals-matrix?coding=wnominate
The same matrix coded 1 / 6 / 9 / 0 for W-NOMINATE, pscl and similar packages.
- Members members
The member sheet of the codebook: id, name, country, national party, start and end, group spans.
Exports of one object or analysis
Replace the parts in angle brackets; add .csv or .json (and .meta.json for a CSV’s meta). The same links sit in the Export menu of each page.
/export/vote/<date>/<votingId>.csvEvery member’s position on one roll-call vote, with the group at the date and whether it was against the group’s clear line. Add -crosstab for country × group counts. Example
/export/decision/<date>/<n>/votes.csvEvery vote on one decision in voting order: kind, counts, record, who requested it, the split part’s wording. Example
/export/member/<id>/votes.csvOne member’s position on every roll-call vote of the term, with the group’s line. Example
/export/grid/<procId>.csvA dossier’s voting grid: every roll-call vote on it × every group’s line. Example
/export/analysis/coalitions.csvGroup × group agreement, groups on the winning side and pivotal groups, with the tool’s filters.
/export/analysis/cohesion.csvCohesion per group or delegation and period, with the tool’s filters.
/export/analysis/members.csvPairwise agreement of the chosen members and the votes where they differ.
/export/analysis/dissent.csvVotes against the group’s clear line per member, with rates and denominators.
Codebook
The columns of the two bulk files. Every JSON export is an object with meta and rows; CSV files carry the same columns.
Every export’s meta
source and licence; retrieved (timestamp); filters as the backend understood them; data — the vote matrix’s builtAt, its data stamp hash (a short hash of the source tables’ change stamps: it changes
whenever the data may have changed, it is not a checksum of the content — Methods), the backend’s code commit and every metric’s version; notes on coding and caveats. Figures are at full precision; rounding happens on screen only.
A JSON export carries meta beside its rows. A CSV file has only the columns, so its meta is served beside it: add .meta.json in place of .csv, with the same query — /export/records.meta.json?period=term&scope=all describes /export/records.csv?period=term&scope=all. Keep the two files together when you archive or share a CSV.
Final votes × members finals-matrix
One row per final vote recorded by name, agenda motions left out. Takes the analysis filters (from, to, committee, topic).
| Column | Meaning |
|---|---|
date | Sitting date (ISO 8601). |
sitting_id | The EP’s sitting id, MTG-PL-YYYY-MM-DD. |
n | The decision’s number on its sitting day — stable; /decisions/<date>/<n>. |
voting_id | The EP’s id of the vote; /votes/<date>/<voting_id>. |
title | The decision’s title. |
category | Kind of decision: legislation, consent, budget, objection, resolution, immunity, other. |
committee | Lead committee of the dossier (code), empty when none. |
outcome | The official result of the vote (ADOPTED, REJECTED …). |
favor, against, abstention | Official counts. |
m<id> | One column per member: m + the EP person id (see the members file). |
| Words | W-NOMINATE | Meaning |
|---|---|---|
for | 1 | Voted for. |
against | 6 | Voted against. |
abstention | 9 | Abstained. |
novote | 9 | In office that day, no vote recorded (not the same as absent: leave, illness, chairing the sitting look the same). |
out | 0 | Not a member on that day. |
Members members
Every member of the term with a vote record or a current seat. Group codes as the EP writes them (PPE = EPP, PfE = Patriots, Verts/ALE = Greens, NI = non-attached).
| Column | Meaning |
|---|---|
member_id | The EP person id (the m<id> columns of the matrix, /members/<id>). |
name | As the EP writes it, family name in capitals. |
country | ISO 3166-1 alpha-2. |
gender | As recorded by the EP. |
current | true while the member sits today. |
start, left | First day in office this term; last day for former members (empty = in office). |
group_now_or_last | Group code now, or on the last day in office. |
group_spans | Every group membership this term, “CODE start–end; …” (empty end = ongoing). Votes are counted in the group of the day. |
changed_group | true when the spans hold more than one group (⇄ on the site). |
national_party | National party (EP label). |
no_membership_record | true when the EP has no group membership record: the current group is used from the first recorded vote. |
How to cite the dataset
Cite the retrieval date; for a single figure, cite its page instead — every object and analysis page has its own citation, analyses with the period pinned.
Data last updated 24 Sept 2026, 05:54 UTC. Each export’s meta.data names the exact data version.
Plain text
EU Parl Watch Research (2026). European Parliament roll-call votes, 10th term (dataset). https://news.eu-parl.st-solutions.dev/data (retrieved 25 September 2026). Data: European Parliament Open Data, https://data.europarl.europa.eu/ (CC BY 4.0). Source: European Parliament.
BibTeX
@misc{epw-dataset-2026-09-25,
author = {{EU Parl Watch Research}},
title = {{European Parliament roll-call votes, 10th term}},
year = {2026},
howpublished = {\url{https://news.eu-parl.st-solutions.dev/data}},
url = {https://news.eu-parl.st-solutions.dev/data},
urldate = {2026-09-25},
note = {Dataset. Data: European Parliament Open Data (CC BY 4.0). Source: European Parliament.}
}Licence, stability and scope
- Licence. The data comes from the European Parliament’s Open Data Portal under CC BY 4.0. Credit it as “Source: European Parliament”.
- Stable URLs. The
/export/…addresses and their parameters are the stable interface of this site; scripts can rely on them. Column changes are announced on Methods. - Scope. The 10th parliamentary term only (from 16 July 2024), updated daily. Roll-call votes with named positions; votes by show of hands or counted without names have no member positions.
- As recorded. Positions are as the EP recorded them; later corrections of voting intention are not applied (they never change a result).