Creates a new European Parliament API client.
Builds shared LRU cache and rate-limiter, then wires all sub-clients to use them so the whole facade operates within one resource budget.
Optional client configuration
Private ReadonlycommitteePrivate ReadonlydocumentPrivate ReadonlylegislativePrivate ReadonlymepPrivate ReadonlyplenaryPrivate ReadonlyquestionPrivate ReadonlyvocabularyPrivate ReadonlyvotingReturns a single adopted text by document ID.
EP API Endpoint: GET /adopted-texts/{doc-id}
Returns adopted texts.
EP API Endpoint: GET /adopted-texts
Returns cache statistics for monitoring and debugging.
{ size, maxSize, hitRate, hits, misses }
Returns a single committee document by ID.
EP API Endpoint: GET /committee-documents/{doc-id}
Returns committee documents.
EP API Endpoint: GET /committee-documents
Returns EP controlled vocabularies.
EP API Endpoint: GET /controlled-vocabularies
Returns the list of all current EP Corporate Bodies for today's date.
EP API Endpoint: GET /corporate-bodies/show-current
Returns all currently active MEPs for today's date.
EP API Endpoint: GET /meps/show-current
Returns a single document by ID.
EP API Endpoint: GET /documents/{doc-id}
Returns EP events (hearings, conferences, etc.).
EP API Endpoint: GET /events
Returns a single external document by ID.
EP API Endpoint: GET /external-documents/{doc-id}
Returns all External Documents.
EP API Endpoint: GET /external-documents
Returns homonym MEPs for the current parliamentary term.
EP API Endpoint: GET /meps/show-homonyms
Returns all incoming MEPs for the current parliamentary term.
EP API Endpoint: GET /meps/show-incoming
Returns activities linked to a specific meeting (plenary sitting).
EP API Endpoint: GET /meetings/{sitting-id}/activities
Returns a single EP meeting by ID.
EP API Endpoint: GET /meetings/{event-id}
Returns decisions made in a specific meeting (plenary sitting).
EP API Endpoint: GET /meetings/{sitting-id}/decisions
Returns foreseen activities linked to a specific meeting.
EP API Endpoint: GET /meetings/{sitting-id}/foreseen-activities
Returns plenary session document items for a specific meeting.
EP API Endpoint: GET /meetings/{sitting-id}/plenary-session-document-items
Returns plenary session documents for a specific meeting.
EP API Endpoint: GET /meetings/{sitting-id}/plenary-session-documents
Returns a single MEP declaration by document ID.
EP API Endpoint: GET /meps-declarations/{doc-id}
Returns MEP declarations of financial interests.
EP API Endpoint: GET /meps-declarations
Retrieves detailed information about a specific MEP.
Supports numeric ID ("124936"), person URI ("person/124936"), or MEP-prefixed ID ("MEP-124936").
MEP identifier in any supported format
Detailed MEP information
Retrieves Members of the European Parliament with filtering and pagination.
country, group, committee, active, limit, offset
Paginated MEP list
Returns all outgoing MEPs for the current parliamentary term.
EP API Endpoint: GET /meps/show-outgoing
Returns a single parliamentary question by document ID.
EP API Endpoint: GET /parliamentary-questions/{doc-id}
Retrieves parliamentary questions with filtering by type, author, and status.
type, author, topic, status, dateFrom, dateTo, limit, offset
Paginated parliamentary questions list
Returns a single plenary document by ID.
EP API Endpoint: GET /plenary-documents/{doc-id}
Returns plenary documents.
EP API Endpoint: GET /plenary-documents
Returns a single plenary session document by ID.
EP API Endpoint: GET /plenary-session-documents/{doc-id}
Returns all Plenary Session Document Items.
EP API Endpoint: GET /plenary-session-documents-items
Returns plenary session documents.
EP API Endpoint: GET /plenary-session-documents
Retrieves plenary sessions with date and location filtering.
dateFrom, dateTo, location, limit, offset
Paginated plenary session list
Returns events linked to a procedure.
EP API Endpoint: GET /procedures/{process-id}/events
Returns legislative procedures.
EP API Endpoint: GET /procedures
Returns plenary speeches.
EP API Endpoint: GET /speeches
Retrieves voting records with filtering by session, topic, and date.
sessionId, topic, dateFrom, dateTo, limit, offset
OptionaldateFrom?: stringOptionaldateTo?: stringOptionallimit?: numberOptionalmepId?: stringOptionaloffset?: numberOptionalsessionId?: stringOptionaltopic?: stringPaginated voting records list
Searches legislative documents by keyword, type, date, and committee.
keyword, documentType, dateFrom, dateTo, committee, limit, offset
Paginated legislative documents list
Private StaticbuildPrivateBuilds the shared resources object that is passed to all sub-clients. Extracted to keep the constructor complexity within ESLint limits.
Client configuration options
Shared resources for all EP sub-clients
European Parliament API Client.
Provides type-safe, high-performance access to the European Parliament Open Data Portal with comprehensive caching, rate limiting, and GDPR-compliant audit logging.
Architecture Note: This class is a thin facade; all logic lives in the bounded-context sub-clients under
src/clients/ep/. The facade owns the shared LRU cache and rate-limiter and passes them to every sub-client so they all operate within the same resource budget.Performance Targets:
Features:
ISMS Policy Compliance:
Example
Security
See