eurlex_structure
Retrieve structured outline of EU legal acts with character offsets for chapters, articles, and paragraphs, enabling targeted retrieval of specific sections without scanning the full text.
Instructions
Returns the outline (table of contents) of an EU legal act — its chapters, sections, articles and annexes — each with a character offset into the document's plain text. Use it as a map for targeted reading: read an article's offset from the outline, then call eurlex_fetch(celex_id, format:"plain", offset, max_chars) with that offset to jump straight to that article instead of paging from the top of a long act. Identify the act by celex_id (e.g. "32024R1689"), eli, or oj_ref — provide exactly one. Each outline entry has: level (1=part/title/annex, 2=chapter, 3=section, 4=article), label (e.g. "Article 5", "CHAPTER III"), title (the heading's subtitle, e.g. "Prohibited AI practices"), and offset. total_headings is the full count; the returned list is capped at 300 for very large acts (truncated=true). Heading offsets are specific to the chosen language and to plain (tag-stripped) text — pass the SAME language to the follow-up eurlex_fetch call and keep format:"plain". Heading recognition covers English, German and French documents. For case-law documents (CELEX sector 6, e.g. CJEU judgments) the outline additionally lists each numbered judgment paragraph as "Paragraph N" (level 4); numbered-paragraph detection works in any language (it keys on the paragraph number, not heading words) — so you can get the offset of, say, paragraph 72 of a judgment and jump eurlex_fetch straight to it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| eli | No | European Legislation Identifier (ELI), short or full form, e.g. "reg/2016/679" or "http://data.europa.eu/eli/reg/2016/679/oj" (GDPR). Resolved to a CELEX ID via Cellar. Provide exactly one of celex_id, eli, or oj_ref. | |
| oj_ref | No | Official Journal reference in the post-2023 scheme, e.g. "OJ:L_202401689" (AI Act). Resolved to a CELEX ID via Cellar. Provide exactly one of celex_id, eli, or oj_ref. | |
| celex_id | No | CELEX identifier, e.g. "32024R1689" (AI Act). Provide exactly one of celex_id, eli, or oj_ref. | |
| language | No | Language of the document to outline, as a Cellar 3-letter code (any of the 24 official EU languages, e.g. DEU, ENG, FRA). Heading labels are language-specific; the returned offsets index the plain text of THIS language, so pass the same language to the follow-up eurlex_fetch call. | DEU |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Present only when no headings were found or the outline was truncated | |
| outline | Yes | Headings in document order | |
| celex_id | Yes | The resolved CELEX ID (echoed for the follow-up eurlex_fetch) | |
| language | Yes | ||
| returned | Yes | Number of headings in `outline` (<= total_headings) | |
| truncated | Yes | True when `outline` was capped below total_headings | |
| source_url | Yes | ||
| total_chars | Yes | Length of the plain text the offsets index into (matches eurlex_fetch total_chars) | |
| total_headings | Yes | Total headings detected before the returned-list cap |