Skip to content

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>.csv

    Every 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.csv

    Every vote on one decision in voting order: kind, counts, record, who requested it, the split part’s wording. Example

  • /export/member/<id>/votes.csv

    One member’s position on every roll-call vote of the term, with the group’s line. Example

  • /export/grid/<procId>.csv

    A dossier’s voting grid: every roll-call vote on it × every group’s line. Example

  • /export/analysis/coalitions.csv

    Group × group agreement, groups on the winning side and pivotal groups, with the tool’s filters.

  • /export/analysis/cohesion.csv

    Cohesion per group or delegation and period, with the tool’s filters.

  • /export/analysis/members.csv

    Pairwise agreement of the chosen members and the votes where they differ.

  • /export/analysis/dissent.csv

    Votes 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 and meaning.
ColumnMeaning
dateSitting date (ISO 8601).
sitting_idThe EP’s sitting id, MTG-PL-YYYY-MM-DD.
nThe decision’s number on its sitting day — stable; /decisions/<date>/<n>.
voting_idThe EP’s id of the vote; /votes/<date>/<voting_id>.
titleThe decision’s title.
categoryKind of decision: legislation, consent, budget, objection, resolution, immunity, other.
committeeLead committee of the dossier (code), empty when none.
outcomeThe official result of the vote (ADOPTED, REJECTED …).
favor, against, abstentionOfficial counts.
m<id>One column per member: m + the EP person id (see the members file).
Member cells: the default words and the ?coding=wnominate numbers.
WordsW-NOMINATEMeaning
for1Voted for.
against6Voted against.
abstention9Abstained.
novote9In office that day, no vote recorded (not the same as absent: leave, illness, chairing the sitting look the same).
out0Not 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 and meaning.
ColumnMeaning
member_idThe EP person id (the m<id> columns of the matrix, /members/<id>).
nameAs the EP writes it, family name in capitals.
countryISO 3166-1 alpha-2.
genderAs recorded by the EP.
currenttrue while the member sits today.
start, leftFirst day in office this term; last day for former members (empty = in office).
group_now_or_lastGroup code now, or on the last day in office.
group_spansEvery group membership this term, “CODE start–end; …” (empty end = ongoing). Votes are counted in the group of the day.
changed_grouptrue when the spans hold more than one group (⇄ on the site).
national_partyNational party (EP label).
no_membership_recordtrue 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).