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.caenspune 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 undecaene 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,profitorisalariati, lista devine un clasament pe ultimul bilanţ depus al fiecărei firme (anul e înfinanciar.an, deci poate diferi între firme) şi cuprinde doar firmele care au bilanţ —meta.paginare.totalscade î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"
]
}
}
}
GEThttps://oneapi.ro/api/business/v1/caen/62/firme?per_pagina=5
{
"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": 5,
"total": 126807,
"pagini": 25362
},
"caen": {
"cerut": "62",
"versiune_cerut": "Rev.3",
"nivel": "diviziune",
"denumire": "Activităţi de programare și activități de consultanță în tehnologia informaţiei",
"clase_cautate": 13,
"clase_altele_decat_cerut": 13,
"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 13 clase diferite de [62], 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",
"6202",
"6203",
"6209",
"6220",
"6210",
"6290",
"3002",
"7230",
"7240",
"7260",
"7221",
"7222"
]
}
}
}
GEThttps://oneapi.ro/api/business/v1/caen/0113/firme?per_pagina=5
{
"data": [
{
"cui": 43509939,
"denumire": "4GDM NAVAL S.R.L.",
"cod_inmatriculare": "J13/3439/2020",
"forma_juridica": "SRL",
"stare": {
"cod": "1084",
"denumire": "radiată",
"categorie": "radiata"
},
"data_inmatriculare": "2020-12-31",
"sediu": {
"judet": "Constanța",
"localitate": "Făclia",
"cod_siruta": 62306
},
"caen_principal": {
"cod": "0113",
"denumire": "Cultivarea legumelor și a pepenilor, a rădăcinoaselor și tuberculilor"
},
"fiscal": {
"tva": false,
"inactiv": false,
"e_factura": false
},
"financiar": {
"an": 2024,
"cifra_afaceri": null,
"profit_net": -600,
"salariati": null
}
}
],
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 5,
"total": 45471,
"pagini": 9095
},
"caen": {
"cerut": "0113",
"versiune_cerut": "Rev.3",
"nivel": "clasa",
"denumire": "Cultivarea legumelor și a pepenilor, a rădăcinoaselor și tuberculiferelor",
"clase_cautate": 3,
"clase_altele_decat_cerut": 2,
"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 2 clase diferite de [0113], 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": [
"0113",
"0119",
"0128"
]
}
}
}
GEThttps://oneapi.ro/api/business/v1/caen/4711/firme?sortare=salariati&per_pagina=5
{
"data": [
{
"cui": 15991149,
"denumire": "KAUFLAND ROMANIA SCS",
"cod_inmatriculare": "J2003017052408",
"forma_juridica": "SCS",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "2003-12-12",
"sediu": {
"judet": "București",
"localitate": "București Sectorul 2",
"cod_siruta": 179150
},
"caen_principal": {
"cod": "4711",
"denumire": "Comerț cu amănuntul în magazine nespecializate, cu vânzare predominantă de produse alimentare, băuturi și tutun"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": true
},
"financiar": {
"an": 2025,
"cifra_afaceri": 20972574034,
"profit_net": 796899754,
"salariati": 15359
}
}
],
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 5,
"total": 103723,
"pagini": 20745
},
"caen": {
"cerut": "4711",
"versiune_cerut": "Rev.3",
"nivel": "clasa",
"denumire": "Comerț cu amănuntul nespecializat, cu vânzare predominantă de produse alimentare, băuturi și tutun",
"clase_cautate": 8,
"clase_altele_decat_cerut": 7,
"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 7 clase diferite de [4711], 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": [
"4711",
"4781",
"4791",
"4799",
"5211",
"5261",
"5262",
"5263"
]
}
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 404 | caen_inexistent | Codul [{cod}] nu există în nicio revizie CAEN (Rev.1, Rev.2, Rev.3). |
| 422 | validare | Un parametru nedeclarat ori o valoare care nu trece validarea (caen_versiune, pagina, per_pagina, sortare). Câmpul vinovat e în detalii. |
| 422 | caen_invalid | Codul [{cod}] nu are forma unui cod CAEN: literă de secţiune, două litere de subsecţiune (Rev.1), 2, 3 sau 4 cifre. |
| 429 | cota_depasita | Cota 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."
]
}
}
}