Optionalshared: EPSharedResourcesProtected ReadonlybaseEuropean Parliament API base URL.
Protected ReadonlycacheLRU cache for API responses.
Protected ReadonlyenableEnable automatic retry on transient failures.
Protected ReadonlymaxMaximum allowed response body size in bytes.
Protected ReadonlymaxMaximum number of retry attempts.
Protected ReadonlyrateToken bucket rate limiter.
Protected ReadonlytimeoutRequest timeout in milliseconds.
Clears all entries from the LRU cache.
ProtectedevictEvicts a single cache entry matching the given endpoint and params. Sub-clients use this when they detect that a successfully-fetched payload is a content-pending sentinel that must not be served from cache for the remainder of the TTL — eviction lets availability recover as soon as the upstream document is enriched.
PrivatefetchFetches vote results for a specific sitting/session.
PrivatefetchFetches vote results from recent meetings when no sessionId is given.
PrivatefilterApplies client-side filters to voting records.
ProtectedgetExecutes a cached, rate-limited GET request to the EP API.
Expected response type (extends Record<string, unknown>)
API endpoint path (relative to baseURL)
Optionalparams: Record<string, unknown>Optional query parameters
OptionalminimumTimeoutMs: numberOptional per-request minimum timeout in milliseconds.
When provided, the effective timeout is Math.max(minimumTimeoutMs, this.timeoutMs),
so the global timeout (set via --timeout or EP_REQUEST_TIMEOUT_MS) can still
extend it beyond the per-endpoint minimum.
Use for known slow EP API endpoints such as procedures/feed.
Promise resolving to the typed API response
Returns cache statistics for monitoring and debugging.
{ size, maxSize, hitRate, hits, misses }
Returns plenary speeches.
EP API Endpoint: GET /speeches
Note: The EP API /speeches endpoint does not support a
year query parameter. It supports sitting-date (range start)
and sitting-date-end (range end) for date filtering.
Use dateFrom / dateTo (YYYY-MM-DD) for date-range queries —
these are mapped to sitting-date / sitting-date-end.
Retrieves voting records with filtering by session, topic, and date.
EP API Endpoint: GET /meetings/{sitting-id}/vote-results
sessionId, topic, dateFrom, dateTo, limit, offset
Paginated voting records list
PrivatetransformPrivatetransform
Sub-client for voting records and speeches EP API endpoints.