Europa APIedpb.europa.eu ↗
Fetch European Data Protection Board consistency-finding opinions with titles, dates, topics, member states, and PDF links via a single structured API endpoint.
What is the Europa API?
The EDPB Opinions API exposes structured data from the European Data Protection Board's consistency findings page through one endpoint, get_opinions, returning up to the full catalog of published opinions with 7 fields per record: title, URL, date, publication type, topics, member states, and a direct PDF download link. It handles pagination automatically so you can retrieve the complete opinions listing or a controlled slice of pages.
curl -X GET 'https://api.parse.bot/scraper/460b5f31-803f-47fc-bf6e-b18d634d7b46/get_opinions?page=0&limit=1&page_limit=1' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace edpb-europa-eu-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: EDPB Opinions API — fetch and inspect EU data protection board opinions."""
from parse_apis.EDPB_Opinions_API import EDPB, Opinion, UpstreamError
client = EDPB()
# List opinions from one upstream page, cap at 5 items for quick inspection.
for opinion in client.opinions.list(page_limit=1, limit=5):
print(opinion.title, "|", opinion.date, "|", opinion.publication_type)
# Drill into the first opinion to inspect its topics.
first = client.opinions.list(page_limit=1, limit=1).first()
if first:
print(first.title)
print("Topics:", first.topics)
print("URL:", first.url)
print("PDF:", first.pdf_link)
# Typed error handling around a call with a high page offset.
try:
for op in client.opinions.list(page=99, page_limit=1, limit=3):
print(op.title, op.date)
except UpstreamError as exc:
print(f"Upstream issue: {exc}")
print("exercised: opinions.list (with page_limit, page, limit), .first(), field access, UpstreamError catch")
Fetch EDPB opinions with their publication type, topics, dates, and detail page URLs. Paginates through the EDPB documents listing filtered to compliance instruments (opinions). By default fetches all pages; use the page_limit parameter to restrict the number of pages fetched. Each opinion includes title, URL, date, publication type list, and topics list. Member states and PDF links are not available on the listing page and are returned as empty list and null respectively.
| Param | Type | Description |
|---|---|---|
| page | integer | Starting page number (0-indexed). |
| page_limit | integer | Number of upstream pages to fetch. 0 fetches all available pages. |
{
"type": "object",
"fields": {
"total": "integer - total number of opinions returned across all fetched pages",
"opinions": "array of opinion objects with title, url, date, publication_type, topics, member_states, and pdf_link"
},
"sample": {
"data": {
"total": 10,
"opinions": [
{
"url": "https://www.edpb.europa.eu/documents/opinion-of-the-board-art-64/opinion-192026-on-the-draft-decision-of-the-dutch-supervisory_en",
"date": "08 June 2026",
"title": "Opinion 19/2026 on the draft decision of the Dutch Supervisory Authority regarding the Processor Binding Corporate Rules of the Rubrik Group",
"topics": [
"Binding Corporate Rules",
"Tools for transfers and derogations"
],
"pdf_link": null,
"member_states": [],
"publication_type": [
"Opinion of the Board (Art. 64)"
]
}
]
},
"status": "success"
}
}About the Europa API
What the API Returns
The get_opinions endpoint retrieves the full list of EDPB opinions published on the consistency findings page. Each opinion object in the opinions array carries a title, a url to the opinion's detail page, an ISO-formatted date, a publication_type label (e.g. Opinion), a topics array covering GDPR subject matter, a member_states array listing the supervisory authorities involved, and a pdf_link for the official document download. The top-level total field reports how many opinion records were returned across all fetched pages.
Pagination and Filtering
get_opinions accepts two optional parameters. The page integer (0-indexed) sets the starting page of the EDPB listing. The limit integer controls how many consecutive pages are fetched; passing 0 instructs the endpoint to fetch all available pages. This lets you implement incremental updates by starting from page 0 with a small limit, or pull the complete archive in one call by omitting both parameters.
Data Scope
Coverage maps directly to what the EDPB publishes under its Opinions consistency-findings section. Topics and member states are returned as arrays, reflecting that a single opinion may span multiple GDPR subject areas and involve more than one EU supervisory authority. PDF links point directly to the official EDPB-hosted documents, making it straightforward to build document-retrieval pipelines on top of the API.
The Europa API is a managed, monitored endpoint for edpb.europa.eu — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when edpb.europa.eu changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official edpb.europa.eu API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor newly published EDPB opinions and trigger alerts when a specific
member_statesentry (e.g. Germany, France) appears. - Build a searchable index of GDPR consistency opinions filtered by
topicssuch as data transfers or legitimate interest. - Aggregate
pdf_linkURLs to bulk-download official EDPB opinion documents for offline legal research. - Track opinion publication frequency over time using the
datefield to identify regulatory trend spikes. - Populate a compliance dashboard that surfaces the latest EDPB opinions relevant to a particular EU supervisory authority.
- Feed
titleandtopicsdata into an NLP pipeline to classify regulatory guidance by GDPR article scope. - Cross-reference
member_statesacross opinions to map how often each national DPA is cited in EDPB consistency findings.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the EDPB have an official developer API for its opinions or consistency findings?+
What does `get_opinions` return for each record, and can I filter by topic or member state?+
title, url, date, publication_type, topics (array), member_states (array), and pdf_link. The endpoint does not accept server-side filter parameters for topic or member state; filtering must be applied client-side after fetching the data.How fresh is the opinion data, and does the API reflect newly published opinions immediately?+
Does the API cover other EDPB document types such as Guidelines, Recommendations, or Binding Decisions?+
publication_type, topics, member_states, date, and pdf_link for those records. You can fork this API on Parse and revise it to add endpoints targeting other EDPB document sections like Guidelines or Recommendations.Is the full text of each opinion available through the API?+
pdf_link pointing to the official document and a url to the opinion detail page, but it does not extract or return the full text content of the opinion itself. The API covers metadata and document links. You can fork it on Parse and revise it to add a detail endpoint that retrieves body text from the individual opinion page.