oneapi
Autentificare
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 200 cu data: null şi motivul în meta.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
                }
            }
        ]
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404negasitFirma [{cui}] negăsită.
422validareRuta nu primeşte parametri, în afară de lang: orice alt parametru dă 422, nu e ignorat.
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": "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."
            ]
        }
    }
}