EU Regulation Search
Search EU regulations, directives and decisions by topic, from the Publications Office: titles, CELEX numbers, dates, whether in force, and EUR-Lex links.
eu-regulation-search Example
{
"query": "data protection"
} {
"query": "general data protection",
"regulations": [
{
"date": "2016-04-27",
"type": "Regulation",
"title": "Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, and repealing Directive 95/46/EC (General Data Protection Regulation)",
"in_force": true,
"eur_lex_url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679",
"celex_number": "32016R0679"
}
],
"result_count": 1,
"matched_terms": [
"general",
"data",
"protection"
]
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
type | string | No | Optional filter — regulation, directive, or decision |
year | string | No | Optional 4-digit year of adoption (e.g. "2024") |
query | string | Yes | Search topic or keywords (e.g. "artificial intelligence", "data protection") |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
query | string | Always (present in every successful answer) |
regulations | array | Always (present in every successful answer) |
result_count | integer | Always (present in every successful answer) |
matched_terms | array | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "eu-regulation-search",
"inputs": {
"query": "data protection"
},
"max_price_cents": 30
}' {
"tool": "strale_execute",
"arguments": {
"slug": "eu-regulation-search",
"inputs": {
"query": "data protection"
},
"max_price_cents": 30
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "eu-regulation-search",
inputs: {
"query": "data protection"
},
max_price_cents: 30,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="eu-regulation-search",
inputs={
"query": "data protection",
},
max_price_cents=30,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/eu-regulation-search?query=data+protection' Limitations
Title-based matching — legislation whose title doesn't name the topic may be missed
Queries are matched against official English titles (all words must appear). Legislation known by an abbreviation not present in its title (e.g. "AI" for the Artificial Intelligence Act) or covering a topic not named in the title will not be found. Query with the spelled-out subject matter.
What to do instead: Use full subject words ("artificial intelligence", not "AI"); add the year filter to narrow results
Covers adopted sector-3 legislation only — proposals, corrigenda, and consolidated texts are excluded
Results are restricted to adopted regulations, directives, and decisions (CELEX sector 3). Draft proposals (COM documents), corrigenda, communications, and consolidated versions are excluded by design.
What to do instead: Check EUR-Lex directly for legislative procedure status or consolidated texts of returned acts
An empty result set is a valid answer, not an error
A query matching no legislation returns result_count 0 with an empty regulations array. This is a correct "nothing matches" answer — it does not indicate a service fault.
Related tools
- Adverse Media Check €0.20
- AML Risk Score €0.02
- Breach Exposure Check €0.05
- Czech Unreliable VAT Payer Check €0.05
- French BODACC Announcements €0.05
- French Insolvency Check €0.08