European Parliament MCP Server API - v1.3.9
    Preparing search index...

    Interface VotingRecord

    Voting record for a plenary vote.

    Represents a single roll-call vote conducted during a plenary session. Includes vote topic, timestamp, aggregate results, final outcome, and optionally individual MEP voting positions. Roll-call votes are recorded electronically and published for transparency.

    Vote Types:

    • Legislative votes (ordinary/special legislative procedure)
    • Budget votes
    • Resolution votes
    • Procedural votes
    • Amendments

    Quorum: Simple majority of component MEPs (currently 353 of 705) Special Majorities: Some votes require absolute majority or 2/3 majority

    Data Source: EP API /voting-records

    VotingRecord

    const vote: VotingRecord = {
    id: "VOTE-2024-11-20-001",
    sessionId: "P9-2024-11-20",
    topic: "Amendment 47 to Digital Services Act",
    date: "2024-11-20T14:30:00Z",
    votesFor: 385,
    votesAgainst: 210,
    abstentions: 45,
    result: "ADOPTED",
    mepVotes: {
    "person/124936": "FOR",
    "person/100000": "AGAINST",
    "person/198765": "ABSTAIN"
    }
    };

    // Calculate total participation
    const totalVotes = vote.votesFor + vote.votesAgainst + vote.abstentions;
    console.log(`${totalVotes} MEPs participated in this vote`);
    // Vote without individual MEP positions (aggregate only)
    const aggregateVote: VotingRecord = {
    id: "VOTE-2024-11-21-015",
    sessionId: "P9-2024-11-21",
    topic: "Approval of 2025 Budget",
    date: "2024-11-21T18:45:00Z",
    votesFor: 420,
    votesAgainst: 180,
    abstentions: 55,
    result: "ADOPTED"
    };
    interface VotingRecord {
        abstentions: number;
        date: string;
        id: string;
        result: "ADOPTED" | "REJECTED";
        sessionId: string;
        topic: string;
        votesAgainst: number;
        votesFor: number;
        mepVotes?: Record<string, "FOR" | "AGAINST" | "ABSTAIN">;
    }
    Index

    Properties

    abstentions: number

    Number of abstentions.

    Count of MEPs who abstained from the vote. Abstention is a recorded position distinct from absence.

    EP API Field: abstentions Min Value: 0 Max Value: Current EP size (typically 705)

    45
    
    55
    
    date: string

    Vote timestamp.

    Date and time when the vote was conducted in ISO 8601 format with timezone (UTC). Precise timing important for procedural records and vote sequencing.

    EP API Field: date or timestamp Format: ISO 8601 datetime with timezone (YYYY-MM-DDTHH:MM:SSZ) Validation: Must be valid ISO 8601 datetime

    "2024-11-20T14:30:00Z"
    
    "2024-11-21T18:45:00Z"
    
    id: string

    Unique voting record identifier.

    Format: "VOTE-{date}-{sequence}" where sequence is vote number within the session day.

    EP API Field: identifier Format Pattern: VOTE-YYYY-MM-DD-NNN Validation: Must match /^VOTE-\d{4}-\d{2}-\d{2}-\d{3}$/

    "VOTE-2024-11-20-001"
    
    "VOTE-2024-11-20-042"
    
    result: "ADOPTED" | "REJECTED"

    Vote result outcome.

    Final outcome of the vote based on voting rules (typically simple majority). "ADOPTED" means the measure passed, "REJECTED" means it failed.

    EP API Field: result

    Values:

    • "ADOPTED" - Measure passed (votesFor > votesAgainst, meeting quorum)
    • "REJECTED" - Measure failed (votesFor <= votesAgainst or quorum not met)
    "ADOPTED"
    
    "REJECTED"
    
    sessionId: string

    Associated plenary session ID.

    References the plenary session where this vote took place. Links vote to session context including location and broader agenda.

    EP API Field: sessionId Format: Matches PlenarySession.id format

    "P9-2024-11-20"
    

    PlenarySession for session details

    topic: string

    Vote topic or subject matter.

    Human-readable description of what was being voted on. May include legislative reference, amendment number, or resolution title. Typically concise (50-200 characters).

    EP API Field: title or subject Max Length: Typically 200 characters

    "Amendment 47 to Digital Services Act (Article 5)"
    
    "Motion for resolution on climate emergency"
    
    "Final vote on 2025 EU Budget"
    
    votesAgainst: number

    Number of votes against.

    Count of MEPs who voted "AGAINST" or "NO" on the measure.

    EP API Field: against Min Value: 0 Max Value: Current EP size (typically 705)

    210
    
    180
    
    votesFor: number

    Number of votes in favor.

    Count of MEPs who voted "FOR" or "YES" on the measure. Combined with votesAgainst and abstentions determines outcome.

    EP API Field: for or favour Min Value: 0 Max Value: Current EP size (typically 705)

    385
    
    420
    
    mepVotes?: Record<string, "FOR" | "AGAINST" | "ABSTAIN">

    Individual MEP voting positions.

    Map of MEP IDs to their vote position for this specific vote. Optional as individual positions may not always be published or may be available separately. Used for transparency and voting pattern analysis.

    EP API Field: individualVotes Key: MEP ID (format: "person/{id}") Value: Vote position enum

    Vote Positions:

    • "FOR" - Voted in favor
    • "AGAINST" - Voted against
    • "ABSTAIN" - Abstained from voting
    {
    * "person/124936": "FOR",
    * "person/100000": "AGAINST",
    * "person/198765": "ABSTAIN"
    * }

    MEP for MEP details