# Eur Lex Europa — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Access and explore the complete collection of European Union laws, regulations, and Official Journal publications through a comprehensive database that lets you search documents, retrieve full texts, summaries, and metadata, and track legislative procedures and national implementations. Find exactly what you need with detailed search capabilities and get detailed information about how EU laws are transposed into national legislation.

**Category:** Government & Public Data | **Website:** [eur-lex.europa.eu/](https://eur-lex.europa.eu/) | **Docs:** [parse.bot/marketplace/12f96982-e19e-457c-9ebf-70890668ee4b/eur-lex-europa-eu-api](https://parse.bot/marketplace/12f96982-e19e-457c-9ebf-70890668ee4b/eur-lex-europa-eu-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-eur-lex-europa-eu-api-12f96982/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_document_metadata

Retrieve full metadata for a document by its CELEX number. Returns title, type, authors, dates, and all available literal properties from the Cellar SPARQL endpoint. Returns input_not_found if no document matches the CELEX.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `celex` | string | Yes | CELEX number of the document (e.g. 32016R0679) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eur-lex-europa-eu-api-12f96982/get_document_metadata \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"celex":"<string>"}'
```

### get_document_procedure

Retrieve the legislative procedure history for a document, including key dates (signature, entry into force) and related documents (legal basis, amendments, repeals). Uses SPARQL to query the Cellar knowledge graph.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `celex` | string | Yes | CELEX number of the document (e.g. 32016R0679) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eur-lex-europa-eu-api-12f96982/get_document_procedure \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"celex":"<string>"}'
```

### get_document_summary

Retrieve the official plain-language summary for a document from EUR-Lex. Not all documents have summaries; summary_html and summary_text will be null if unavailable.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `celex` | string | Yes | CELEX number of the document (e.g. 32016R0679) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eur-lex-europa-eu-api-12f96982/get_document_summary \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"celex":"<string>"}'
```

### get_document_text_html

Retrieve the full HTML text of a document from EUR-Lex, including structured articles when available. Works best for OJ-published legislative documents (regulations, directives). Non-legislative documents may return full text without structured article extraction.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `celex` | string | Yes | CELEX number of the document (e.g. 32016R0679) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eur-lex-europa-eu-api-12f96982/get_document_text_html \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"celex":"<string>"}'
```

### get_national_transposition

Retrieve national transposition measures for a directive. Returns measures grouped by country, each with title and link to the national implementing measure. Only applicable to directives (CELEX numbers starting with a digit followed by year and 'L').

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `celex` | string | Yes | CELEX number of the directive (e.g. 32016L0680) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eur-lex-europa-eu-api-12f96982/get_national_transposition \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"celex":"<string>"}'
```

### get_official_journal_daily

Retrieve the list of acts published in the Official Journal for a specific date via the Cellar SPARQL endpoint. Returns documents with their CELEX number, title, and type. Future or unpublished dates return an empty acts array.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `date` | string | No | Date in DDMMYYYY or YYYY-MM-DD format. Omitting defaults to today's date. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eur-lex-europa-eu-api-12f96982/get_official_journal_daily \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"<string>"}'
```

### search_documents

Search for EU legal documents using keywords, year, document number, or type. Queries the Cellar SPARQL endpoint. Text search (query parameter) performs a case-insensitive title match and works best combined with year or doc_type filters; broad text-only queries may time out upstream. Returns paginated results of 20 per page.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `doc_type` | string | No | Filter by document type code |
| `number` | string | No | Filter by document number |
| `order` | string | No | Sort order |
| `page` | integer | No | Page number (20 results per page) |
| `query` | string | No | Search keywords to match in document titles (case-insensitive substring match). Works best combined with year or doc_type filters. |
| `sort` | string | No | Sort field |
| `year` | string | No | Filter by document year (e.g. 2024) |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-eur-lex-europa-eu-api-12f96982/search_documents \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"doc_type":"<string>","number":"<string>","order":"<string>","page":"<integer>","query":"<string>","sort":"<string>","year":"<string>"}'
```
