European Union API: Get EU law article
Gets the official text and key dates of one article of an EU regulation or directive from EUR-Lex, in the latest consolidated version when there is one, in any official EU language.
Unofficial. Not affiliated with or endorsed by European Union.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Law, required
law Law short name, title or number, for example GDPR or Regulation (EU) 2016/679.
AI Act
- Article, required
article Article number, for example 17.
5
- Language optional
language Language name or two-letter code, for example French or FR. Defaults to English.
French
Default
English.
Input as JSON
{ "law": "AI Act", "article": "5", "language": "French"}Output
{ "link": "https://eur-lex.europa.eu/legal-content/FR/TXT/HTML/?uri=CELEX:02024R1689-20260727#art_5" , "version": "Latest consolidated version", "in_force": true, "short_name": "AI Act", "article_text": "1. Les pratiques en matière d’IA suivantes sont interdites:\na) la mise sur le marché, la mise en service ou l’utilisation d’un système d’IA qui a recours à des techniques subliminales, au-dessous du seuil de conscience d’une personne, ou à des techniques délibérément manipulatrices ou trompeuses, av…", "celex_number": "32024R1689", "article_title": "Pratiques interdites en matière d’IA", "document_date": "2024-06-13", "article_number": "5", "date_of_application": "2026-08-02", "full_official_title": "Règlement (UE) 2024/1689 du Parlement européen et du Conseil du 13 juin 2024 établissant des règles harmonisées concernant l’intelligence artificielle et modifiant les règlements (CE) n° 300/2008, (UE) n° 167/2013, (UE) n° 168/2013, (UE) 2018/858, (UE) 2018/1139 et (UE) 2019/2144 et les directives 2…" , "date_of_entry_into_force": "2024-08-01", "consolidated_version_date": "2026-07-27"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"eur-lex.europa.eu/get_law_article","input":{"law":"AI Act","article":"5","language":"French"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "eur-lex.europa.eu/get_law_article" , "input": { "law": "AI Act", "article": "5", "language": "French" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "eur-lex.europa.eu/get_law_article" , "input": { "law": "AI Act", "article": "5", "language": "French" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run eur-lex.europa.eu/get_law_article# with {"law":"AI Act","article":"5","language":"French"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "law", "article" ], "properties": { "law": { "type": "string", "description": "Law short name, title or number, for example GDPR or Regulation (EU) 2016/679." }, "article": { "type": "string", "description": "Article number, for example 17." }, "language": { "type": "string", "default": "English", "description": "Language name or two-letter code, for example French or FR. Defaults to English." } }}Output schema
{ "type": "object", "required": [ "full_official_title", "short_name", "article_number", "article_title", "article_text", "document_date", "date_of_entry_into_force", "date_of_application", "in_force", "version", "consolidated_version_date", "link", "celex_number" ], "properties": { "link": { "type": "string" }, "version": { "type": "string" }, "in_force": { "type": [ "boolean", "null" ] }, "short_name": { "type": "string" }, "article_text": { "type": "string" }, "celex_number": { "type": "string", "x-fous-developer": true }, "article_title": { "type": [ "string", "null" ] }, "document_date": { "type": [ "string", "null" ] }, "article_number": { "type": "string" }, "date_of_application": { "type": [ "string", "null" ] }, "full_official_title": { "type": "string" }, "date_of_entry_into_force": { "type": [ "string", "null" ] }, "consolidated_version_date": { "type": [ "string", "null" ] } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
eur-lex.europa.eu/get_law_article- Returns
- official title, short name, article title and text, document, entry-into-force and application dates, in-force status, version, link, CELEX number
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method eur-lex.europa.eu/get_law_article with the inputs above.
Ask your agent
- What does Article 17 of the GDPR say? I need the official wording of the right to erasure.
- Pull the text of Article 6 of the AI Act from EUR-Lex in French, plus when it starts to apply.
- Get me Article 5 of Directive 2019/790 on copyright in the Digital Single Market, in German please.
- I need the latest consolidated text of Article 34 of the Digital Services Act and whether it's currently in force.
- Show me Article 3 of Regulation (EU) 2022/1925 in Spanish from europa.eu, with its entry-into-force date and CELEX number.
See more
All European Union methodsSearches EUR-Lex legal acts by topic, ranked by the site's relevance, filtered by document type, year of adoption and in-force status. Short names and ELI links are included when shown in the results.
eur-lex.europa.eu/search_eu_lawFinds published EU contract award notices on Tenders Electronic Daily by contract topic or winning company, newest publication first, optionally limited to a buyer country and a start date. Values and tender counts are included when published; counts across lots are summed.
ted.europa.eu/search_contract_awardsLooks up an official Eurostat statistic for an EU or EEA country and the EU27 figure for the same period. Quarterly and half-yearly series return the reporting period that contains a requested month.
ec.europa.eu/get_statisticFinds recently published EU procurement notices matching what is being bought, with buyer, estimated value, submission deadline and TED notice link. Open-only results must have a future submission deadline.
ted.europa.eu/search_tendersGets the official ECB euro reference exchange rates for a day, or the latest published day. Weekends, holidays and dates before publication return the previous published day.
ecb.europa.eu/get_euro_exchange_ratesReturns the ECB's current deposit facility, main refinancing operations and marginal lending facility rates with their effective date. Optionally includes earlier rate changes, newest first.
ecb.europa.eu/get_key_interest_ratesConverts an amount between currencies using ECB euro reference rates, including euro and cross-currency conversions. Uses the latest preceding published rate when the date has none.
ecb.europa.eu/convert_currencyChecks an EU VAT number in the European Commission's VIES service and returns whether it is valid, with the registered name and address when the country makes them available.
ec.europa.eu/validate_vat_number