oneapi
Sign in
Business v1 / Nomenclatoare

CAEN equivalences

Translates a CAEN code from one edition to another — 1998, 2003 (Rev.1), 2008 (Rev.2), 2025 (Rev.3) — saying each time where the equivalence comes from.

GET
https://oneapi.ro/api/business/v1/caen/{cod}/echivalent

Path parameters

NameTypeDescriptionExample
codrequired string NACE Rev. 2 (CAEN) code, four digits (e.g. 6201).

Query parameters

NameTypeDescriptionAccepted values
versiuneoptional string | null The edition the given code is in: 0, 1, 2 or 3. Defaults to 3. 0123
catreoptional string | null The edition you want the equivalences in: 0, 1, 2 or 3. Defaults to the other one of Rev.2 and Rev.3. 0123

How it behaves

  • The editions are 0 (1998), 1 (2003, Rev.1), 2 (2008, Rev.2) and 3 (2025, Rev.3). versiune says which edition the given code is in, catre which edition you want it in; without catre, the answer moves between Rev.2 and Rev.3, as before.
  • INS only publishes tables between neighbouring editions (2003 → 2008 and 2008 → 2025). A longer jump is obtained by chaining them, and the result is marked sursa: compus — useful, but not guaranteed by the source. On a single step, sursa is oficial and tip_relatie says whether it is 1:1, 1:n, n:1 or n:m.
  • ⚠️ The tables only contain codes that changed. 362 Rev.2 codes are absent from the Rev.3 correspondence because they stayed identical — read as "no equivalent", that would cut a third of the nomenclature. When the table is silent, the route looks for the same code in the target edition and marks it sursa: cod_identic, tip_relatie: neschimbat.
  • ⚠️ The 1998 edition has no correspondence table at INS. For it the answer can only rest on the identical code (747 of 849 codes are found in 2003), never on an official correspondence.

What it is for

  • Migrating a dataset from CAEN Rev.2 to Rev.3.
  • Comparing historical series that use different editions.
  • Translating the code in an old contract into the current nomenclature.

Response structure

All fields below live inside data.

FieldTypeDescription
din string The CAEN edition you start from.
catre string The CAEN edition the code was translated into.
echivalente[] array The equivalent codes in the target edition.
echivalente[].cod string The equivalent code.
echivalente[].denumire string Its label in the target edition.
echivalente[].tip_relatie string | null How the two codes relate: 1:1, 1:n, n:1, n:m or neschimbat (unchanged). It comes from the INS table, so it is filled in only when the translation took a single step.
echivalente[].sursa string oficial — from the INS correspondence table; compus — obtained by chaining two tables (2003 → 2008 → 2025), which INS does not guarantee together; cod_identic — the tables are silent, but the same code exists in the target edition.

Response examples

GEThttps://oneapi.ro/api/business/v1/caen/4711/echivalent?versiune=2
{
    "data": {
        "din": "CAEN Rev.2",
        "catre": "CAEN Rev.3",
        "echivalente": [
            {
                "cod": "4711",
                "denumire": "Comerț cu amănuntul nespecializat, cu vânzare predominantă de produse alimentare, băuturi și tutun",
                "tip_relatie": "n:m",
                "sursa": "oficial"
            }
        ]
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitThe CAEN code [{cod}] does not exist in edition [{versiune}]. The edition is chosen with versiune (0, 1, 2 or 3).
422validareAn undeclared parameter or a value that fails validation (versiune, catre). The offending field is in detalii.
429cota_depasitaThe plan's monthly quota has been exceeded (see Retry-After).

All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "An undeclared parameter or a value that fails validation (versiune, catre). The offending field is in detalii.",
        "detalii": {
            "cod": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}