Company legal forms are a mess to work with: every jurisdiction names them differently, the
same form appears as S.r.l., SRL or Srl, and the official list ships as a spreadsheet you
have to re-download and re-clean by hand. This repository is a clean, normalized dataset of
every ISO 20275 Entity Legal Form (ELF) — plus a free REST API so you can query it live
instead of parsing a CSV.
Recognize a legal form inside a company name — paste a raw company name, get back the legal form and the cleaned-up name:
curl "https://regdata-marketplace-demo.up.railway.app/api/v1/public/datasets/elf/match?q=Rossi%20Costruzioni%20S.r.l.&countryCode=IT"{
"input": "ROSSI COSTRUZIONI S.R.L.",
"matched": true,
"matchedTerm": "S.R.L.",
"position": "END",
"cleanInput": "ROSSI COSTRUZIONI",
"candidateCount": 1,
"ambiguous": false,
"record": {
"elfCode": "OV32",
"countryCode": "IT",
"localName": "Società A Responsabilità Limitata",
"enName": "Limited Liability Company",
"elfStatus": "ACTV"
}
}Browse legal forms by country:
curl "https://regdata-marketplace-demo.up.railway.app/api/v1/public/datasets/elf/records?countryCode=IT"{
"content": [
{
"elfCode": "135L",
"countryCode": "IT",
"localName": "Società Costituita In Base A Leggi Di Altro Stato",
"enName": "Company Incorporated Under the Laws of Another State",
"elfStatus": "INAC"
}
],
"page": 0,
"size": 20,
"totalElements": 57,
"totalPages": 3
}More recipes (filter by ELF code, search, pagination): examples/curl.md.
Static snapshot, the full dataset, same content in two formats:
| File | Rows | Format |
|---|---|---|
data/legal-forms.csv |
4,000 | CSV (array fields are |-separated) |
data/legal-forms.json |
4,000 | JSON (array fields are real arrays) |
Covers 129 countries / jurisdictions. Both files carry the same 18 fields — see Dataset schema.
The files above are a point-in-time snapshot. Legal-form lists change: forms get added, retired, renamed. The live API is the same data kept current, queryable, filterable and paginated — and it exposes capabilities a static file can't:
| This repo (snapshot) | Live API | |
|---|---|---|
| Format | CSV / JSON download | REST / JSON |
| Freshness | Fixed at 2026-04-08 |
Maintained & updated |
| Filter by country / status / code | Grep it yourself | ?countryCode=IT&elfStatus=ACTV |
| Full-text search | — | ?search=responsabilita |
| Name → legal form matching | — | /match?q=Acme%20GmbH |
| Pagination, all fields | — | API key |
Public endpoints need no key (rate-limited per IP, first 20 records, reduced projection). Full access — every field, deep pagination — uses an API key.
- API base:
https://regdata-marketplace-demo.up.railway.app - Get a free API key & docs:
https://regdata-marketplace-demo-fe.dedo-dev.workers.dev/docs
18 fields per record. ⭑ marks fields that are RegData enrichment (not part of the raw
GLEIF list) — the canonical English name and the searchable variants that power /match.
| Field | Type | Description |
|---|---|---|
elfCode |
string | Four-character ISO 20275 code of the legal form. |
countryCode |
string (ISO 3166-1 α-2) | Country of the jurisdiction. |
countryName |
string | Country name. |
jurisdictionName |
string | Jurisdiction of formation. |
countrySubDivisionCode |
string (ISO 3166-2) | Sub-division, when the form is regional. |
localName |
string | Legal form name in the local language and script. |
transliteratedName |
string | Latin-script transliteration (ISO 01-140). |
language |
string | Language of the local name. |
languageCode |
string (ISO 639-1) | Language code. |
localAbbreviations |
array<string> | Local-language abbreviations, e.g. SARL, GmbH, S.r.l. |
transliteratedAbbreviations |
array<string> | Transliterated abbreviations. |
enName ⭑ |
string | Canonical English name of the legal form. |
enVariations ⭑ |
array<string> | Searchable English variants: singular/plural, abbreviations, hyphenation. |
elfStatus |
enum | ACTV (active) or INAC (retired). |
dateCreated |
date (ISO 8601) | When the form entered the ELF list. |
modification |
string | Kind of the last change. |
modificationDate |
date (ISO 8601) | Date of the last change. |
reason |
string | GLEIF note on the modification or the form's scope of use. |
In CSV, the three array<string> fields are joined with a pipe (|); no value contains a pipe,
so it round-trips cleanly. In JSON they are real arrays.
The live API also carries an internal
recordKey(elfCode|languageCode|localName) used to address a single record — omitted from these flat files as it is an API-access artifact, not dataset content.
The base data is the GLEIF Entity Legal Forms (ELF) code list, the ISO 20275 standard: https://www.gleif.org/en/about-lei/code-lists/iso-20275-entity-legal-forms-code-list
GLEIF publishes this data under the CC0 1.0 public-domain dedication (see the GLEIF LEI Data Terms of Use). The ISO 20275 standard and the ELF codes are GLEIF's.
This repository is a normalized, repackaged version of that list (consistent field names,
typed values, arrays for multi-valued fields), plus the RegData enrichment fields marked ⭑
above.
License: the underlying GLEIF facts remain CC0; this compilation and the RegData
enrichment (enName, enVariations) are licensed CC BY 4.0.
If you use the data, credit: "Legal forms data by RegData, based on GLEIF ISO 20275 ELF (CC0)."
Full details in LICENSE.
RegData normalizes and serves regulatory reference data through one API. Legal forms are the first dataset. Next, each in its own repo:
- Sanctions lists — consolidated sanctioned entities, with name matching.
- Country risk — jurisdiction risk ratings for enhanced due diligence.
Watch https://regdata-marketplace-demo-fe.dedo-dev.workers.dev for the full catalog.
Keywords: company legal form, ISO 20275, GLEIF ELF, entity legal form code, legal entity form by jurisdiction, legal form dataset, legal form REST API, KYC / compliance reference data.