API Documentation
A public, open-data REST API for European Parliament voting records. No authentication required. Built for journalists, researchers and civic developers.
Base URL
https://api.europescope.eu/v1Authentication
Rate limits
Versioning
/v1/…). Breaking changes ship under a new prefix; /v1 stays stable.Response format
{total, limit, offset, results}. Positions: F=For, A=Against, B=Abstain, N=Absent.Data license
Quickstart
Every endpoint is a plain HTTP GET returning JSON. For example:
# the 10 closest votes of the term
curl "https://api.europescope.eu/v1/analytics/close-votes?limit=10"
# compare two MEPs
curl "https://api.europescope.eu/v1/compare/meps?ids=197490,197491"In Python:
import requests
r = requests.get("https://api.europescope.eu/v1/analytics/rebel-votes",
params={"country": "RO", "limit": 10})
for mep in r.json()["results"]:
print(mep["full_name"], mep["rebel_vote_count"])A fuller example is in the downloadable Python script.
Endpoints
MEPs
Members of the European Parliament, their profiles, votes and statistics.
/v1/membersList MEPs. Filters: country, group, search, current_term.
Try: /v1/members?country=RO&limit=5 ↗/v1/members/{id}/votesAn MEP's individual vote positions.
Try: /v1/members/197490/votes?limit=10 ↗/v1/members/{id}/statisticsAttendance, loyalty, rebel counts.
Try: /v1/members/197490/statistics ↗Votes
Roll-call votes, breakdowns by group and country, per-vote topics.
/v1/votesList votes. Filters: search, main_only, sort, importance, collapse.
Try: /v1/votes?sort=importance&importance=key&limit=5 ↗Countries
National delegations and the comprehensive country dashboard.
/v1/countries/{code}/dashboardFull dashboard: topics, rankings, split votes, vs-EU, similarity.
Try: /v1/countries/RO/dashboard ↗Topics
Policy topics and topic-level vote listings.
Analytics
Cross-cutting analytics.
/v1/analytics/close-votesMain votes decided by the narrowest margins.
Try: /v1/analytics/close-votes?limit=10 ↗/v1/analytics/rebel-votesMEPs ranked by votes against their group.
Try: /v1/analytics/rebel-votes?country=RO&limit=10 ↗Compare
MEP search and head-to-head comparison.
/v1/compare/mepsCompare 2–4 MEPs (similarity, topics, disagreements).
Try: /v1/compare/meps?ids=197490,197491 ↗Methodology & audit
Every number is traceable to a formula and version.
/v1/methodology/{slug}A single methodology with formula + limitations.
Try: /v1/methodology/attendance ↗/v1/audit/mep/{id}/{metric}'Why this number?' audit for an MEP metric.
Try: /v1/audit/mep/197490/attendance ↗Exports
CSV exports for offline analysis in Excel, R, pandas.
System
Health checks and data-quality dashboard.
Changelog
v0.1.0-mvpInitial public API: MEPs, votes, countries, topics, analytics, compare, methodology/audit, CSV exports.
Contact
Questions, bug reports, or research collaboration: data@openparliament.eu. Source code and issues: GitHub ↗.