oneapi
Autentificare
Financiar v1 / Inflatie

Întreprinderi şi unităţi locale active

Câte întreprinderi şi câte unităţi locale active are fiecare activitate CAEN, pe an, pe clase de
mărime şi — spre deosebire de ruta indicatorilor — până la nivel de judeţ.

Sunt două concepte, nu unul. O întreprindere e unitatea juridică; o unitate locală e sediul în
care ea îşi desfăşoară activitatea. O întreprindere poate avea mai multe unităţi locale, deci
numărul unităţilor e mai mare: în 2024, 724.228 întreprinderi şi 740.671 unităţi locale. tip
alege între ele, iar cifrele lor nu se adună.

Geografia e asimetrică. Unităţile locale au judeţul pe toate nivelurile CAEN; întreprinderile
doar la nivel de secţiune. O cerere care combină teritoriu cu un nivel mai fin pe
tip=intreprinderi primeşte geografie_indisponibila, fiindcă sursa nu publică acea celulă.

Clasele de mărime sunt patru, nu cinci. Aici banda de mijloc e comasată în 10-49, pe când
/financiar/v1/intreprinderi/indicatori are 10-19 şi 20-49 separate. Clasele celor două rute
nu se pun cap la cap.

Cele două clasificări nu se leagă. Rev.1 acoperă 1997–2008, Rev.2 acoperă 2008–2024, iar Rev.1
are un nivel în plus, subsecţiunea. Nu lipim seriile: versiune alege una.

Totalul pe activităţi vine din mai multe tabele. Fiecare tabel al sursei — câte unul pe nivel
CAEN — îşi publică propriul total. Măsurat pe toată seria, cifrele coincid în 51 din 53 de
combinaţii an × tip × clasificare, iar acolo unde coincid le dăm ca o singură serie, cu
niveluri_sursa. ⚠️ În cele două excepţii le lăsăm separate şi le raportăm în
identitati.totaluri_divergente: în 2001, subsecţiunea dă 318.370 întreprinderi faţă de 320.929
la celelalte niveluri, o diferenţă de 2.559; în 1999, secţiunea diferă cu o unitate.

Ierarhia CAEN nu se verifică aici, fiindcă sursa suprimă celulele cu prea puţine firme. Ce se
verifică e clasa de mărime: totalul e suma exactă a celor patru componente în 168.512 din 168.551
de celule; cele 39 de abateri sunt de cel mult 7 unităţi şi cad în ambele direcţii.

GET
https://oneapi.ro/api/financiar/v1/intreprinderi

Parametri de interogare

NumeTipDescriereValori acceptate
tipopțional string | null Opţional: intreprinderi (implicit) sau unitati_locale. intreprinderiunitati_locale
versiuneopțional string | null Opţional: rev2 (implicit, 2008 → prezent) sau rev1 (1997–2008). rev1rev2
nivelopțional string | null Opţional: sectiune, subsectiune (doar Rev.1), diviziune, grupa, clasa. Fără caen, toate codurile nivelului; cu caen, rândurile nivelului de sub cod. sectiunesubsectiunediviziunegrupaclasa
teritoriuopțional string | null Opţional, denumirea exactă — un judeţ, o regiune, o macroregiune sau TOTAL. max 80 car.
nivel_teritoriuopțional string | null Opţional: tara (implicit), macroregiune, regiune, judet — întoarce toate teritoriile de la acel nivel. taramacroregiuneregiunejudet
de_laopțional integer | null Opţional, an. 1990 – 2100
pana_laopțional integer | null Opţional, an. 1990 – 2100
caenopțional string | null Opţional: orice cod CAEN — secţiune (C), diviziune (62), grupă, clasă (6201) — din orice revizie. Se aduce la cel mai fin nivel publicat în versiune (secţiune, subsecţiune Rev.1, diviziune, grupă, clasă); ce s-a folosit e în meta.caen. Cu nivel sub nivelul codului, întoarce rândurile de pe nivel de sub el (caen=C&nivel=diviziune); un nivel deasupra codului e nivel_peste_caen. ex. Jex. 62
caen_versiuneopțional string | null Opţional: revizia codului din caen — 1, 2 sau 3 — când forma lui e ambiguă (4932 înseamnă altceva în Rev.2 şi în Rev.3). Fără ea, codul se caută întâi în revizia seriei. 123
grupareopțional string | null Opţional: agregatele sursei care nu sunt coduri CAEN — total (publicat pe fiecare nivel; nivel alege tabelul). Nu se trimite împreună cu caen. ex. total
marimelistăopțional text Opţional: total (implicit), 0-9, 10-49, 50-249, 250+, separate prin virgulă. total0-910-4950-249250+

Cum se comportă

  • Numărul de întreprinderi şi de unităţi locale active, pe activitate CAEN, clasă de mărime şi teritoriu, anual din 1997 (Rev.1) şi din 2008 (Rev.2). 3,27 milioane de valori din optsprezece tabele TEMPO din familia INT101.
  • Sunt două concepte, nu unul. O întreprindere e unitatea juridică; o unitate locală e sediul în care ea îşi desfăşoară activitatea. O firmă cu trei puncte de lucru e o întreprindere şi trei unităţi locale. În 2024: 724.228 de întreprinderi şi 740.671 de unităţi locale — 1,02 unităţi la o firmă. tip alege între ele; cifrele lor nu se adună.
  • E perechea numerică a rutei /intreprinderi/indicatori. Acolo sunt banii — cifra de afaceri, investiţiile, salariile; aici sunt firmele care îi fac, şi doar aici se coboară la judeţ.
  • Geografia e asimetrică, şi asta e decizia sursei, nu a noastră. Unităţile locale au teritoriul pe toate cele patru niveluri CAEN; întreprinderile, doar la nivel de secţiune. O cerere care combină teritoriu cu un nivel mai fin pe tip=intreprinderi primeşte geografie_indisponibila cu explicaţia, în loc de un răspuns gol. Cele 55 de teritorii sunt cele 41 de judeţe plus Bucureştiul, cele 8 regiuni de dezvoltare, cele 4 macroregiuni şi ţara.
  • Ce arată datele: în 2024, unităţile locale din activităţi de realizare a soft-ului la comandă (clasa 6201) sunt 6.517 în Bucureşti, 3.442 în Cluj, 1.545 în Iaşi şi 1.441 în Timiş — Clujul are jumătate din Bucureşti, iar Iaşiul şi Timişul, fiecare, un sfert din Cluj.
  • ⚠️ Clasele de mărime NU sunt aceleaşi ca la /intreprinderi/indicatori. Aici sunt patru componente — 0-9, 10-49, 50-249, 250+ — pe când acolo banda de mijloc e desfăcută în 10-19 şi 20-49. Cifrele celor două rute nu se pun cap la cap pe clase de mărime; pe total, da.
  • ✅ Clasele de mărime se însumează. Măsurat pe toată proiecţia: totalul e suma exactă a celor patru în 168.512 din 168.551 de celule verificabile. Cele 39 de abateri sunt de cel mult 7 unităţi, aproape toate în 2003 pe unităţi locale Rev.1, şi cad în ambele direcţii — semnătura unei erori de publicare, nu a suprimării statistice, care ar merge într-un singur sens. Identitatea se rulează la fiecare cerere şi se raportează în identitati.
  • ⚠️ caen=total e publicat de mai multe tabele deodată, câte unul pe nivel CAEN. Măsurat, cifrele coincid în 51 din 53 de combinaţii an × tip × clasificare; unde coincid, ruta le dă ca o singură serie şi listează în niveluri_sursa tabelele care o susţin. În cele două excepţii le lasă separate şi le raportează în identitati.totaluri_divergente: în 2001, subsecţiunea dă 318.370 de întreprinderi faţă de 320.929 la celelalte niveluri — o diferenţă de 2.559 — iar în 1999 secţiunea diferă cu o unitate.
  • ⚠️ Ierarhia CAEN nu se verifică aici, din acelaşi motiv ca la ruta indicatorilor: sursa suprimă celulele cu prea puţine firme, ca să nu poată fi identificată una anume, deci suma copiilor cade sub părinte fără ca vreo cifră să fie greşită.
  • Cele două clasificări nu se leagă cap la cap. Rev.1 acoperă 1997–2008 cu 13 secţiuni şi un nivel în plus, subsecţiunea (28 de coduri, care în Rev.2 nu mai există); Rev.2 acoperă 2008–2024 cu 18 secţiuni, 82 de diviziuni, 258 de grupe şi 588 de clase. versiune alege una — ruta nu lipeşte niciodată seriile.
  • Activitatea se cere ca pe toată platforma. caen primeşte orice cod CAEN, de orice nivel şi din orice revizie, iar ruta îl aduce la ce publică seria — urcând la părinte ori traducându-l prin corespondenţa oficială INS; meta.caen spune codul cerut, cel folosit şi dacă a fost urcat ori convertit. grupare e pentru agregatele sursei care nu sunt coduri CAEN.

La ce folosește

  • Densitatea unui sector pe judeţe: unde sunt firmele dintr-o activitate şi cât de mari.
  • Câte firme mari are o activitate — numărătorul pentru orice medie pe firmă din ruta indicatorilor.
  • Evoluţia numărului de firme dintr-un domeniu, ca semnal de intrare sau ieşire din piaţă.

Structura răspunsului

CâmpTipDescriere
data.tip string intreprinderi sau unitati_locale — două concepte diferite, niciodată însumate.
data.versiune_caen string Revizia din care vine seria servită.
data.unitate string Unitatea de măsură a valorilor. Citeşte-o înainte de a le pune pe un grafic sau de a le aduna.
data.de_la integer Începutul intervalului acoperit de răspuns.
data.pana_la integer Sfârşitul intervalului acoperit de răspuns, inclusiv.
data.filtre.nivel string Nivelul din ierarhia clasificării — cu cât e mai adânc, cu atât e mai detaliat.
data.filtre.nivel_teritoriu string Nivelul teritorial al valorii (ţară, regiune, judeţ, localitate).
data.ani array Anii pentru care există valori.
data.serii[].caen string Codul CAEN al activităţii, în revizia seriei.
data.serii[].nivel string Nivelul CAEN al seriei; total când cifra e totalul general, susţinut de mai multe tabele.
data.serii[].denumire string Denumirea, aşa cum o publică sursa.
data.serii[].teritoriu string Teritoriul la care se referă valoarea.
data.serii[].nivel_teritoriu string tara, macroregiune, regiune sau judet — nivelurile nu se însumează între ele.
data.serii[].marime string Clasa de mărime folosită de sursă.
data.serii[].ani_publicati integer Câţi ani din fereastră au valoare; restul sunt null, nu zero.
data.serii[].valori object Valorile seriei, pe perioade.
data.identitati object Verificarea claselor de mărime pe acest răspuns, plus totalurile divergente dacă apar.
data.identitati.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.nota_identitate string Cum se verifică identitatea de mai sus şi ce înseamnă când nu se închide.
data.identitati.nota_marimi string
data.identitati.nota_total string Ce cuprinde totalul şi ce rămâne în afara lui.
data.identitati.verificari integer Câte combinaţii au fost verificate.
data.identitati.inchise integer Câte verificări s-au închis în toleranţă.
data.identitati.abatere_maxima string Cea mai mare abatere întâlnită între suma componentelor şi total.
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.acoperire.de_la integer Prima perioadă pentru care avem date.
meta.acoperire.pana_la integer Ultima perioadă pentru care avem date.
meta.serii_returnate integer Câte serii s-au întors efectiv, după filtre şi după plafonul de celule.
meta.nota_tip string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_geografie string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_marimi string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_total string Ce cuprinde totalul şi ce rămâne în afara lui.
meta.nota_versiune string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_identitate string Cum se verifică identitatea de mai sus şi ce înseamnă când nu se închide.
meta.nota_fereastra string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
data.serii[].niveluri_sursa Tabelele care publică acelaşi total, când cifrele lor coincid.
meta.fara_date data e null, iar aici stă motivul. Proiecţia peste datele INS e goală. Denumirea nu apare în seriile publicate; lista completă vine în răspuns. Ca la celelalte serii.
meta.fara_date_cod Cuvântul scurt şi STABIL al motivului, pentru clienţii care comută pe el în cod: fara_date e proză şi se poate reformula, ăsta nu.
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.folosit string Codul pe care l-a folosit seria: cel cerut, primul lui părinte publicat ori agregatul sursei care îl cuprinde (02-03).
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.versiune_serie string Revizia CAEN în care publică seria.
meta.caen.conversie boolean true când codul a fost tradus dintr-o revizie în alta prin corespondenţa oficială INS.
meta.caen.urcat boolean true când seria nu publică codul cerut şi s-a folosit un nivel superior.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/intreprinderi?nivel=sectiune&de_la=2020&pana_la=2023
{
    "data": {
        "tip": "intreprinderi",
        "versiune_caen": "rev2",
        "unitate": "numar",
        "de_la": 2020,
        "pana_la": 2023,
        "filtre": {
            "nivel": "sectiune",
            "nivel_teritoriu": "tara"
        },
        "ani": [
            2020,
            2021,
            2022,
            2023
        ],
        "serii": [
            {
                "caen": "A",
                "nivel": "sectiune",
                "denumire": "A  Agricultura, silvicultura si pescuit",
                "teritoriu": "TOTAL",
                "nivel_teritoriu": "tara",
                "marime": "total",
                "ani_publicati": 4,
                "valori": {
                    "2020": "19995",
                    "2021": "20580",
                    "2022": "20706",
                    "2023": "21552"
                }
            }
        ],
        "identitati": {
            "identitate": "clasa de mărime `total` = suma celor patru clase (0-9, 10-49, 50-249, 250+)",
            "nota_identitate": "Măsurat pe toată proiecţia, identitatea se închide în 168.512 din 168.551 de celule verificabile. Cele 39 de abateri sunt de cel mult 7 unităţi, aproape toate în 2003 pe unităţi locale Rev.1, şi cad în ambele direcţii — semnătura unei erori de publicare, nu a suprimării statistice.",
            "nota_marimi": "Aici sunt PATRU componente, nu cinci ca la /financiar/v1/intreprinderi/indicatori: banda de mijloc e comasată în `10-49`. Cifrele celor două rute nu se pun cap la cap pe clase de mărime.",
            "nota_total": "Totalul pe activităţi (`caen=total`) e publicat separat de fiecare tabel al sursei, câte unul pe nivel CAEN. Măsurat pe toată seria, cifrele coincid în 51 din 53 de combinaţii an × tip × clasificare; unde coincid le dăm o singură serie, cu `niveluri_sursa`. Excepţiile: în 2001 subsecţiunea dă 318.370 întreprinderi faţă de 320.929 la celelalte niveluri, iar în 1999 secţiunea diferă cu o unitate.",
            "verificari": 72,
            "inchise": 72,
            "abatere_maxima": "0"
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — întreprinderi şi unităţi locale active (TEMPO, familia INT101).",
        "acoperire": {
            "de_la": 2008,
            "pana_la": 2024
        },
        "serii_returnate": 19,
        "nota_tip": "O întreprindere e unitatea juridică, o unitate locală e sediul în care ea lucrează; o întreprindere poate avea mai multe unităţi locale. Cifrele celor două nu se adună.",
        "nota_geografie": "Nivelul cerut are date pe teritorii. Fără `teritoriu` sau `nivel_teritoriu` se întoarce doar ţara.",
        "nota_marimi": "Aici sunt PATRU componente, nu cinci ca la /financiar/v1/intreprinderi/indicatori: banda de mijloc e comasată în `10-49`. Cifrele celor două rute nu se pun cap la cap pe clase de mărime.",
        "nota_total": "Totalul pe activităţi (`caen=total`) e publicat separat de fiecare tabel al sursei, câte unul pe nivel CAEN. Măsurat pe toată seria, cifrele coincid în 51 din 53 de combinaţii an × tip × clasificare; unde coincid le dăm o singură serie, cu `niveluri_sursa`. Excepţiile: în 2001 subsecţiunea dă 318.370 întreprinderi faţă de 320.929 la celelalte niveluri, iar în 1999 secţiunea diferă cu o unitate.",
        "nota_versiune": "Rev.1 acoperă 1997–2008 şi are subsecţiuni; Rev.2 acoperă 2008–2024 şi nu are. Seriile nu se leagă cap la cap.",
        "nota_identitate": "Verificat: totalul pe clase de mărime e suma celor patru componente, 72 din 72 verificări în acest răspuns.",
        "nota_fereastra": "Fereastra e 30 ani pentru o singură activitate într-un singur teritoriu şi 5 ani când răspunsul acoperă o listă."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404caen_nepublicatNici codul, nici părinţii lui nu sunt publicaţi în serie; detalii.disponibile dă cheile. grupare_nepublicata — gruparea nu e în serie; răspunsul dă lista.
422caen_inexistentCodul din caen nu există în nicio revizie CAEN; e o valoare de FILTRU greşită, deci 422, nu 404. nivel_invalid — subsecţiunea cerută pe Rev.2, unde nivelul nu există. geografie_indisponibila — teritoriu cerut sub nivelul de secţiune pe tip=intreprinderi. caen_invalid — forma codului nu e validă. interval_prea_lung — peste 30 de ani pentru o singură activitate într-un singur teritoriu, ori peste 5 când răspunsul acoperă o listă. caen şi grupare trimise împreună, caen_versiune fără caen, ori un cod fără forma CAEN. nivel_peste_caen — nivel e deasupra codului din caen.
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": "caen_inexistent",
        "mesaj": "Codul din caen nu există în nicio revizie CAEN; e o valoare de FILTRU greşită, deci 422, nu 404. nivel_invalid — subsecţiunea cerută pe Rev.2, unde nivelul nu există. geografie_indisponibila — teritoriu cerut sub nivelul de secţiune pe tip=intreprinderi. caen_invalid — forma codului nu e validă. interval_prea_lung — peste 30 de ani pentru o singură activitate într-un singur teritoriu, ori peste 5 când răspunsul acoperă o listă. caen şi grupare trimise împreună, caen_versiune fără caen, ori un cod fără forma CAEN. nivel_peste_caen — nivel e deasupra codului din caen.",
        "detalii": {
            "tip": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}