oneapi
Autentificare
Business v1 / Firme

Istoricul activităţilor

Codurile CAEN autorizate ale firmei de-a lungul timpului, cu perioada în care apar în registru.

GET
https://oneapi.ro/api/business/v1/firme/{cui}/istoric/activitati

Parametri de cale

NumeTipDescriereExemplu
cuiobligatoriu string Codul de identificare fiscală al firmei, fără prefixul RO (ex. 6719278).

Parametri de interogare

NumeTipDescriereValori acceptate
versiuneopțional string | null Doar o ediţie CAEN: 0 (1998), 1 (Rev.1), 2 (Rev.2), 3 (Rev.3). 0123
in_vigoareopțional boolean | null 1 doar activităţile de azi, 0 doar cele închise. ex. 1
doar_schimbariopțional boolean | null 1 doar rândurile cu o adăugare ori o renunţare reală (fără renumerotare). ex. 1
de_laopțional string | null Doar schimbările (adăugări ori renunţări) de la această dată, AAAA-LL-ZZ. Implică doar_schimbari. ex. 2025-10-01

Cum se comportă

  • Schimbările reale sunt separate de renumerotare. ONRC a trecut firmele de pe CAEN Rev.2 pe Rev.3 treptat, fiecare la ediţia ei: atunci toate codurile Rev.2 dispar şi apar echivalentele Rev.3. Citite brut, la eMAG 140 din 148 de rânduri păreau schimbări. adaugata şi renuntata spun doar ce a schimbat firma, recunoscând perechile vechi–nou prin tabelul oficial de corespondenţă (codurile nepomenite de tabel au rămas neschimbate), în ambele sensuri şi la fel pentru codurile Rev.1 convertite în Rev.2 — sursa a şi dat înapoi uneori, iar unele firme au avut ambele nomenclatoare o vreme (la Dedeman, 236 de rânduri „schimbate" sunt de fapt 19). O activitate Rev.2 fără echivalent printre codurile noi e o renunţare reală, chiar dacă a dispărut în ziua trecerii.
  • ?doar_schimbari=1 întoarce doar rândurile cu o adăugare ori o renunţare; ?de_la=2025-09-01 restrânge la schimbările de după o dată. Pentru „ce a schimbat firma în ultimul an" e o singură cerere, fără să citeşti sute de rânduri.
  • Activitatea principală se ştie doar pentru azi. ONRC nu o marchează în fişierul de activităţi, iar ANAF nu publică istoricul ei — de aceea rândurile au principala_acum. ANAF ţine des principala pe codul Rev.2 după ce ONRC a trecut firma pe Rev.3; echivalentele Rev.3 sunt în meta.caen_principal.echivalente_rev3.
  • Istoricul începe cu ediţia ONRC din 21 martie 2025, prima în care activităţile autorizate vin ca fişier separat. Ce avea firma atunci apare fără adaugata: nu ştim de când o avea.
  • Datele sunt ale ediţiilor (aproximativ lunare): o activitate cu adaugata: 2025-10-06 a apărut între ediţia anterioară şi 6 octombrie. Un rând văzut într-o singură ediţie poate fi o corectură a sursei.
  • Aceleaşi nume de dată ca la celelalte istorii: vazut_de_la şi vazut_pana_la.

La ce folosește

  • Ce activităţi avea autorizate firma la data unei achiziţii publice.
  • Momentul în care o firmă şi-a schimbat domeniul de activitate.
  • Urmărirea trecerii unui sector la noua ediţie CAEN.

Structura răspunsului

CâmpTipDescriere
data[].principala_acum boolean true pe codul care e AZI activitatea principală a firmei, după ANAF, şi doar pe rândul în vigoare.
meta.caen_principal object | null Activitatea principală actuală, după ANAF: {cod, denumire, versiune, sursa, echivalente_rev3}; null dacă ANAF n-o declară.
data[].cod string Codul CAEN autorizat.
data[].denumire string Denumirea codului, din nomenclator.
data[].versiune string Ediţia CAEN: 0 (1998), 1 (2003), 2 (2008), 3 (2025).
data[].vazut_de_la string Primul snapshot în care firma apare cu codul ăsta autorizat.
data[].vazut_pana_la string | null Ultimul snapshot în care mai apare; null dacă e încă autorizat.
data[].in_vigoare boolean true dacă apare în cel mai recent snapshot procesat.
data[].adaugata null Ediţia în care activitatea a apărut cu adevărat; null dacă era deja la prima ediţie în care vedem firma (nu ştim de când o are) ori dacă e doar echivalentul Rev.3 al unui cod Rev.2 închis la trecerea firmei pe noul nomenclator.
data[].renuntata null Ultima ediţie în care activitatea a mai apărut înainte să dispară; null dacă e în vigoare ori dacă a dispărut doar prin renumerotare (echivalentul ei Rev.3 a apărut în ediţia următoare).
data[].renumerotare boolean true dacă începutul ori sfârşitul perioadei vine din trecerea Rev.2 → Rev.3, nu dintr-o decizie a firmei.
meta.caen_principal.echivalente_rev3 array Când ANAF ţine principala încă pe un cod Rev.2 (des, chiar dacă ONRC a trecut firma pe Rev.3), codurile Rev.3 corespunzătoare după tabelul oficial; null dacă principala e deja Rev.3.
meta.rezumat.prima_editie string Prima ediţie în care vedem activităţile firmei — ce avea atunci nu apare ca „adăugat".
meta.rezumat.trecere_rev3 string Ediţia în care ONRC a trecut firma pe CAEN Rev.3; null dacă o vedem de la început pe Rev.3.
meta.rezumat.adaugate integer Câte activităţi a adăugat firma, fără renumerotare — pe tot istoricul, indiferent de filtre.
meta.rezumat.renuntate integer La câte activităţi a renunţat, fără renumerotare.
meta.rezumat.ultima_schimbare string Data ultimei schimbări reale; null dacă nu e niciuna.
meta.paginare.pagina integer Pagina curentă, numărată de la 1.
meta.paginare.per_pagina integer Câte înregistrări are o pagină.
meta.paginare.total integer Totalul înregistrărilor care se potrivesc, dincolo de pagina curentă.
meta.paginare.pagini integer Câte pagini are lista.

Exemple de răspuns

GEThttps://oneapi.ro/api/business/v1/firme/14399840/istoric/activitati?per_pagina=5
{
    "data": [
        {
            "cod": "4615",
            "denumire": "Intermedieri în comerțul cu mobilă, articole de menaj și de fierărie",
            "versiune": "3",
            "vazut_de_la": "2025-05-05",
            "vazut_pana_la": null,
            "in_vigoare": true,
            "adaugata": null,
            "renuntata": null,
            "renumerotare": true,
            "principala_acum": false
        }
    ],
    "meta": {
        "caen_principal": {
            "cod": "4754",
            "denumire": "Comerț cu amănuntul al articolelor și aparatelor electrocasnice, în magazine specializate",
            "versiune": "2",
            "sursa": "ANAF",
            "echivalente_rev3": [
                "4754",
                "4792"
            ]
        },
        "rezumat": {
            "prima_editie": "2025-03-21",
            "trecere_rev3": "2025-05-05",
            "adaugate": 9,
            "renuntate": 5,
            "ultima_schimbare": "2026-02-03"
        },
        "paginare": {
            "pagina": 1,
            "per_pagina": 5,
            "total": 148,
            "pagini": 30
        }
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404negasitFirma cu CUI [{cui}] nu a fost găsită.
422validareUn parametru nedeclarat ori o valoare care nu trece validarea (versiune, in_vigoare, doar_schimbari, de_la). Câmpul vinovat e în detalii.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "Un parametru nedeclarat ori o valoare care nu trece validarea (versiune, in_vigoare, doar_schimbari, de_la). Câmpul vinovat e în detalii.",
        "detalii": {
            "cui": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}