oneapi
Autentificare
Business v1 / Firme

Firme cu un cod CAEN

Firmele a căror activitate principală cade sub codul CAEN din cale, de orice nivel: secţiune (J),
diviziune (62), grupă (620), clasă (6201). Codul se caută întâi în Rev.3, apoi în Rev.2 şi Rev.1
(?caen_versiune= fixează revizia); firmele cu coduri din alte revizii se prind prin corespondenţa oficială.
Un cod inexistent e 404. Ce s-a căutat e în meta.caen. Paginat.

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

Parametri de cale

NumeTipDescriereExemplu
codobligatoriu string Codul CAEN Rev. 2, patru cifre (ex. 6201).

Parametri de interogare

NumeTipDescriereValori acceptate
caen_versiuneopțional string | null Revizia codului (1, 2, 3), când forma lui e ambiguă. Fără ea: Rev.3, apoi Rev.2, apoi Rev.1. 123
sortareopțional string | null Ordinea: denumire (implicit), cifra_afaceri, profit, salariati (descrescător, pe ultimul bilanţ depus), data_inmatriculare (cele mai noi întâi). relevantadenumirecifra_afaceriprofitsalariatidata_inmatriculare

Cum se comportă

  • Firmele a căror activitate principală cade sub codul din cale, paginat — echivalent cu /firme/cauta?caen=, dar cu codul în cale.
  • Codul poate fi de orice nivel: secţiune (J), diviziune (62), grupă (620), clasă (6201). Firmele cu coduri din alte revizii se prind prin corespondenţa oficială INS; meta.caen spune revizia în care s-a citit codul şi câte clase s-au căutat.
  • Un cod inexistent în nomenclator e 404 (caen_inexistent) — aici codul e în CALE, deci E resursa; pe rutele unde caen e filtru, acelaşi cod iese cu 422. Unul cu formă greşită e 422 (caen_invalid). Nici într-un caz o listă goală.
  • Cu sortare=cifra_afaceri, profit ori salariati, lista devine un clasament pe ultimul bilanţ depus al fiecărei firme (anul e în financiar.an, deci poate diferi între firme) şi cuprinde doar firmele care au bilanţ — meta.paginare.total scade în consecinţă. Pentru un clasament pe un singur an: /firme/top.

La ce folosește

  • Construirea listei complete de firme dintr-un sector, pentru prospectare.
  • Analiza distribuţiei geografice a unui domeniu de activitate.
  • Export sectorial, cu filtre geografice şi paginare.

Structura răspunsului

CâmpTipDescriere
data[].cui integer Codul fiscal.
data[].denumire string Denumirea.
data[].cod_inmatriculare string Numărul de ordine în registrul comerţului (J…).
data[].forma_juridica string Forma juridică (SRL, SA, PFA…).
data[].stare string Starea firmei, ca obiect: denumire e textul brut din ONRC (107 valori distincte folosite), categorie e clasificarea noastră în 7 cutii — activa, suspendata, dizolvata, lichidare, radiata, insolventa, alta — pe care o foloseşti ca să filtrezi sau să grupezi. cod e codul ONRC al stării.
data[].data_inmatriculare string Data înmatriculării la registrul comerţului.
data[].sediu.judet string Judeţul sediului social.
data[].sediu.localitate string Localitatea sediului social.
data[].sediu.cod_siruta integer Codul SIRUTA al localităţii — chainable spre /locations/v1.
data[].caen_principal.cod string Codul CAEN principal.
data[].caen_principal.denumire string Denumirea activităţii principale.
data[].fiscal.tva boolean Plătitoare de TVA.
data[].fiscal.inactiv boolean Declarată inactivă fiscal.
data[].fiscal.e_factura boolean Înrolată în e-Factura.
data[].financiar object | null Ultimul bilanţ depus (an, cifră de afaceri, profit net, salariaţi); null la firmele fără bilanţ — PFA-uri, firme noi —, nu zero.
data[].financiar.an integer Anul bilanţului.
data[].financiar.cifra_afaceri number | null Cifra de afaceri netă, în lei.
data[].financiar.profit_net number | null Profitul net, în lei; negativ = pierdere.
data[].financiar.salariati integer | null Numărul mediu de salariaţi.
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.
meta.caen object Cum s-a înţeles parametrul caen: codul cerut, revizia în care s-a citit şi codul pe care l-a folosit ruta. La o listă de coduri, câte un obiect pe cod.
meta.caen.cerut string Codul CAEN trimis, normalizat (litere mari, fără puncte).
meta.caen.versiune_cerut string Revizia în care s-a citit codul trimis: cea din caen_versiune, altfel prima în care există.
meta.caen.nivel string Nivelul codului folosit — la rutele de firme, al codului cerut: sectiune, subsectiune, diviziune, grupa, clasa sau agregat.
meta.caen.denumire string Denumirea codului, din nomenclatorul CAEN.
meta.caen.clase_cautate integer Câte clase CAEN, din toate reviziile purtate de firme, cad sub codul cerut.
meta.caen.clase_altele_decat_cerut integer Câte dintre ele NU sunt codul cerut. Căutarea e permisivă (traduce codul în toate ediţiile, ca să prindă firmele nerenumerotate), iar traducerea urcă uneori în clase mult mai largi — deci totalul poate fi despre mai mult decât meseria cerută.
meta.caen.nota_acoperire string Apare doar când s-a căutat şi pe alte clase decât codul cerut, şi spune ce să foloseşti dacă vrei o cifră strict despre meseria cerută.
meta.caen.clase string[] Clasele brute pe care s-a căutat, când sunt cel mult 20. Ca totalul să fie verificabil, nu o cifră de luat pe credit.

Exemple de răspuns

GEThttps://oneapi.ro/api/business/v1/caen/6201/firme
{
    "data": [
        {
            "cui": 41572620,
            "denumire": "$COMPANYNAME S.R.L.",
            "cod_inmatriculare": "J2/1494/2019",
            "forma_juridica": "SRL",
            "stare": {
                "cod": "1074",
                "denumire": "întrerupere temporară de activitate",
                "categorie": "alta"
            },
            "data_inmatriculare": "2019-08-28",
            "sediu": {
                "judet": "Arad",
                "localitate": "Sântana",
                "cod_siruta": 12108
            },
            "caen_principal": {
                "cod": "6201",
                "denumire": "Activități de realizare a soft-ului la comandă (software orientat client)"
            },
            "fiscal": {
                "tva": false,
                "inactiv": true,
                "e_factura": false
            },
            "financiar": {
                "an": 2025,
                "cifra_afaceri": 234660,
                "profit_net": 155214,
                "salariati": 1
            }
        }
    ],
    "meta": {
        "paginare": {
            "pagina": 1,
            "per_pagina": 20,
            "total": 65600,
            "pagini": 3280
        },
        "caen": {
            "cerut": "6201",
            "versiune_cerut": "Rev.2",
            "nivel": "clasa",
            "denumire": "Activități de realizare a soft-ului la comandă (software orientat client)",
            "clase_cautate": 5,
            "clase_altele_decat_cerut": 4,
            "nota_acoperire": "Căutarea e permisivă: codul cerut s-a tradus în toate ediţiile CAEN, ca să prindă şi firmele nerenumerotate încă. Totalul cuprinde deci şi 4 clase diferite de [6201], iar unele pot fi mult mai largi decât codul cerut. Pentru o cifră strict despre meseria cerută, foloseşte `categorie=` de la `/caen/categorii`, care refuză clasele-sac.",
            "clase": [
                "6201",
                "6210",
                "7240",
                "7221",
                "7222"
            ]
        }
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404caen_inexistentCodul [{cod}] nu există în nicio revizie CAEN (Rev.1, Rev.2, Rev.3).
422validareUn parametru nedeclarat ori o valoare care nu trece validarea (caen_versiune, pagina, per_pagina, sortare). Câmpul vinovat e în detalii.
422caen_invalidCodul [{cod}] nu are forma unui cod CAEN: literă de secţiune, două litere de subsecţiune (Rev.1), 2, 3 sau 4 cifre.
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 (caen_versiune, pagina, per_pagina, sortare). Câmpul vinovat e în detalii.",
        "detalii": {
            "cod": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}