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.

Pay by wallet (x402) eu-regulation-search

Example

Input
{
  "query": "data protection"
}
Answer
{
  "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

FieldTypeRequiredWhat it is
typestringNoOptional filter — regulation, directive, or decision
yearstringNoOptional 4-digit year of adoption (e.g. "2024")
querystringYesSearch topic or keywords (e.g. "artificial intelligence", "data protection")

Output fields

How reliably each field appears in a successful answer.

FieldTypeAppears
querystringAlways (present in every successful answer)
regulationsarrayAlways (present in every successful answer)
result_countintegerAlways (present in every successful answer)
matched_termsarrayAlways (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
  }'

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.