# Interface MEPDetails

Detailed MEP information including biography and social media.

Extends MEP with additional biographical information, contact details, social media profiles, voting statistics, and parliamentary roles. This interface represents the complete MEP profile available through the EP API `/meps/{id}/details` endpoint.

Personal Data: Contains multiple GDPR-protected fields (phone, address) requiring audit logging and data minimization practices.

Caching: Due to personal data, cache TTL should not exceed 15 minutes per ISMS Policy DP-003 (Data Retention).

#### Interface

MEPDetails

#### Example

    const mepDetails: MEPDetails = {
      // MEP base fields
      id: "person/124936",
      name: "Jane Marie Andersson",
      country: "SE",
      politicalGroup: "S&D",
      committees: ["DEVE", "ENVI"],
      email: "jane.andersson@europarl.europa.eu",
      active: true,
      termStart: "2019-07-02",

      // Extended fields
      biography: "Member of Parliament since 2019...",
      phone: "+32 2 28 45000",
      address: "European Parliament, Rue Wiertz 60, 1047 Brussels",
      website: "https://example.com",
      twitter: "@janeandersson",
      facebook: "jane.andersson.official",
      votingStatistics: {
        totalVotes: 1250,
        votesFor: 800,
        votesAgainst: 350,
        abstentions: 100,
        attendanceRate: 92 // 92% participation
      },
      roles: ["Vice-Chair of DEVE Committee", "Member of ENVI Committee"]
    };

#### Example

    // Minimal details (all optional fields omitted)
    const minimalDetails: MEPDetails = {
      id: "person/100000",
      name: "John Smith",
      country: "DE",
      politicalGroup: "EPP",
      committees: ["ECON"],
      active: true,
      termStart: "2024-07-16"
    };

#### See

- MEP for base MEP interface
- VotingStatistics for voting behavior metrics
- https://data.europarl.europa.eu/api/v2/

#### Gdpr

Contains personal data (phone, address) - requires audit logging

interface MEPDetails {
active: boolean;
committees: string[];
country: string;
id: string;
name: string;
politicalGroup: string;
termStart: string;
address?: string;
biography?: string;
email?: string;
facebook?: string;
phone?: string;
roles?: string[];
termEnd?: string;
twitter?: string;
votingStatistics?: VotingStatistics;
website?: string;
}

#### Hierarchy (View Summary)

- MEP
  - MEPDetails

- Defined in types/ep/mep.ts:251

##### Index

### Properties

active
committees
country
id
name
politicalGroup
termStart
address?
biography?
email?
facebook?
phone?
roles?
termEnd?
twitter?
votingStatistics?
website?

## Properties

### active

active: boolean

Current active status.

Indicates if the MEP is currently serving in the European Parliament. False for former MEPs or those who resigned/were replaced.

EP API Field: `active`

#### Example

    true  // Currently serving

#### Example

    false // Former MEP

Inherited from MEP.active

- Defined in types/ep/mep.ts:148

### committees

committees: string[]

Committee memberships.

Array of committee abbreviations where the MEP serves as member, substitute, chair, or vice-chair. MEPs typically serve on 1-2 standing committees plus temporary committees/delegations.

EP API Field: `committeeRoles`

Common Committees:

- "AFET" - Foreign Affairs
- "DEVE" - Development
- "INTA" - International Trade
- "BUDG" - Budgets
- "CONT" - Budgetary Control
- "ECON" - Economic and Monetary Affairs
- "EMPL" - Employment and Social Affairs
- "ENVI" - Environment, Public Health and Food Safety
- "ITRE" - Industry, Research and Energy
- "IMCO" - Internal Market and Consumer Protection
- "TRAN" - Transport and Tourism
- "REGI" - Regional Development
- "AGRI" - Agriculture and Rural Development
- "PECH" - Fisheries
- "CULT" - Culture and Education
- "JURI" - Legal Affairs
- "LIBE" - Civil Liberties, Justice and Home Affairs
- "AFCO" - Constitutional Affairs
- "FEMM" - Women's Rights and Gender Equality
- "PETI" - Petitions

#### Example

    ["DEVE", "ENVI"]

#### Example

    ["ECON", "BUDG", "CONT"]

#### See

Committee for committee details

Inherited from MEP.committees

- Defined in types/ep/mep.ts:119

### country

country: string

Country of representation.

ISO 3166-1 alpha-2 country code (2 uppercase letters). Represents the EU member state the MEP represents.

EP API Field: `country` Validation: Must match `/^[A-Z]{2}$/`

#### Example

    "SE" (Sweden)

#### Example

    "DE" (Germany)

#### Example

    "FR" (France)

Inherited from MEP.country

- Defined in types/ep/mep.ts:58

### id

id: string

Unique MEP identifier.

Format: "person/{numeric-id}" or numeric string Stable across parliamentary terms for historical tracking.

EP API Field: `identifier`

#### Example

    "person/124936"

#### Example

    "197789"

Inherited from MEP.id

- Defined in types/ep/mep.ts:30

### name

name: string

Full name in official format.

Format: "FirstName MiddleName(s) LastName" May include titles in some cases.

EP API Field: `label`

#### Example

    "Jane Marie Andersson"

#### Example

    "Dr. Hans-Peter Schmidt"

Inherited from MEP.name

- Defined in types/ep/mep.ts:43

### politicalGroup

politicalGroup: string

Political group affiliation.

Abbreviation of the political group in the European Parliament. Groups may change during parliamentary terms due to realignments.

EP API Field: `politicalGroup`

Common Values:

- "EPP" - European People's Party (Christian Democrats)
- "S&D" - Progressive Alliance of Socialists and Democrats
- "Renew" - Renew Europe (Liberals)
- "Greens/EFA" - Greens/European Free Alliance
- "ECR" - European Conservatives and Reformists
- "ID" - Identity and Democracy
- "The Left" - The Left in the European Parliament
- "NI" - Non-Inscrits (Non-attached members)

#### Example

    "S&D"

#### Example

    "EPP"

Inherited from MEP.politicalGroup

- Defined in types/ep/mep.ts:81

### termStart

termStart: string

Term start date.

Date when the MEP's term began in ISO 8601 format (YYYY-MM-DD). For current MEPs, typically aligned with parliamentary term start. For replacements, may be mid-term.

EP API Field: `termStart` Format: ISO 8601 date (YYYY-MM-DD) Validation: Must be valid date, typically after 1952-07-23 (first ECSC assembly)

#### Example

    "2019-07-02" // 9th parliamentary term start

#### Example

    "2024-07-16" // 10th parliamentary term start

Inherited from MEP.termStart

- Defined in types/ep/mep.ts:164

### `Optional` address

address?: string

Official office address.

Primary office address, typically European Parliament Brussels or Strasbourg location. May include building, floor, and office number.

EP API Field: `address` Format: Multi-line address string

#### Example

    "European Parliament, Rue Wiertz 60, ASP 08E123, 1047 Brussels, Belgium"

#### Example

    "European Parliament, 1 Avenue du Président Robert Schuman, 67000 Strasbourg, France"

#### Gdpr

Personal data - requires audit logging per ISMS AU-002

- Defined in types/ep/mep.ts:297

### `Optional` biography

biography?: string

Biographical information.

Free-text biography provided by the MEP or EP information service. May include educational background, professional experience, and political career highlights. Content may be in multiple languages.

EP API Field: `biography` Format: Plain text or HTML (sanitize before display) Max Length: Typically 500-2000 characters

#### Example

    "Member of the European Parliament since 2019, focusing on development and environmental issues. Former municipal councillor (2010-2019)."

- Defined in types/ep/mep.ts:265

### `Optional` email

email?: string

Official European Parliament email address.

Standard format: firstname.lastname@europarl.europa.eu Optional field as some MEPs may not have public email or may have left office.

EP API Field: `email` Validation: Must be valid email format

#### Example

    "jane.andersson@europarl.europa.eu"

#### Gdpr

Personal data - requires audit logging per ISMS AU-002

Inherited from MEP.email

- Defined in types/ep/mep.ts:135

### `Optional` facebook

facebook?: string

Facebook profile identifier.

Facebook profile username, page name, or numeric ID. May be username (facebook.com/username) or numeric ID (facebook.com/12345).

EP API Field: `facebook` Format: Username or numeric ID

#### Example

    "jane.andersson.official"

#### Example

    "100012345678901"

- Defined in types/ep/mep.ts:342

### `Optional` phone

phone?: string

Contact phone number.

Primary office phone number, typically Brussels or Strasbourg office. Format varies by country but usually includes country code.

EP API Field: `phone` Format: International format recommended (e.g., +32 2 28 XXXXX)

#### Example

    "+32 2 28 45000" (Brussels)

#### Example

    "+33 3 88 17 5000" (Strasbourg)

#### Gdpr

Personal data - requires audit logging per ISMS AU-002

- Defined in types/ep/mep.ts:281

### `Optional` roles

roles?: string[]

Parliamentary roles and positions.

Array of official roles held within the European Parliament, including committee positions, delegation memberships, and special assignments. Roles are current as of data fetch.

EP API Field: `roles`

Common Role Types:

- Committee Chair/Vice-Chair
- Delegation Chair/Vice-Chair/Member
- Quaestor
- Vice-President of Parliament

#### Example

    ["Vice-Chair of DEVE Committee", "Member of ENVI Committee", "Member of Delegation for relations with India"]

#### Example

    ["Chair of FEMM Committee", "Quaestor"]

- Defined in types/ep/mep.ts:376

### `Optional` termEnd

termEnd?: string

Term end date.

Date when the MEP's term ended in ISO 8601 format (YYYY-MM-DD). Undefined for currently active MEPs. Set for former MEPs who completed their term, resigned, or were replaced.

EP API Field: `termEnd` Format: ISO 8601 date (YYYY-MM-DD) Validation: Must be valid date after termStart if present

#### Example

    "2024-07-15" // End of 9th term

#### Example

    "2020-01-31" // Brexit date for UK MEPs

Inherited from MEP.termEnd

- Defined in types/ep/mep.ts:180

### `Optional` twitter

twitter?: string

Twitter/X handle.

Social media handle for Twitter/X platform (without @ prefix in data, but typically displayed with @). Not validated against current platform availability.

EP API Field: `twitter` Format: Username without @ prefix Validation: Alphanumeric and underscores, 1-15 characters

#### Example

    "janeandersson"

#### Example

    "Jane_Andersson_MEP"

- Defined in types/ep/mep.ts:328

### `Optional` votingStatistics

votingStatistics?: VotingStatistics

Voting behavior statistics.

Aggregated statistics on the MEP's voting patterns including attendance rate and vote distribution. Calculated from plenary session roll-call votes.

EP API Field: `votingStatistics` (computed) Update Frequency: Updated after each plenary session

#### See

VotingStatistics for detailed metrics

- Defined in types/ep/mep.ts:356

### `Optional` website

website?: string

Personal or official website URL.

MEP's personal website, campaign site, or party profile page. URL should be validated for HTTPS and accessibility.

EP API Field: `website` Format: Full URL with protocol Validation: Must be valid URL format

#### Example

    "https://www.janeanderson.eu"

#### Example

    "https://example-party.eu/members/jane-andersson"

- Defined in types/ep/mep.ts:312