Business v1 / Firme
Poziţionare în sector
Firma faţă de firmele cu acelaşi CAEN, din acelaşi judeţ şi de aceeaşi mărime, an cu an: cuartilele grupului şi locul firmei în el.
GET
https://oneapi.ro/api/business/v1/firme/{cui}/benchmark
Parametri de cale
NumeTipDescriereExemplu
cuiobligatoriu
string
Codul de identificare fiscală al firmei, fără prefixul
RO (ex. 6719278).
Parametri de interogare
Ruta nu acceptă parametri de interogare.
Cum se comportă
- Firma faţă de firmele ca ea, an cu an: acelaşi cod CAEN (cel din bilanţul acelui an), acelaşi judeţ, aceeaşi clasă de mărime.
pozitie.cifra_afaceri: 85înseamnă că 85% din grup are o cifră de afaceri mai mică. - Grupul trebuie să aibă măcar 5 firme — sub atât, percentilele ar descrie firme identificabile. Dacă judeţul nu ajunge, grupul se lărgeşte la toată ţara (
nivel: national), apoi la toate clasele de mărime (grup.clasa_marime: null). Firmele mari au puţini egali: Dedeman se compară cu toate cele 2.817 firme din 4752, fiindcă mari sunt doar 3. - Acoperă toate formularele de bilanţ (inclusiv microîntreprinderile), din 2019. Fără bilanţ cu cod CAEN, răspunsul e
200cudata: nullşi motivul înmeta.fara_date. - Judeţul e al sediului din anul bilanţului, luat din istoricul ONRC (din 2020): o firmă mutată din Cluj în Bucureşti în 2024 contează la Cluj pentru 2021 şi la Bucureşti pentru 2025. Pentru 2019 se ia judeţul din prima ediţie pe care o avem (mai 2020). Aceleaşi cifre, pe un sector întreg:
/caen/{cod}/benchmark.
La ce folosește
- Poziţionarea unui client faţă de media sectorului lui, într-un raport de analiză.
- Scoring de credit: cât de departe stă firma de tiparul local al domeniului.
- Argumentarea unei oferte comerciale cu cifre din sectorul clientului.
Structura răspunsului
Toate câmpurile de mai jos sunt în data.
CâmpTipDescriere
benchmark[].caen
string
Codul CAEN al activităţii, în revizia seriei.
benchmark[].judet
string
Judeţul la care se referă valoarea.
benchmark[].an
integer
Anul la care se referă valoarea.
benchmark[].clasa_marime
string
Clasa de mărime a întreprinderii, după numărul de salariaţi.
benchmark[].n
integer
benchmark[].ca_p25
number | null
benchmark[].ca_p50
number | null
benchmark[].ca_p75
number | null
benchmark[].ca_medie
number | null
benchmark[].profit_p50
number | null
benchmark[].salariati_p50
number | null
ani[].an
integer
Anul bilanţului.
ani[].caen
string
Codul CAEN declarat de firmă în bilanţul acelui an.
ani[].clasa_marime
string
Clasa de mărime a firmei în acel an, după salariaţi:
micro (0–9), mica (10–49), mijlocie (50–249), mare (250+).
ani[].nivel
string
judet dacă grupul e din judeţul firmei, national dacă a trebuit lărgit la toată ţara.
ani[].judet
string
Judeţul grupului;
null la nivel naţional.
ani[].grup.clasa_marime
string
Clasa de mărime a grupului;
null dacă firma e comparată cu toate clasele (când firmele de mărimea ei sunt prea puţine).
ani[].grup.firme
integer
Câte firme cu bilanţ are grupul.
ani[].grup.cifra_afaceri
object
Cuartilele (
p25, mediana, p75) şi media cifrei de afaceri a grupului, în lei.
ani[].grup.profit_net
object
Cuartilele profitului net al grupului, în lei (negativ = pierdere).
ani[].grup.salariati
object
Numărul median de salariaţi al grupului.
ani[].firma
object
Valorile firmei în acel an:
cifra_afaceri, profit_net, salariati.
ani[].pozitie
object
Ce procent din grup are o valoare sub cea a firmei, pe fiecare indicator (0–100);
null unde firma n-are valoarea.
Exemple de răspuns
GEThttps://oneapi.ro/api/business/v1/firme/6719278/benchmark
{
"data": {
"ani": [
{
"an": 2025,
"caen": "4711",
"clasa_marime": "mare",
"nivel": "judet",
"judet": "București",
"grup": {
"clasa_marime": "mare",
"firme": 10,
"cifra_afaceri": {
"p25": 657070580.25,
"mediana": 9453476915,
"p75": 13702177264,
"medie": 9501150838.7
},
"profit_net": {
"p25": -38482660,
"mediana": 77524592,
"p75": 203723091
},
"salariati": {
"mediana": 7099
}
},
"firma": {
"cifra_afaceri": 12256333315,
"profit_net": 124841094,
"salariati": 10171
},
"pozitie": {
"cifra_afaceri": 60,
"profit_net": 50,
"salariati": 60
}
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/14399840/benchmark
{
"data": {
"ani": [
{
"an": 2025,
"caen": "4754",
"clasa_marime": "mare",
"nivel": "national",
"judet": null,
"grup": {
"clasa_marime": null,
"firme": 604,
"cifra_afaceri": {
"p25": 95756.5,
"mediana": 331134,
"p75": 1339076,
"medie": 39005322.22
},
"profit_net": {
"p25": -9609.5,
"mediana": 1098,
"p75": 44614
},
"salariati": {
"mediana": 1
}
},
"firma": {
"cifra_afaceri": 8706154345,
"profit_net": -370680444,
"salariati": 2889
},
"pozitie": {
"cifra_afaceri": 99.8,
"profit_net": 0,
"salariati": 99.5
}
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/2054341/benchmark
{
"data": {
"ani": [
{
"an": 2025,
"caen": "1410",
"clasa_marime": "micro",
"nivel": "judet",
"judet": "Neamț",
"grup": {
"clasa_marime": "micro",
"firme": 9,
"cifra_afaceri": {
"p25": 153668,
"mediana": 197186,
"p75": 437239,
"medie": 780424.33
},
"profit_net": {
"p25": 4974,
"mediana": 5385,
"p75": 27338
},
"salariati": {
"mediana": 1
}
},
"firma": {
"cifra_afaceri": 1177675,
"profit_net": 4974,
"salariati": 3
},
"pozitie": {
"cifra_afaceri": 77.8,
"profit_net": 22.2,
"salariati": 75
}
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/24890577/benchmark
{
"data": {
"ani": [
{
"an": 2024,
"caen": "4619",
"clasa_marime": "mica",
"nivel": "judet",
"judet": "Harghita",
"grup": {
"clasa_marime": "mica",
"firme": 8,
"cifra_afaceri": {
"p25": 5125247.75,
"mediana": 9374226.5,
"p75": 18279877.5,
"medie": 13045882.75
},
"profit_net": {
"p25": 340815.5,
"mediana": 474439.5,
"p75": 795157.25
},
"salariati": {
"mediana": 12
}
},
"firma": {
"cifra_afaceri": 10805214,
"profit_net": 440964,
"salariati": 10
},
"pozitie": {
"cifra_afaceri": 50,
"profit_net": 25,
"salariati": 0
}
}
]
}
}
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 | negasit | Firma [{cui}] negăsită. |
| 422 | validare | Ruta nu primeşte parametri, în afară de lang: orice alt parametru dă 422, nu e ignorat. |
| 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": "Ruta nu primeşte parametri, în afară de lang: orice alt parametru dă 422, nu e ignorat.",
"detalii": {
"cui": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}