Changelog
Every change to /api/v2/*: endpoint additions, response shape tweaks, bug fixes. Breaking changes will get a major version bump; we haven't had one yet.
Versioning
The API is at /api/v2. We commit to:
- Non-breaking additions (new fields, new endpoints, new enum values) ship any time, documented here.
- Breaking changes (removing fields, changing types, renaming endpoints) would trigger a new major version and 6 months of parallel support.
- Behaviour fixes that change response data (not shape) are documented here but are not breaking.
2026
4 July 2026: EuroVoc taxonomy tree (966 total)
The EuroVoc subject thesaurus, the EU's official multilingual classification, is now walkable as a tree rather than only searchable. Four new routes under /api/v2/legislative/eurovoc/taxonomy expose the full hierarchy: 21 domains, 127 microthesauri and ~7,500 descriptors, each with its skos:broader parent and labels in English, Spanish, French, Italian and Dutch.
- Walk top-down:
GET /taxonomy/domains(the 21 domains),GET /taxonomy/microthesauri?domain=28(a domain's microthesauri),GET /taxonomy/descriptors?microthesaurus=2826&q=climate(leaf terms, by microthesaurus or free text). - Resolve one concept + its path:
GET /taxonomy/concept/1764returns the concept followed by its ancestors (domain > microthesaurus > broader terms). Every concept carries its stable EuroVoc URI, so it stays linkable to EUR-Lex act tagging.
26 June 2026: Input-first extract endpoint (935 total)
A new folder, /api/v2/extract, turns the API input-first: give it any EU institutional URL and it returns structured items, the way Tavily does for the open web but built for the EU estate. It detects which of the eight EU web platforms the page is built on (the EC component library, Drupal, WordPress, Dynamics, JCMS, SharePoint, single-page apps, or bespoke), fetches it through the matching path (a plain request, or a headless browser for JavaScript-rendered and walled sites), and returns the same five-datapoint items as the rest of the API.
- One call, any EU page:
GET /api/v2/extract?url=https://cinea.ec.europa.eu/news-events/news_enreturns the news items, dated and titled, without anyone writing a scraper for CINEA. - You get the detected platform, how it was fetched, and the extracted items. Live, fetched at request time.
26 June 2026: Public Consultations made cross-body (934 total)
The /api/v2/consultations/ folder now aggregates every EU public consultation from every body in one feed: the Commission's "Have Your Say" register and the decentralised agency consultations (EIOPA, BEREC, ACER, EASA, ECHA, EMA, EDPB and more) in one place, with the same pick-your-scope picker as Events and News.
- Pick your scope:
?institution=European Commission,?body=echa,ema,?family=finance-economy, or everything;?status=openfor live consultations. - Endpoints: directory,
/all(filter by body, family, institution, status, closing-date range and free text),/bodies(the pick-list),/{id}(one consultation in full). Each carries the responsible DG, policy areas, feedback count, closing date and the link. - 973 consultations across 12 bodies (288 currently open).
26 June 2026: Funding Programmes catalogue (931 total)
A new folder, /api/v2/programmes/, catalogues every EU funding programme in one place: the 46 programmes of the 2021-2027 budget plus the 10 Joint Undertakings that run Horizon Europe calls, enriched with the managing institution and body, the responsible department, programme type, period, indicative budget and the live "where to apply" portal.
- Pick your scope:
?institution=Joint Undertakingfor everything a kind of body runs,?body=cineaor?dg=DG CLIMAfor a specific managing body or department, or filter by MFF heading, cluster, programme type or free text. - Endpoints: directory (totals and budget by institution, heading, type and coverage),
/all(the filterable list, largest budget first),/institutions(the pick-list of institutions, bodies and departments),/{acronym}(one programme in full). - Each programme links to its live application portal and, where Brubru already serves the data, to its calls/projects endpoint. Budgets are indicative 2021-2027 headline allocations.
26 June 2026: Cross-body Events and News aggregators (927 total)
Two new folders centralise events and news across every EU body into a single feed each, so you no longer query 80+ folders one by one. Both are query-time aggregators (they store nothing new): /api/v2/events/ unions the institutional calendar with every body's events, and /api/v2/news/ bundles news, press releases, stories, speeches and statements.
- Pick your scope:
?body=commission,parliament,ecbfor specific bodies, or?family=defence-security-bordersfor a Brubru policy family (a curated, many-to-many grouping of bodies by policy area), or neither for everything. - Events (
/api/v2/events/all): 6,374 events across 49 bodies, filter bywhen(upcoming / past), date range, free text and source./api/v2/events/bodiesis the pick-list. - News (
/api/v2/news/all): 8,670 items across 71 bodies, filter bykind(news / press_release), date range and free text. - Both carry the 5-datapoint contract and a source-tagged, deduplicated envelope.
26 June 2026: Every EU institution, body and agency now has a folder (919 total)
The build-out of the Data Provider vertical is complete: every EU institution, body and agency is now on the public API as its own folder. This release closes the long tail, the EURATOM Joint Undertakings and the remaining executive agencies, advisory bodies, justice-and-home-affairs agencies, and security-and-defence bodies, and brings the published surface to 919 endpoints across 84 folders.
- EURATOM & Joint Undertakings (12): Fusion for Energy (F4E), Europe's Rail, Smart Networks and Services (SNS), Euratom Supply Agency, Clean Hydrogen, Clean Aviation, SESAR 3, Chips, Circular Bio-based Europe (CBE), Global Health EDCTP3, Innovative Health Initiative (IHI) and EuroHPC, each a
/api/v2/<body>/folder with the folder directory plus list and detail pairs (news, publications, events and topic snapshots, per body). - Executive agencies: HaDEA, CINEA, EISMEA, ERCEA, REA and EACEA.
- Justice and home affairs: the Court of Justice (CJEU), Eurojust, Europol, Frontex and CEPOL.
- Advisory, oversight, defence and external action: the Committee of the Regions, the European Economic and Social Committee, the Court of Auditors, the Ombudsman, the EDPS and EDPB, plus the defence cluster (EDA, SatCen, EUISS, ESDC) and the European External Action Service.
- Postman: all 919 requests are mirrored in the published Brubru API v2 collection, grouped one folder per institutional domain.
24 June 2026: European External Action Service (EEAS) folder shipped (523 total)
The EU's diplomatic service is now on the public API as its own folder, /api/v2/eeas/. The eeas.europa.eu site sits behind a JS / bot wall, so the feeds are rendered with Playwright headless Chromium and refreshed locally (same constraint as FRA / EUIPO). 11 endpoints: the folder directory plus list and detail pairs for five resources.
- News:
GET /eeas/newspress releases, statements, speeches and op-eds from the EEAS and the EU delegations. - Publications:
GET /eeas/publicationsreports, fact-sheets, strategy papers and annual reports. - Events:
GET /eeas/eventssummits, dialogues, ministerials and conferences. - Tenders:
GET /eeas/tendersongoing EEAS calls for tenders and grants. - Topics:
GET /eeas/topicssnapshots of the EEAS thematic and geographic reference pages (structure, missions and operations, regional desks, security and defence, sanctions, Global Gateway and more). - People: the 352 EEAS officials are served through
/api/v2/who-is-who/officials(the EU Who Is Who directory, filterable by the EEAS organisation), so they are not duplicated under the EEAS folder.
21 June 2026: Eurostat sport + fitness-relevant health series added to Open data (512 total)
Three new endpoints under /api/v2/open-data/eurostat-series/ wrap Eurostat's dissemination JSON-stat 2.0 API for sport, physical activity, BMI, household sport expenditure, and cultural employment (the umbrella under which sport sub-activities sit in NACE Rev. 2). A curated whitelist of 12 datasets makes them discoverable without trawling thousands of Eurostat codes; any other Eurostat dataset code still works on the detail endpoint.
- List:
GET /open-data/eurostat-seriesreturns the 12 curated rows with theme filter (Sport and physical activity,Health, BMI, nutrition,Household leisure expenditure) and free-textqfilter over name + description. - Themes facet:
GET /open-data/eurostat-series/themesreturns the distinct themes with dataset counts (for theme-picker UIs). - Detail (live):
GET /open-data/eurostat-series/{dataset_code}fetches the Eurostat JSON-stat 2.0 payload at request time underpayload, with parseddimensions(geo, time, sex, age, ...), up to 10sample_observationswith both codes and labels, the composed plain-language summary, and Eurostat's reportedupdatedasdocument_date. Optionalgeo,time,sexfilters pass through to Eurostat;include_payload=falsetrims the response when you only need the summary. - What's covered: participation series (
ilc_scp03: sport/cultural participation), EHIS physical activity series (hlth_ehis_pe9ehealth-enhancing,hlth_ehis_pe2eaerobic time,hlth_ehis_pe3enon-work-related,hlth_ehis_pe6ewalking/cycling), cultural employment (cult_emp_sex,cult_emp_n2: the closest umbrella since Eurostat does not disseminate a standalone sport employment series), household sport spend (hbs_str_t211by COICOP,hbs_str_t223by income quintile), BMI (hlth_ehis_bm1e,hlth_ehis_de2), nutrition adjacent (hlth_ehis_fv3e). - Why curated, not pass-through: Eurostat publishes thousands of dataflows under cryptic codes; the curated whitelist is the discovery layer. The detail endpoint is open to any code, so partners can still pull
nrg_*energy ormigr_*migration series if they want.
17 June 2026: Tender Docs surface ported into v2 (509 total)
Brubru's funding-application template library is now on the public API. 4 read endpoints under /api/v2/proprietary/tender-docs/ (API-key auth; the product's user-scoped write surface stays internal). 19 templates across 8 EU funding programmes (EIC, Erasmus+, Digital Europe, CERV, LIFE, Creative Europe, CEF, ESF+) and 17 sub-instruments.
- Templates:
GET /tender-docs/templateslists every template with section structure, comply targets, deadline, programme + sub-instrument filters.GET /tender-docs/templates/programmesreturns the 8-programme facet with counts.GET /tender-docs/templates/{template_id}returns one full template: every section, AI co-writer prompt seeds, Model + Annotated Grant Agreement URLs, and the curated reference-doc bundle (13 entries for the EIC Accelerator Stage 2; 5 to 15 across the rest). - Compliance cross-fetch:
GET /tender-docs/comply-clusters?template_id=...resolves a funding template into the EU Law Comply clusters whose policy area matches the template'scomply_targets, with optional ethics flags (ethics_personal_data,ethics_clinical_studies,ethics_dual_use,ethics_animals,ethics_special_categories) andfunding_mode(equity-only / blended adds Sustainable Finance + AIFMD + AML clusters). Each cluster carries law count, requirement count, and amatch_reasonarray explaining why it surfaced. - Single source of truth: the cross-fetch resolution dictionary is shared with the v1 Bearer-auth endpoint at
/api/eu-law-comply/by-topic-clustersviaresolve_clusters_by_topic(), so the cluster mapping cannot drift between v1 and v2. - 5-datapoint contract: every item carries
public_url(official EU template URL when known, else the Brubru Tenderator surface),body_txt/body_html(composed from sections + reference docs on detail; null on list),document_date(next call deadline),creation_date.
15 June 2026: Seven v1-only features ported into v2 (505 total)
The last significant v1-only surfaces are now in v2, via the v1-delegation pattern (one implementation, no drift). 17 endpoints across 3 new folders + 2 existing ones.
- New folders:
/api/v2/predictions/(legislative outcome + timeline predictions),/api/v2/calendar/(unified EU institutional calendar),/api/v2/transparency-register/(lobbyists / interest representatives, ~17.8k orgs + category breakdown). - Commission:
/api/v2/commission/competition-cases(DG COMP state aid / antitrust / merger) and/api/v2/commission/access2markets(DG TRADE countries, CN products, freshness). - Open data:
/api/v2/open-data/jrc-datasets(JRC data catalogue) and/api/v2/open-data/cohesion-datasets(DG REGIO Socrata dataset catalogue).
15 June 2026: Funding & Tenders folder expanded to 81 endpoints (488 total)
A large build-out of the funding domain: new programmes, the EU external-action award layer, the portal's news/events feeds, and a 28k-project expansion of funded-projects coverage.
- Per-programme grant endpoints:
/api/v2/funding/justice(Justice Programme) and/api/v2/funding/innovation-fund(Innovation Fund): F&T Portal grant calls, each list + detail. - Startup & SME bundle, enriched:
/api/v2/funding/startupsnow bundles EIC + COSME/EISMEA + Innovation Fund + startup-titled calls (128 items), each tagged with a derivedstage(idea / seed / growth / scale-up / sme) andinstrument(grant / blended / equity / prize), plus a detail endpoint. - EU international cooperation (awards):
/api/v2/funding/international-cooperation: 15,512 external-action commitments from the Financial Transparency System (NDICI-Global Europe, IPA III, Humanitarian Aid), parsed intobeneficiary,country,amount_eur,funding_type,programme,dg,contract_refandyear. Filter byprogramme(ndici / ipa3 / humanitarian),funding_type,country,year. - F&T Portal feeds:
/api/v2/funding/ft-news(715 portal announcements) and/api/v2/funding/ft-events(198 info days / webinars; order=recent surfaces upcoming first). - Funded projects, all programmes:
/api/v2/funding/ft-funded-projectsnow spans the non-research programmes too: +28,186 projects (Erasmus+, Creative Europe, CERV, Single Market, CEF, LIFE, COSME, Digital Europe, EU4Health, Justice, AMIF, ISF, EMFF) for 109k projects total. Filter byframework_programme.
14 June 2026: API v2 is the only public surface
The API has been reorganised into 34 institution folders across 441 endpoints: one folder per EU institution or body. The earlier flat surface has been retired from the published OpenAPI spec; all documented paths now live under /api/v2/. The full live reference is at /api/docs/reference.html.
- 34 institution folders: legislative (EUR-Lex / OEIL), parliament, commission, council, european-council, eurogroup, ecb, eu-financial-institutions, esm, and one folder each for every EU agency (ACER, BEREC, Cedefop, CPVO, ECDC, ECHA, EEA, EFSA, EIGE, EIT, EMA, ENISA, eu-LISA, EU-OSHA, EUAA, EUDA, EUIPO, FRA), plus funding, consultations, open-data, general-publications, who-is-who, geographical-indications, and proprietary.
- OpenAPI spec: the canonical live JSON is at
https://brubru.beresol.eu/api/openapi.json. - Rate-limit state: read from response headers on any authenticated call:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Tier. Example:curl -i -H "Authorization: Bearer $KEY" "https://brubru.beresol.eu/api/v2/proprietary/guides?limit=1". - Health check:
GET /health(unversioned, no key required).
2 May 2026: EU Vocabularies layer shipped
Brubru now speaks the same vocabulary as the EU Publications Office. Six new endpoint families surface label resolution, identifier recognition, and structured self-description in the formats data.europa.eu harvesters expect.
- EU Vocabularies (4 endpoints):
/vocabularies/corporate-bodies,/vocabularies/procedures,/vocabularies/directories,/vocabularies/modification-types. Search the official EU Authority Tables; multilingual labels in EN/FR/ES/CA/IT/NL. - Identifier resolver (2 endpoints):
GET /api/v2/legislative/eur-lex/identifyfor a single ref,POST /api/v2/legislative/eur-lex/identify/scanfor free text. Recognises CELEX, ELI, ECLI, EuroVoc URI, NAL URI, OJ reference, ISBN, ISSN, DOI, catalogue number. - ECLI search:
GET /api/v2/legislative/eur-lex/laws/{celex}returns canonical deep-links. CJEU-aware with e-Justice fallback. - DCAT-AP self-description:
GET /api/datasets.{ttl,rdf,json}publishes Brubru's datasets in the standard catalogue profile. - OP Core Metadata on every response: Dublin-Core-aliased fields (
dct:title,dct:identifier,dct:type,dct:language,dct:publisher,dct:conformsTo) plus anX-OP-Core-Conformanceresponse header on every/api/v2/*call. - Citation verification, extended: the existing verifier now also checks authority URIs against the local cache. Closes a class of "AI cited a body code that doesn't exist" failures.
1 May 2026: Partner-feedback iteration sprint (post-GovClipping meeting)
Same-day iteration after Jordi Montoya's 30 April feedback. 8 cross-cutting fixes audited, shipped and verified end-to-end against production.
- CC-1 / Jordi #2: Removed the
meta: { source, powered_by, fetched_at }envelope block from every/api/v2/*response. Same provenance information now lives on theX-Powered-By/X-Sourceresponse headers. 0 / 36 list endpoints still ship the block (was 31). - CC-3 / regression: Restored four broken routes:
/api/v2/legislative/eurovoc/authority/dgs,/api/v2/legislative/eurovoc/authority/committees,/api/v2/legislative/eurovoc/authority/policy-areas(+12 sister enums),/api/v2/commission/commissioners/{slug}and/api/v2/legislative/eur-lex/verify-citation/{ref}. The metadata router is now mounted both unprefixed (legacy) and under the canonical path. - CC-4 / Jordi #3:
GET /api/v2/commission/commissioners/{slug}is a profile-only endpoint.GET /api/v2/commission/commissioners/{name}/agendaresponse stripped to the standard envelope: no profile fields injected. "Agendas are not metadata." - CC-5 / Jordi #7: Committee event
source_urlis now per-event. The generic/committees/en/documents/latest-documentsplaceholder no longer leaks. Patterns now live:plenary_session→/plenary/en/agendas.html?day=YYYYMMDD;committee_meeting→/committees/en/{COMMITTEE_LOWER}/home/highlights;european_council_summit→/en/meetings/european-council/YYYY/MM/DD/. - CC-6 / Jordi #4: Per-key rate-limit tiers introduced:
free60/min,pro300/min,enterprise6,000/min. Migration 045 addedapi_keys.api_tier.X-RateLimit-Tierheader on every response. Rate-limit state is readable from response headers on any authenticated call. - CC-2(a) / Jordi #1, #8:
/api/v2/legislative/eur-lex/laws[/{celex}]shiptext_url→/api/v2/legislative/eur-lex/laws/{celex}/text./api/v2/proprietary/guidesFull level uncapped (was 20,000-char limit), newcontentfield for the canonical full body. CC-2(b) body backfill (parl-q, tris, tenders, commission-register, reports, opinions, resolutions) running in the background. - law-tracker.europa.eu integration:
/api/v2/legislative/oeil/procedures+/api/v2/legislative/oeil/procedures/{reference}shiplaw_tracker_urlalongsidelegal_text_urlandurl. Mapping: OEIL2025/0420(COD)→https://law-tracker.europa.eu/procedure/2025_420?lang=en.
30 April 2026: Sprint complete: 47 endpoints + 5 institutional sources + microsite refresh
Full GovClipping P0+P1+P2 sprint shipped. The API grew from 35 to 82 endpoints across 36 folders. Every endpoint dogfed by Brubru Chat and Amendator.
- New folders: Officials (14,873 records across 75 organigrammes: Commission, EP, Council, Ombudsman, agencies), Commission Register (528 docs with EUR-Lex CELEX-derived PDF URLs), Webstreams (multimedia.europarl.europa.eu), TRIS notifications, RSB Opinions, Transparency Meetings, Delegated acts, Implementing acts, Council Documents, Tenders (TED, 386 active), Research publications (210 unified across EPRS+STOA+JRC+ART+ECA), Citation verifier.
- EP detail expanded: standalone folders for Amendments (56,051), Votes, Reports (1,026), Resolutions, Opinions, Texts adopted, Texts submitted, Parliamentary questions. Unified
/api/v2/parliament/ep-documentsbranches across all of these. - Metadata enrichments:
/api/v2/legislative/eurovoc/authority/dgsnow includes website + twitter + linkedin + youtube./api/v2/legislative/eurovoc/authority/committeesincludes streaming_url + homepage + documents_url./api/v2/commission/commissioners/{name}surfaces agenda_url + unified_calendar_url + bio_url. - Committee scheduling: 8 sources (was 6): added euagenda.eu and Commissioners' calendar items page. Each
committee_meetingevent via/api/v2/parliament/committee-agendasnow carries awebstream_url. - Routing fix:
/publications/sourcesstatic route declared before/{publication_id}param route to prevent UUID-cast 500. - Path params: parliamentary-questions and other slash-bearing references now use the
:pathconverter. - Production hardening:
scikit-learnadded torequirements-light.txt(Railway uses light variant);/api/v2/legislative/eur-lex/laws/{celex}/recital-article-mapwraps lazy import in try/except for clean 503. - EUR-Lex content verification: every EUR-Lex URL audited; Commission Register PDFs derived from CELEX (
/legal-content/EN/TXT/PDF/?uri=CELEX:{celex}); URLs that 404 are flagged. - Anti-bot classification: LinkedIn, Consilium, TED returns 404/403/429 to scrapers: these are now classified as
BLOCKEDnotBROKENin URL audits. - Postman collection: synced via PUT (UID preserved); 36 folders, 82 requests; OpenAPI 3.1 → Postman v2.1 conversion now scripted.
- Marketing: removed POST cards from
/apipage (per house style: POST endpoints exist but are never hero examples). - Microsite:
/api/docs/nav restructured into 5 thematic groups (Start here · Legislation · Institutions & people · EP detail · Live data · Reference); index lede + data-sources table refreshed with current row counts.
27 April 2026: Daily API cadence
- Hero example URL rotation + new data-source registration moved to daily (sub-phase 3D of
/morning). Postman + dogfood remain Friday-only. - Reason:
/apiis the public-facing surface that prospects and partners hit first; staleness is a conversion liability.
20 April 2026: Jordi feedback pass (correctness)
/api/v2/legislative/eur-lex/laws: 422 withconflicting_paramswhenpublished_toandpublished_endare sent with different values; 422 withinvalid_date_rangewhen from > to./api/v2/parliament/meps: rewired to directhttpxagainst EP Open Data REST v2.full_name,profile_urlnow always populated;totalisoffset + items + 1-hint;coverage_complete: false./api/v2/commission/consultations: all date fields now ISO-8601YYYY-MM-DDTHH:MM:SSZ.feedback_idalways string./api/v2/legislative/eur-lex/laws/{celex}/recital-article-map: computation failures now return 503computation_unavailable(not uncaught 500)./api/v2/legislative/eur-lex/resolve-referencesand/api/v2/legislative/eur-lex/resolve-aliases: description updated to clarify they are READ-ONLY idempotent./api/v2/commission/commissioners/{name}/agenda:detail_urlparser prefers title anchors; rejects#andjavascript:.- Default
limitacross all paginated endpoints: 20 → 50.
18 April 2026: 11 new endpoints (dogfooding phase 1)
- Added
/api/v2/proprietary/guides+/api/v2/proprietary/guides/{guide_id}: 147 guides. - Added
/api/v2/legislative/eur-lex/laws/{celex}/text?format=plain|xmlwith EUR-Lex Cellar fallback. - Added
/api/v2/parliament/eprs: 145 EPRS publications. - Added
/api/v2/parliament/committees/{code}/work-itemsand/api/v2/parliament/committees/{code}/minutes. - Added
/api/v2/parliament/committee-agendas: 419 EU institutional events. - Added
/api/v2/parliament/meps+/api/v2/parliament/meps/{mep_id}. - Added
/api/v2/legislative/oeil/procedures/{reference}returning full timeline + rapporteur + stage data. /training apiregression phase live; 48/50 (96%) baseline.
15 April 2026: Day 6: GovClipping-parity
- Structured error envelope
{ error, reason_code, request_id }on every non-2xx. X-Request-Idheader on every response.returnedandcoverage_completefields added to envelope.published_endandupdated_endaliases accepted.- Dual auth:
Authorization: BearerandX-API-Keyboth accepted; Bearer wins if both set. /api/v2/legislative/eurovoc/authority/{table}endpoint added: valid filter values for every dataset.
14 April 2026: Day 5: Docs + public landing
- Full reference docs at
/api/docs. /api/openapi.jsonfiltered to public paths (internal routes hidden).- Public marketing page at
/api/. - Header nav entry next to Tenderator.
14 April 2026: Day 4: core endpoints
/api/v2/legislative/eur-lex/lawsover 28,500 EU laws with TSVECTOR search./api/v2/legislative/oeil/proceduresover 1,200 legislative carriages./api/v2/commission/commissioners/{name}/agenda./api/v2/legislative/eur-lex/laws/{celex}/defined-terms,/text,/recital-article-map,/api/v2/legislative/eur-lex/resolve-references(4 endpoints)./api/v2/commission/consultations/by-initiative/{initiative_id}/feedback.
14 April 2026: Day 1-3: Foundation
- API key model + SHA-256 hashing.
POST /api/v2/*sub-router with canonical paginated envelope.- Per-key sliding-window rate limiter (60 req/min).
X-RateLimit-Limit,X-RateLimit-Remainingon every response.- Migration
033_add_api_keys_table.sqlapplied.
Upcoming
Week of 28 April 2026
- Full persona/competitor guides in docs.
- Glossary expanded with interactive cross-links.
- Endpoint docs for any params that have reappeared.
Week of 5 May 2026
- Claude MCP server expanded from 6 to 24 tools (one per major endpoint group).
- ChatGPT GPT Actions definition published.
- Gemini Function Calling spec published.
- Publish
@brubru/*npm +brubrupip packages.
Week of 12 May 2026
- Unified chronological feed across laws, procedures, amendments, consultations, EPRS, and events: Jordi's "total EU monitoring" ask.
June 2026: Request ergonomics
- Cursor pagination (
?cursor=). - Field projection (
?fields=celex,title,adopted_on). - Sort (
?sort=-adopted_on,title). - ETag +
If-None-Matchcaching. X-RateLimit-Resetheader.
September 2026: Scale
- Webhooks (push notifications on keyword matches, new EPRS, procedure stage changes).
- Bulk exports (nightly CSV + Parquet).
- Multilingual responses (24 EU languages).
- Semantic search via embeddings.
- Multi-tenant organisations (Jordi's CTO can mint their own key under his org).
Subscribe
For now, changes land here and in the /news daily brief. A dedicated developer changelog RSS feed is on the roadmap.