EUR-Lex Scraper — EU Legislation & Legal Documents
Pricing
Pay per event
EUR-Lex Scraper — EU Legislation & Legal Documents
Search and extract EU legislation from EUR-Lex — regulations, directives, decisions, and judgments. Query by keyword, document type, date range, and language.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Jelle Desramaults
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
EUR-Lex Scraper — Search and Extract EU Legislation, Directives and Regulations
Search and scrape EU legislation from EUR-Lex, the official database of European Union law. Extract regulations, directives, decisions, judgments, and recommendations by keyword, document type, date range, or language — powered by the EU's CELLAR SPARQL endpoint for fast, reliable results.
What is EUR-Lex Scraper?
EUR-Lex is the authoritative database for European Union law. It contains over 1.5 million documents — treaties, regulations, directives, decisions, case law, and more — spanning decades of EU legislative history. But searching EUR-Lex manually is tedious, and the site offers no bulk export option.
EUR-Lex Scraper queries the EU Publications Office SPARQL endpoint directly, returning structured legislation data at scale. Here is how professionals use it:
- Corporate lawyers track new regulations affecting their clients' industries by running keyword searches on a weekly schedule
- Compliance officers build living inventories of all applicable directives and regulations for their sector, filtered by document type and date
- Policy analysts at trade associations monitor legislative output to brief members on upcoming regulatory changes
- Legal tech companies feed EUR-Lex data into their platforms to keep regulation databases current across all 24 EU languages
- Academic researchers in EU law collect large legislative datasets for quantitative analysis of EU regulatory trends
What data does EUR-Lex Scraper extract?
Each legislation item includes:
- 📜 title — Full official title of the legal act
- 🔢 celexNumber — Unique CELEX identification number (e.g., "32016R0679" for the GDPR)
- ⚖️ documentType — Type of legal act (Regulation, Directive, Decision, Recommendation, Opinion, Judgment, etc.)
- 📅 dateOfDocument — Date the document was adopted or published
- 📅 dateInForce — Date the act entered into force (when available)
- ✅ status — Whether the act is currently "In force" or "No longer in force"
- 🔗 url — Direct link to the full text on EUR-Lex
- 📄 pdfUrl — Direct link to the official PDF version
- 🏷️ subject — EuroVoc subject classifications (e.g., "eurovoc:2187", "eurovoc:5283")
- 🌐 language — Language of the returned text (supports all 24 EU official languages)
- 🕐 scrapedAt — ISO timestamp of extraction
How to scrape EUR-Lex
Configure your scrape with these input parameters:
| Parameter | Type | Description |
|---|---|---|
| Search Query | String | Keyword(s) to match in legislation titles. Examples: GDPR, artificial intelligence, climate, packaging waste. |
| Document Type | Select | Filter by type: Regulation, Directive, Decision, Recommendation, Opinion, Judgment, or Communication. Leave empty for all types. |
| Date From | String | Filter documents adopted from this date (YYYY-MM-DD). |
| Date To | String | Filter documents adopted up to this date (YYYY-MM-DD). |
| Max Results | Integer | Maximum legislation items to return (1-10,000). Default: 100. |
| Language | Select | Language for legislation titles and metadata. All 24 EU official languages supported. Default: English. |
| Proxy Configuration | Object | Proxy settings for reliability. |
Tips for best results
- Search with specific legal terms — "artificial intelligence" returns AI-specific legislation, while just "AI" may match unrelated acts
- Combine document type and keyword — select "Directive" and search "waste" to find only EU waste directives
- Use date ranges to focus on recent legislation — set Date From to
2024-01-01for the latest acts - Switch language to get legislation titles in your local language (all 24 official EU languages available)
- Leave all filters empty to retrieve the most recently adopted EU legislation across all types
Output
Each legislation item is returned as a JSON object. Here is a realistic example:
[{"title": "Regulation (EU) 2024/1689 of the European Parliament and of the Council of 13 June 2024 laying down harmonised rules on artificial intelligence (Artificial Intelligence Act)","celexNumber": "32024R1689","documentType": "Regulation","dateOfDocument": "2024-06-13","dateInForce": "2024-08-01","status": "In force","url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32024R1689","pdfUrl": "https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32024R1689","subject": ["eurovoc:5283", "eurovoc:2187", "eurovoc:3030"],"language": "EN","scrapedAt": "2026-04-03T11:30:15.000Z"},{"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 (General Data Protection Regulation)","celexNumber": "32016R0679","documentType": "Regulation","dateOfDocument": "2016-04-27","dateInForce": "2016-05-24","status": "In force","url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679","pdfUrl": "https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32016R0679","subject": ["eurovoc:3071", "eurovoc:5283", "eurovoc:1633"],"language": "EN","scrapedAt": "2026-04-03T11:30:17.000Z"},{"title": "Directive (EU) 2022/2464 of the European Parliament and of the Council of 14 December 2022 amending Regulation (EU) No 537/2014, Directive 2004/109/EC, Directive 2006/43/EC and Directive 2013/34/EU, as regards corporate sustainability reporting","celexNumber": "32022L2464","documentType": "Directive","dateOfDocument": "2022-12-14","dateInForce": "2023-01-05","status": "In force","url": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32022L2464","pdfUrl": "https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32022L2464","subject": ["eurovoc:4263", "eurovoc:3900", "eurovoc:5455"],"language": "EN","scrapedAt": "2026-04-03T11:30:19.000Z"}]
Results can be downloaded as JSON, CSV, Excel, XML, or accessed via the Apify API.
How much does it cost?
EUR-Lex Scraper runs on the Apify platform. You pay only for compute resources consumed.
| Scrape size | Estimated time | Estimated cost |
|---|---|---|
| 50 items | ~30 seconds | ~$0.01 |
| 200 items | ~2 minutes | ~$0.04 |
| 1,000 items | ~8 minutes | ~$0.15 |
| 5,000 items | ~35 minutes | ~$0.65 |
Because the scraper queries the SPARQL endpoint directly rather than crawling HTML pages, it is significantly faster and cheaper than web-scraping approaches. Apify's free tier includes $5 of monthly compute.
Can I integrate?
Yes. Connect EUR-Lex data to your existing tools:
- Google Sheets — Maintain a continuously updated register of applicable EU legislation for your compliance program
- Slack — Notify your legal team when new directives or regulations matching your keywords are published
- Zapier — Automatically create tasks in your project management tool when relevant new legislation appears
- Make (Integromat) — Build pipelines that sort new legislation by document type and route to the right internal team
- Webhooks — Push new legislation data to your legal tech platform or internal knowledge base
Set up integrations from the Apify console under the "Integrations" tab.
Can I use it as an API?
Yes. Call EUR-Lex Scraper programmatically from any language:
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("studio-amba/eurlex-scraper").call(run_input={"searchQuery": "artificial intelligence","documentType": "Regulation","dateFrom": "2023-01-01","maxResults": 50,})for law in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{law['celexNumber']} | {law['documentType']} | {law['status']} | {law['title'][:70]}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('studio-amba/eurlex-scraper').call({searchQuery: 'artificial intelligence',documentType: 'Regulation',dateFrom: '2023-01-01',maxResults: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(l => console.log(`${l.celexNumber} | ${l.documentType} | ${l.title.slice(0, 70)}`));
FAQ
What is EUR-Lex?
EUR-Lex is the official online database of European Union law, maintained by the Publications Office of the European Union. It provides free access to EU treaties, legislation, case law, preparatory acts, and international agreements. EUR-Lex is the only authentic source for the Official Journal of the EU in electronic format. The database contains over 1.5 million documents in all 24 official EU languages.
How does EUR-Lex Scraper work?
Unlike traditional web scrapers, EUR-Lex Scraper queries the EU's CELLAR SPARQL endpoint — a structured data interface provided by the Publications Office. This means faster, more reliable results with clean metadata. The scraper builds SPARQL queries from your input parameters, handles pagination, and returns well-structured legislation records.
Is it legal to scrape EUR-Lex?
EU legislation is public domain. EUR-Lex explicitly provides free access to EU law, and the CELLAR SPARQL endpoint is a public data service operated by the EU Publications Office for exactly this type of programmatic access. There are no legal concerns with querying publicly available EU legislation data.
How to scrape EU legislation?
Enter a keyword in the Search Query field (e.g., "GDPR", "plastics", "cybersecurity"), optionally select a Document Type and date range, then click Start. The scraper returns structured records with CELEX numbers, titles, dates, enforcement status, and direct links to the full text on EUR-Lex.
Is this an EUR-Lex API alternative?
This scraper is built on top of the official EU CELLAR SPARQL endpoint, which is the closest thing to an EUR-Lex API. It wraps the complexity of SPARQL queries into simple input fields, so you get structured legislation data without needing to write SPARQL yourself.
What is a CELEX number?
A CELEX number is the unique document identifier used in EUR-Lex. It encodes the sector, year, document type, and number. For example, 32016R0679 breaks down as: sector 3 (legislation), year 2016, type R (regulation), number 0679. Every legal act in EUR-Lex has a CELEX number, making it the best identifier for citing and referencing EU law.
Limitations
- The scraper returns legislation metadata (titles, dates, status, CELEX numbers) — it does not extract the full text of legal acts
- EuroVoc subject codes are returned as identifiers (e.g., "eurovoc:5283") rather than human-readable labels
- Some very old legislation may have incomplete metadata in the CELLAR database
- The SPARQL endpoint has a timeout for extremely complex queries — if you combine many filters with very large result sets, consider splitting into multiple runs
- Consolidated (amended) versions of legislation are not automatically linked; the scraper returns the original act
Other regulatory data scrapers
Building a regulatory intelligence or legal research pipeline? These scrapers cover complementary EU and Belgian databases:
- ECHA Scraper — EU chemicals database: the substances regulated by REACH, CLP, and other EU chemical legislation
- Staatsblad Scraper — Belgian Official Gazette: how EU directives are transposed into Belgian national law
- Safety Gate Scraper — EU product safety: the alerts generated when products violate EU regulations
- EFSA Scraper — EU food safety: the scientific opinions that drive EU food legislation
Your feedback
Have an idea or found an issue? Open a report on the Issues tab. We read every submission and use your feedback to improve the scraper.