Business v1 / Firme
Top firme
Firmele clasate după cifra de afaceri, profitul net ori numărul de salariaţi, pe bilanţurile unui an, opţional într-un judeţ ori un sector CAEN.
GET
https://oneapi.ro/api/business/v1/firme/top
Parametri de interogare
NumeTipDescriereValori acceptate
caenopțional
string | null
Cod CAEN de orice nivel — secţiune (
G), diviziune (62), grupă, clasă (4711).
ex. 62
caen_versiuneopțional
string | null
Revizia codului din
caen (1, 2, 3), când forma lui e ambiguă.
123
dupaobligatoriu
string
Obligatoriu.
cifra_afaceri, profit ori salariati.
cifra_afaceriprofitsalariati
anopțional
integer | null
Anul bilanţului. Implicit, cel mai nou an cu bilanţurile depuse în mare parte.
ex. 2025
judetopțional
string | null
Judeţul sediului: indicativul auto (
CJ) ori numele.
ex. CJ
limitaopțional
integer | null
Câte firme. Implicit 20, maxim 100.
1 – 100
Cum se comportă
- Clasamentul firmelor după
cifra_afaceri,profit(profitul net, cu semn) orisalariati, pe bilanţurile unui singur an — toate rândurile au acelaşifinanciar.an, deci sunt comparabile. Listele obişnuite (/judete/{judet}/firme?sortare=) ordonează în schimb după ultimul bilanţ depus al fiecărei firme. - Fără
an, se foloseşte cel mai nou an cu bilanţurile depuse în mare parte (cel puţin 90% din firmele anului dinainte), spus înmeta.an_implicit. Anul în curs de depunere (iunie–septembrie) ar clasa doar firmele grăbite. Un an fără bilanţuri întoarce200cudata: nullşimeta.fara_date, cu anii disponibili. judete judeţul sediului din anul clasat (din istoricul ONRC: o firmă mutată în 2024 din Cluj în Bucureşti apare în topul Clujului pe 2021), iarcaenactivitatea principală de azi din ANAF (un cod de orice nivel, desfăcut în toate reviziile).- Bilanţurile vin de la Ministerul Finanţelor (situaţiile financiare anuale depuse). Firmele care nu depun bilanţ (PFA, II) nu apar.
- Valorile imposibile scrise în formular (o cifră de afaceri de 300.000 de miliarde de lei, 62.355 de salariaţi la o firmă cu 275.000 de lei cifră de afaceri) devin
null, nu intră în clasament ori în medii. Asigurătorii n-au rând de cifră de afaceri în formular, deci aucifra_afaceri: null.
La ce folosește
- Cele mai mari 20 de firme dintr-un judeţ, pentru o pagină de prezentare a economiei locale.
- Liderii unui sector (
caen=62) după numărul de angajaţi, pentru prospectare ori recrutare. - Cele mai profitabile firme dintr-un an, pentru un articol ori un raport.
Structura răspunsului
CâmpTipDescriere
data[].pozitie
integer
Locul în clasament, de la 1.
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
object
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[].stare.cod
string
Codul din nomenclatorul sursei — cheia pe care se filtrează.
data[].stare.denumire
string
Denumirea, aşa cum o publică sursa.
data[].stare.categorie
string
Categoria din clasificarea sursei.
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.an
integer
Anul bilanţului clasat — acelaşi pe toate rândurile.
data[].financiar.cifra_afaceri
integer
Cifra de afaceri netă, în lei.
data[].financiar.profit_net
integer
Profitul net, în lei; negativ = pierdere.
data[].financiar.salariati
integer
Numărul mediu de salariaţi.
meta.dupa
string
Criteriul clasamentului.
meta.an
integer
Anul bilanţurilor clasate.
meta.an_implicit
integer
Anul folosit când lipseşte
an: cel mai nou an cu bilanţurile depuse în mare parte.
meta.limita
integer
Câte firme s-au cerut.
meta.nr_firme
integer
meta.judet
string
Judeţul cerut, dacă e cazul.
meta.caen
object
Cum s-a rezolvat codul CAEN cerut (nivel, denumire, câte clase s-au căutat).
Exemple de răspuns
GEThttps://oneapi.ro/api/business/v1/firme/top?dupa=cifra_afaceri&limita=10
{
"data": [
{
"pozitie": 1,
"cui": 1590082,
"denumire": "OMV PETROM SA",
"cod_inmatriculare": "J1997008302407",
"forma_juridica": "SA",
"stare": {
"cod": "2072",
"denumire": "sechestru părți sociale/acțiuni deținute de unul sau mai mulți asoc./acționari",
"categorie": "alta"
},
"data_inmatriculare": "1997-10-23",
"sediu": {
"judet": "București",
"localitate": "București Sectorul 1",
"cod_siruta": 179141
},
"caen_principal": {
"cod": "0610",
"denumire": "Extracția petrolului brut"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": false
},
"financiar": {
"an": 2025,
"cifra_afaceri": 30828147506,
"profit_net": 3067559914,
"salariati": 6701
}
}
],
"meta": {
"dupa": "cifra_afaceri",
"an": 2025,
"an_implicit": 2025,
"limita": 10,
"nr_firme": 730163
}
}
GEThttps://oneapi.ro/api/business/v1/firme/top?dupa=profit&judet=CJ&limita=5
{
"data": [
{
"pozitie": 1,
"cui": 14476722,
"denumire": "DISTRIBUȚIE ENERGIE ELECTRICĂ ROMANIA S.A.",
"cod_inmatriculare": "J2002000352121",
"forma_juridica": "SA",
"stare": {
"cod": "2127",
"denumire": "raspundere penala cf. Legii 286/2009, Legii 135/2010",
"categorie": "alta"
},
"data_inmatriculare": "2002-02-26",
"sediu": {
"judet": "Cluj",
"localitate": "Cluj-Napoca",
"cod_siruta": 54984
},
"caen_principal": {
"cod": "3514",
"denumire": "Comercializarea energiei electrice"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": false
},
"financiar": {
"an": 2025,
"cifra_afaceri": 4312446414,
"profit_net": 812663232,
"salariati": 6270
}
}
],
"meta": {
"dupa": "profit",
"an": 2025,
"an_implicit": 2025,
"judet": "CJ",
"limita": 5,
"nr_firme": 57933
}
}
GEThttps://oneapi.ro/api/business/v1/firme/top?dupa=salariati&caen=62&limita=5
{
"data": [
{
"pozitie": 1,
"cui": 9533457,
"denumire": "ENDAVA ROMANIA SRL",
"cod_inmatriculare": "J1997001110126",
"forma_juridica": "SRL",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "1997-06-20",
"sediu": {
"judet": "Cluj",
"localitate": "Cluj-Napoca",
"cod_siruta": 54984
},
"caen_principal": {
"cod": "6210",
"denumire": "Activități de realizare a soft-ului la comandă (software orientat client)"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": true
},
"financiar": {
"an": 2025,
"cifra_afaceri": 1179513721,
"profit_net": 117032117,
"salariati": 4023
}
}
],
"meta": {
"dupa": "salariati",
"an": 2025,
"an_implicit": 2025,
"limita": 5,
"nr_firme": 27366,
"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/firme/top?dupa=profit
{
"data": [
{
"pozitie": 1,
"cui": 13267213,
"denumire": "SOCIETATEA DE PRODUCERE A ENERGIEI ELECTRICE IN HIDROCENTRALE \" HIDROELECTRICA\" S.A.",
"cod_inmatriculare": "J2000007426409",
"forma_juridica": "SA",
"stare": {
"cod": "2072",
"denumire": "sechestru părți sociale/acțiuni deținute de unul sau mai mulți asoc./acționari",
"categorie": "alta"
},
"data_inmatriculare": "2000-08-10",
"sediu": {
"judet": "București",
"localitate": "București Sectorul 1",
"cod_siruta": 179141
},
"caen_principal": {
"cod": "3512",
"denumire": "Transportul energiei electrice"
},
"fiscal": {
"tva": true,
"inactiv": false,
"e_factura": true
},
"financiar": {
"an": 2025,
"cifra_afaceri": 9758404582,
"profit_net": 3337517121,
"salariati": 3554
}
}
],
"meta": {
"dupa": "profit",
"an": 2025,
"an_implicit": 2025,
"limita": 20,
"nr_firme": 917611
}
}
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. |
| 422 | validare | Un parametru nedeclarat ori o valoare care nu trece validarea (dupa lipsă ori necunoscut, an, limita peste 100, caen). Câmpul vinovat e în detalii. |
| 422 | filtru_necunoscut | Judeţul din judet nu există; detalii.camp spune care. |
| 422 | caen_inexistent | Codul din caen nu există în nicio revizie CAEN. |
| 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 (dupa lipsă ori necunoscut, an, limita peste 100, caen). Câmpul vinovat e în detalii.",
"detalii": {
"caen": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}