Skip to content
Arieta Data

Guide

CELEX, ECLI and ELI explained: legal identifiers for ML engineers

By Published Last updated 8 min read

Short answer

CELEX is EUR-Lex's identifier for every EU legal document (the GDPR is 32016R0679); the European Case Law Identifier (ECLI), introduced by Council conclusions in 2011, identifies court decisions across the EU (Schrems II is ECLI:EU:C:2020:559); and the European Legislation Identifier (ELI), from Council conclusions in 2012, gives legislation stable URIs such as http://data.europa.eu/eli/reg/2016/679/oj. In a pipeline they are the join keys, citation targets and deduplication keys that make legal data verifiable.

Three identifiers do most of the work in European legal data. The CELEX number is the identifier EUR-Lex assigns to every EU legal document: the GDPR is 32016R0679 and the Schrems II judgment 62018CJ0311. The European Case Law Identifier (ECLI), introduced by Council conclusions of 2011 (OJ C 127, 29.4.2011), identifies court decisions in the EU and its member states in one format: Schrems II is ECLI:EU:C:2020:559. The European Legislation Identifier (ELI), set out in Council conclusions of 2012 (OJ C 325, 26.10.2012) and updated in 2017, gives legislation stable, readable URIs such as http://data.europa.eu/eli/reg/2016/679/oj. In an ML pipeline they are the keys that join datasets, the targets that citations resolve to, and the way to deduplicate language versions and copies.

Legal text is full of references, and an answer about law is only useful if it can be checked. Identifiers make that mechanical:

Job Why titles and URLs fail What an identifier does
Join datasets Titles are long, vary by language and change with amendments One key across text, metadata, versions and citations
Cite in RAG answers “The GDPR” is ambiguous across versions and languages A resolvable reference to the exact document
Deduplicate The same act appears on several portals and in many crawls Same id, same document
Align languages Each language version has its own title EU language versions share one CELEX number
Resolve citations References use many surface forms (“Regulation 2016/679”, “the GDPR”) Normalise references to one id

How to carry identifiers into RAG chunks is in How to chunk legal documents for RAG.

What is a CELEX number?

A CELEX number identifies a document in EUR-Lex. It has four parts: a sector, a year, a document type and a number.

Part 32016R0679 62018CJ0311
Sector 3: legislation 6: case law
Year 2016 (usually the year of adoption) 2018 (year the case was lodged)
Type R: regulation CJ: Court of Justice judgment
Number 0679 0311: case number

The sectors, with EUR-Lex’s labels:

Sector Content
1 Treaties
2 International agreements
3 Legal acts
4 Complementary legislation
5 Preparatory documents
6 EU case-law
7 National transposition
8 References to national case-law concerning EU law
9 Parliamentary questions
0 Consolidated texts
C Other documents published in the Official Journal C series
E EFTA documents

Common type codes are R (regulation), L (directive) and D (decision) in sector 3, and CJ (Court of Justice judgment), CC (Advocate General opinion), CO (Court of Justice order) and TJ (General Court judgment) in sector 6.

Three variants matter in practice:

  • Consolidated versions start with 0 and end with the consolidation date: 02016R0679-20160504 is the GDPR as consolidated at 4 May 2016. See consolidated text.
  • Corrigenda add R and a sequence number: 32016R0679R(01), R(02) and so on. A corrigendum may correct only some language versions.
  • National transposition measures in sector 7 repeat the directive’s number with 7 in front, then a country code and an id: 72016L0680FRA_263118. See EU directive transposition as structured data.

A simplified pattern for the common sector 3 and 6 numbers is ^([0-9CE])(\d{4})([A-Z]{1,2})(\d{4})$. Real CELEX numbers include longer and bracketed forms (such as 52011XG0429(01), a sector 5 Council conclusion, corrigenda and consolidation suffixes), so treat a regular expression as a filter, not a validator, and keep the raw id.

Why is the CELEX number not the official act number?

The act number in the title, “Regulation (EU) 2016/679”, is not the CELEX number, and the two numbering systems differ. Since 1 January 2015, legal acts published in the L series of the Official Journal carry a unique sequential number in the form “(domain) YYYY/N”, such as “(EU) 2016/679” or “(CFSP) 2015/4”, whatever their type. Documents published before 2015, or outside the L series, keep their earlier numbering. A reference parser needs to map both forms (“Regulation (EU) 2016/679”, “Directive 95/46/EC”) to CELEX.

What is an ECLI?

The ECLI is a uniform identifier for court decisions, introduced by Council conclusions published in OJ C 127 of 29 April 2011 and replaced by updated conclusions of 2019 (OJ C 360, 24.10.2019) that revised the scheme and its minimum set of uniform metadata. According to the e-Justice portal, an ECLI has five elements separated by colons:

Element ECLI:EU:C:2020:559
Prefix ECLI
Country EU (EU courts) or the member state’s code
Court C (Court of Justice); national courts have their own codes
Year 2020, the year of the decision
Ordinal number 559: up to 25 alphanumeric characters; dots are allowed, other punctuation is not

A practical pattern is ^ECLI:[A-Z]{2}:[A-Z0-9]+:\d{4}:[A-Za-z0-9.]{1,25}$. Not every country assigns ECLIs to every decision, and courts adopted the scheme at different times, so treat the ECLI as a nullable field next to the source’s own id. For CJEU decisions, the CELEX number and the ECLI identify the same judgment: 62018CJ0311 is ECLI:EU:C:2020:559.

What is an ELI?

The ELI is a URI scheme and metadata model for legislation, set out in Council conclusions of 2012 (OJ C 325, 26.10.2012) and updated by conclusions of 6 November 2017 (OJ C 441, 22.12.2017). Unlike CELEX and ECLI, it has no fixed format: each country defines its URI template from components such as type, year, number, date and version, and publishes metadata in a common ontology.

Publisher Example ELI or ELI-style URI Document
EU http://data.europa.eu/eli/reg/2016/679/oj GDPR
EU http://data.europa.eu/eli/dir/2019/790/oj DSM Copyright Directive
France https://www.legifrance.gouv.fr/eli/loi/2016/10/7/ECFI1524250L/jo/texte Loi n° 2016-1321 pour une République numérique
United Kingdom https://www.legislation.gov.uk/ukpga/2018/12 Data Protection Act 2018

Implementation varies. The EUR-Lex ELI register lists member states that have implemented ELI, including, among others, Belgium, the Czech Republic, Denmark, Germany, Spain, France, Croatia, Italy, Lithuania, Luxembourg, Austria, Portugal and Finland, with others partial or in progress. Because each template differs, store ELIs as opaque strings and parse them only per publisher.

How do national ids fit in?

National sources have their own ids: BOE identifiers in Spain, BWB ids in the Netherlands, Dz.U. positions in Poland, Sbírka numbers in the Czech Republic. A robust schema keeps three things per record:

  1. The source’s own id, always present, used as the primary key within a jurisdiction.
  2. The ELI, where the source supplies one, for cross-system links.
  3. The ECLI, for court decisions where assigned.

Arieta Data follows this pattern. EU records use the CELEX number as id; national records use a lane id (for example CZ-SB-2012-89 for a Czech act), with eli and ecli as separate nullable fields. The corpus schema lists every field. The national sources are described in National legislation datasets in Europe.

How do you use identifiers in a pipeline?

  • Normalise on ingest. Strip URL prefixes, upper-case CELEX and ECLI, and keep the original string.
  • Key every derived artefact. Chunks, embeddings, eval items and citation edges should all carry the document id, plus the article id for chunks.
  • Separate work from version. The CELEX number identifies the act; a consolidated CELEX or a version number identifies a state of it. Keep both, as described in Point-in-time legal data.
  • Align languages on the id. EU language versions share one CELEX number, which is the starting point for a parallel corpus.
  • Resolve references to ids. Turn “Article 6(1) of Regulation (EU) 2016/679” into 32016R0679 plus art_6; then citations become edges in a citation graph.
  • Score citations on ids. In evals, compare cited ids with gold ids instead of comparing strings.

Key facts

  • CELEX numbers identify every EU document in EUR-Lex; sector 3 is legal acts (legislation), 6 EU case-law, 7 national transposition measures and 0 consolidated texts.
  • Since 1 January 2015, acts in the OJ L series carry a “(domain) YYYY/N” number, which differs from the CELEX number.
  • ECLI was introduced by Council conclusions of 2011 (OJ C 127, 29.4.2011): ECLI:country:court:year:ordinal, with the ordinal up to 25 characters.
  • ELI was set out in Council conclusions of 2012 (OJ C 325, 26.10.2012), updated in 2017; each country defines its own URI template.
  • Arieta Data uses the CELEX number as the id of every EU record and keeps ELI and ECLI as separate fields for national records.

Frequently asked questions

How do I find the CELEX number of an EU act?

It is shown on the act’s EUR-Lex page and is in the EUR-Lex URL. For a regulation or directive, you can usually build it from the act number: sector 3, the year, R or L, and the number padded to four digits, so Regulation (EU) 2016/679 is 32016R0679. Check the result against EUR-Lex, because the rule has exceptions.

Is the ECLI the same as the case number?

No. A case number such as C-311/18 identifies the case; the ECLI identifies a specific decision in it, such as the judgment or the Advocate General’s opinion. One case can have several ECLIs.

Does every country use ELI?

No. Implementation is voluntary and still spreading; several member states have implemented it, some partially. Where a source supplies no ELI, use its own id.

Can one EU document have several CELEX numbers?

A document has one CELEX number, but its consolidated versions and corrigenda have their own derived numbers, and its national transposition measures have sector 7 numbers based on it. Keep the base CELEX number as the key for the work.

Where Arieta Data fits

Every Arieta Data record carries its identifiers: the CELEX number for EU documents, the national id for national ones, and the ELI and ECLI where the source supplies them, together with dates, version, content hash, source and licence. Snapshot 2026-11 holds 419,355 documents from 16 jurisdictions, approx. 4.07M articles and 801,149 typed citation edges resolved to those ids, cut as the corpus (EU records in the EU lane), the history and the graph. National case law is included, delivered with personal data masked.

Request a sample and join it to your own data on the ids. We reply within one business day, and a custom cut by jurisdiction, language, date range or document type is ready within 5⁠–⁠6 business days.

Not legal advice. Identifiers point to documents; only the Official Journal and the official gazettes publish the authentic text.

Get a sample cut for your use case.

Tell us your jurisdictions, languages and use case. The free sample downloads today; a custom cut by jurisdiction, language, date range or document type, with the licence agreement, is ready within 5⁠–⁠6 business days.

  • We reply within one business day
  • Custom cuts in 5⁠–⁠6 business days
  • Free sample, no sign-up