oneapi
Autentificare
Financiar v1 / Inflatie

Demografia întreprinderilor

Câte firme se nasc, câte trăiesc şi câte mor — cinci evenimente din viaţa unei firme, pe 19
secţiuni CAEN Rev.2, anual din 2008: active, nou create, cu primul angajat,
desfiinţate şi fără niciun angajat.

⚠️ Cele două defalcări sunt paralele, nu ierarhice: aceeaşi mărime, tăiată o dată după forma
juridică (societăţi comerciale / PFA / alte forme) şi o dată după clasa de mărime (0 / 1-4 / 5-9 /
10+ salariaţi). Se cere una singură; nu se încrucişează şi nu se adună între ele.

⚠️ Universul „cu cel puţin un angajat" e altceva, nu o submulţime comodă: acolo naşterea firmei
* devine „a primit primul angajat" şi moartea devine „nu mai are niciun angajat". Acoperă 2021-2023.

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

Parametri de interogare

NumeTipDescriereValori acceptate
universopțional string | null Opţional: toate (implicit) ori cu_angajati, acesta din urmă doar 2021-2023. toatecu_angajati
defalcareopțional string | null Opţional: forma_juridica (implicit) ori clasa_marime. Se cere una singură. forma_juridicaclasa_marime
de_laopțional integer | null Opţional, an, din 2008. 2008 – 2100
pana_laopțional integer | null Opţional, an. 2008 – 2100
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
evenimentlistăopțional text Opţional: active, nou_create, primul_angajat, desfiintate, fara_angajati. Ultimele două există numai pe universul cu_angajati. activenou_createprimul_angajatdesfiintatefara_angajati
categorielistăopțional text Opţional, sluguri din defalcarea aleasă, separate prin virgulă, plus total. ex. alte_forme
indicatorlistăopțional text Opţional: numar_intreprinderi, salariati, persoane_ocupate. numar_intreprinderisalariatipersoane_ocupate
caenlistăopțional text Opţional, coduri separate prin virgulă: orice cod CAEN — secţiune (C), diviziune (62), grupă, clasă (6201) — din orice revizie. Se aduce la secţiunea lui (CAEN Rev.2); ce s-a folosit e în meta.caen. ex. 62,C
gruparelistăopțional text Opţional, separate prin virgulă: agregatele sursei care nu sunt coduri CAEN — total. Nu se trimite împreună cu caen. ex. total

Cum se comportă

  • Cinci evenimente din viaţa unei firme, pe 19 secţiuni CAEN Rev.2 — 29.754 de valori, anual din 2008, din familiile TEMPO INT110, INT111 şi INT113: active, nou create, cu primul angajat, desfiinţate şi fără niciun angajat. Trei indicatori pentru fiecare: numărul de firme, numărul mediu de salariaţi şi numărul mediu de persoane ocupate.
  • E singura capacitate din modul care măsoară naşterea şi moartea firmelor. /financiar/v1/intreprinderi numără câte există; asta spune câte apar şi câte dispar în fiecare an.
  • ⚠️ Cele două defalcări sunt paralele, nu ierarhice. Aceeaşi mărime e tăiată o dată după forma juridică — societăţi comerciale, persoane fizice autorizate, alte forme — şi o dată după clasa de mărime — 0, 1-4, 5-9, 10+ salariaţi. Se cere una singură prin defalcare; nu se încrucişează şi nu se adună între ele.
  • ✅ total = suma celor trei forme juridice: 969 din 969, pe fiecare dintre cele trei evenimente cu serie lungă. ✅ Pe clase de mărime, 969/969 la nou create şi la desfiinţate. ✅ Secţiunea total = suma celor 18: 204/204 pe forme juridice.
  • ⚠️ Universul „cu cel puţin un angajat" e altceva decât o submulţime comodă. Acolo naşterea firmei devine primul_angajat — a primit primul salariat — iar moartea devine fara_angajati — nu mai are niciunul. Sunt evenimente diferite, cu nume diferite, şi acoperă doar 2021-2023. O cerere care le încrucişează greşit primeşte eveniment_in_alt_univers cu explicaţia, nu un răspuns gol.
  • ⚠️ Anul 2022 e inconsecvent la sursă, la întreprinderile active, pe cei doi indicatori de personal — şi în două feluri deodată. Suma claselor de mărime nu dă totalul secţiunii: la industria prelucrătoare, pe salariaţi, totalul secţiunii e 732.495, iar suma claselor dă 1.089.681. Iar suma celor 18 secţiuni nu dă totalul pe economie: lipsesc 1.118.908 persoane ocupate şi 1.074.409 salariaţi. numar_intreprinderi e în regulă în 2022, iar toţi ceilalţi ani se închid exact, pe toate nivelurile. Nu corectăm nimic — anul şi indicatorii apar în identitati.anomalie.
  • 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

  • Rata de creare şi cea de desfiinţare a firmelor, pe ramuri.
  • Câte firme trec pragul primului angajat într-un an.
  • Ponderea persoanelor fizice autorizate în populaţia de firme a unei ramuri.
  • Numărul net de firme apărute: nou create minus desfiinţate.

Structura răspunsului

CâmpTipDescriere
data.univers string Universul statistic la care se referă valorile — populaţia din care s-a măsurat.
data.defalcare string Defalcarea aplicată valorilor.
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 array Filtrele aplicate efectiv, aşa cum le-a înţeles ruta — util când o valoare a fost normalizată.
data.ani array Anii pentru care există valori.
data.serii[].eveniment string
data.serii[].univers string toate ori cu_angajati — universuri diferite, cu evenimente diferite.
data.serii[].defalcare string Care dintre cele două tăieturi paralele e cea din răspuns.
data.serii[].categorie string Categoria din clasificarea sursei.
data.serii[].denumire_categorie string Denumirea categoriei, aşa cum o publică sursa.
data.serii[].indicator string Indicatorul statistic la care se referă valoarea.
data.serii[].sectiune string Secţiunea din clasificare — nivelul cel mai larg.
data.serii[].denumire_sectiune string
data.serii[].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.serii[].valori object Valorile seriei, pe perioade.
data.identitati.toleranta string Cât se acceptă ca abatere înainte ca identitatea să fie considerată neînchisă — rotunjirea sursei, nu o eroare.
data.identitati.nota_paralele string
data.identitati.defalcare.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.defalcare.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.defalcare.verificari integer Câte combinaţii au fost verificate.
data.identitati.defalcare.inchise integer Câte verificări s-au închis în toleranţă.
data.identitati.sectiuni.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.sectiuni.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.sectiuni.verificari integer Câte combinaţii au fost verificate.
data.identitati.sectiuni.inchise integer Câte verificări s-au închis în toleranţă.
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_paralele 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_supravietuire string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
data.identitati.anomalie Anul şi indicatorii la care sursa se contrazice, cu cifrele exacte.
meta.fara_date data e null, iar aici stă motivul. Proiecţia peste datele INS e goală pe universul cerut. Combinaţia n-are serii. 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[].cod string Codul CAEN pe care îl reprezintă cheia folosită, când seria îşi numeşte activităţile altfel (agricultura = 01) ori când cheia e un agregat (62-63).
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/demografie?per_pagina=3
{
    "data": {
        "univers": "toate",
        "defalcare": "forma_juridica",
        "unitate": "numar",
        "de_la": 2008,
        "pana_la": 2024,
        "filtre": [],
        "ani": [
            2008,
            2009,
            2010,
            2011,
            2012,
            2013,
            2014,
            2015,
            2016,
            2017,
            2018,
            2019,
            2020,
            2021,
            2022,
            2023,
            2024
        ],
        "serii": [
            {
                "eveniment": "active",
                "univers": "toate",
                "defalcare": "forma_juridica",
                "categorie": "alte_forme",
                "denumire_categorie": "Alte forme juridice",
                "indicator": "numar_intreprinderi",
                "sectiune": "a",
                "denumire_sectiune": "Agricultura, silvicultura si pescuit",
                "unitate": "numar",
                "valori": {
                    "2008": "929",
                    "2009": "892",
                    "2010": "853",
                    "2011": "754",
                    "2012": "781",
                    "2013": "767",
                    "2014": "718",
                    "2015": "699",
                    "2016": "691",
                    "2017": "699",
                    "2018": "726",
                    "2019": "688",
                    "2020": "694",
                    "2021": "742",
                    "2022": "812",
                    "2023": "888",
                    "2024": "924"
                }
            }
        ],
        "identitati": {
            "toleranta": "0.5",
            "nota_paralele": "Cele două defalcări sunt paralele, nu ierarhice: aceeaşi mărime, tăiată o dată după forma juridică şi o dată după clasa de mărime. Nu se încrucişează şi nu se adună între ele.",
            "defalcare": {
                "identitate": "`total` = `societati_comerciale` + `persoane_fizice` + `alte_forme`",
                "nota": "Verificat pe toată proiecţia: 969 din 969 pe fiecare dintre cele trei evenimente lungi.",
                "verificari": 2907,
                "inchise": 2907
            },
            "sectiuni": {
                "identitate": "secţiunea `total` = suma celor optsprezece secţiuni",
                "nota": "Verificat pe toată proiecţia: 204/204 pe forme juridice şi 253/255 pe clase de mărime — cele două rateuri sunt cei doi indicatori de personal în 2022, vezi `anomalie`.",
                "verificari": 612,
                "inchise": 612
            }
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — demografia întreprinderilor (TEMPO, familiile INT110, INT111 şi INT113).",
        "acoperire": {
            "de_la": 2008,
            "pana_la": 2024
        },
        "serii_returnate": 684,
        "nota_paralele": "Cele două defalcări sunt paralele, nu ierarhice: aceeaşi mărime, tăiată o dată după forma juridică şi o dată după clasa de mărime. Nu se încrucişează şi nu se adună între ele.",
        "nota_identitate": "Verificat pe acest răspuns: totalul e suma categoriilor în 2907 din 2907 celule.",
        "nota_supravietuire": "Câte dintre firmele nou create rezistă, pe cohorte: /financiar/v1/intreprinderi/supravietuire."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă sau invalid.
403feature_indisponibilfinanciar.indici nu e în planul curent.
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. raspuns_prea_mare — peste 20.000 de celule. Plus eveniment, univers, defalcare, categorie, indicator, secţiune ori an în afara formei aşteptate. caen şi grupare trimise împreună, caen_versiune fără caen, ori un cod fără forma CAEN. eveniment_in_alt_univers — evenimentul cerut nu există pe universul cerut.
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. raspuns_prea_mare — peste 20.000 de celule. Plus eveniment, univers, defalcare, categorie, indicator, secţiune ori an în afara formei aşteptate. caen şi grupare trimise împreună, caen_versiune fără caen, ori un cod fără forma CAEN. eveniment_in_alt_univers — evenimentul cerut nu există pe universul cerut.",
        "detalii": {
            "univers": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}