oneapi
Sign in
Financiar v1 / Inflatie

Employees by NACE Rev.1 section

The average number and the actual figure, across 19 NACE Rev. 1 rows × 56 territories, annually 1990–2008 — the only employee-by-activity series that goes down to county level before 2008.

⚠️ The nomenclature mixes levels: 12 lettered sections, four unlettered subsections (the halves of sections A and I), the partial aggregate industrie and the remainder celelalte. Only those 16 plus the remainder make up the total; industrie does NOT enter it.

⚠️ The male figure is not published — the source gives only total and feminin. We derive it by subtraction, with derivat: true, and if the subtraction comes out negative we return null, not zero.

GET
https://oneapi.ro/api/financiar/v1/salariati/istoric

Query parameters

NameTypeDescriptionAccepted values
nivel_teritoriuoptional string | null Optional: tara, macroregiune, regiune, judet. taramacroregiuneregiunejudet
de_laoptional integer | null Optional, a year, from 1990. 1990 – 2008
pana_laoptional integer | null Optional, a year, up to 2008. 1990 – 2008
caen_versiuneoptional string | null Optional: the revision of the caen code — 1, 2 or 3 — when its form is ambiguous (4932 means different things in Rev.2 and Rev.3). Without it, the code is looked up in the series revision first. 123
indicatorlistoptional text Optional: numar_mediu, efectiv. Only the headcount has the sex dimension. numar_mediuefectiv
caenlistoptional text Optional, codes separated by commas: any CAEN code — section (C), division (62), group, class (6201) — from any revision. It is brought to the CAEN Rev.1 section (the source writes it in lower case, c) or the division the source names (01 = agricultura, 02 = silvicultura, 64 = posta; 60–63 fall under transport); what was used is in meta.caen. e.g. 01,D
gruparelistoptional text Optional, separated by commas: the source aggregates that are not CAEN codes — total, industrie (C+D+E, a partial aggregate), celelalte, transport (divisions 60–63). Not sent together with caen. e.g. total
categorielistoptional text Optional: total, muncitori. totalmuncitori
teritoriulistoptional text Optional, short codes comma-separated. e.g. cluj

How it behaves

  • The average number and the headcount of employees, by NACE Rev.1 section and territory — 102,739 values, annually from 1990 to 2008, from TEMPO matrices FOM104A and FOM105B. The only employee-by-activity series that reaches county level before 2008.
  • ⚠️ The nomenclature mixes levels in plain sight. The 19 rows are: 12 lettered sections (b…n), four unlettered subsections — agricultura and silvicultura (the two halves of section A), transport and posta (the halves of section I) — plus the partial aggregate industrie, the residual celelalte, and the total. The nivel_sectiune field separates them.
  • ✅ total = the 12 lettered sections + the 4 subsections + celelalte: 1,471 of 1,471. ⚠️ industrie does NOT enter the sum — it is a partial aggregate: industrie = c + d + e, verified 1,891 of 1,891.
  • ✅ The total territory = the sum of the 42 counties: 667/667 on the average number and 1,236/1,236 on the headcount.
  • ⚠️ Male employment is not published. For the headcount the source gives only total and feminin. We derive it by subtraction and mark it derivat: true; where the subtraction turns negative — which cannot be real — we return null, not zero, and report how many cells came out that way. It is the same rule as at /financiar/v1/populatie-ocupata.
  • ⚠️ The average number (FOM104A) has no sex dimension at all; only the headcount does.
  • ⚠️ Bucharest has two codes, because the territory changed in 1996. mun_bucuresti_incl_sai (1990-1995) also covers the Ilfov Agricultural Sector; from 1996 municipiul_bucuresti and the county ilfov appear separately. We do not splice them — it is not the same territory; for a continuous series over the whole period use the bucuresti_ilfov region.
  • For the NACE Rev.2 series, from 2000 onward: /financiar/v1/salariati and /financiar/v1/salariati/proprietate. The nomenclatures do not join.
  • Activity is requested the same way across the platform. caen takes any CAEN code, at any level and from any revision, and the route brings it to what the series publishes — climbing to a parent or translating it through the official INS correspondence; meta.caen states the requested code, the one used and whether it was climbed or converted. grupare is for the source aggregates that are not CAEN codes.

What it is for

  • The deindustrialisation of the 1990s, by county and section.
  • The share of women in a section, before 2008.
  • The employment structure of a county during the transition.

Response structure

FieldTypeDescription
data.unitate string The unit of the values. Read it before plotting or adding them up.
data.de_la integer Start of the interval the response covers.
data.pana_la integer End of the interval the response covers, inclusive.
data.filtre.indicator array The statistical indicator the value refers to.
data.filtre.sectiune array Section of the classification — the broadest level.
data.filtre.categorie array Category in the source classification.
data.filtre.nivel_teritoriu string Territorial level of the value (country, region, county, locality).
data.ani array Years for which values exist.
data.serii[].indicator string The statistical indicator the value refers to.
data.serii[].unitate string Unit of measure of the values. Read it before plotting or summing them.
data.serii[].categorie string Category in the source classification.
data.serii[].sectiune string Section of the classification — the broadest level.
data.serii[].denumire_sectiune string
data.serii[].nivel_sectiune string total, sectiune, subsectiune, agregat_partial or rest. Only the first three plus the residual make up the total.
data.serii[].teritoriu string The territory the value refers to.
data.serii[].denumire_teritoriu string The exact source wording, as written in its own matrix.
data.serii[].nivel_teritoriu string Territorial level of the value (country, region, county, locality).
data.serii[].valori object The values of the series, by period.
data.identitati.toleranta string How much deviation is accepted before the identity counts as unclosed — the source rounding, not an error.
data.identitati.teritorii.verificari integer How many combinations were checked.
data.identitati.teritorii.inchise integer How many checks closed within tolerance.
data.identitati.teritorii.identitate string The identity being checked — which sum must equal which total.
data.identitati.teritorii.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.acoperire.de_la integer The first period we have data for.
meta.acoperire.pana_la integer The last period we have data for.
meta.serii_returnate integer How many series were actually returned, after filters and the cell ceiling.
meta.nota_niveluri string What each level means and which of them are comparable.
meta.nota_rev2 string A note on how to read the response: a caveat, a convention or a limit of the source.
data.serii[].derivat Present on the male series, computed by subtraction.
data.identitati.masculin_derivat object How many series were derived and how many cells came out negative.
meta.fara_date data is null and this says why. The projection over the INS data is empty. The code is not in the nomenclature. As on the other series.
meta.fara_date_cod The short, STABLE word for the reason, for clients that branch on it in code: fara_date is prose and may be rephrased, this is not.
meta.caen[] object[] How the caen parameter was understood: the requested code, the revision it was read in and the code the route used. For a list of codes, one object per code.
meta.caen[].cerut string The CAEN code sent, normalised (upper case, no dots).
meta.caen[].versiune_cerut string The revision the code sent was read in: the one in caen_versiune, otherwise the first it exists in.
meta.caen[].folosit string The code the series used: the requested one, its first published parent or the source aggregate that contains it (02-03).
meta.caen[].cod string The CAEN code the key used stands for, when the series names its activities differently (agricultura = 01) or the key is an aggregate (62-63).
meta.caen[].nivel string The level of the code used — on company routes, of the requested code: sectiune, subsectiune, diviziune, grupa, clasa or agregat.
meta.caen[].denumire string The name of the code, from the CAEN nomenclature.
meta.caen[].versiune_serie string The CAEN revision the series is published in.
meta.caen[].conversie boolean true when the code was translated from one revision to another through the official INS correspondence.
meta.caen[].urcat boolean true when the series does not publish the requested code and a higher level was used.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/salariati/istoric?nivel_teritoriu=tara&indicator=numar_mediu&categorie=total&grupare=total&de_la=2000&pana_la=2008
{
    "data": {
        "unitate": "numar persoane",
        "de_la": 2000,
        "pana_la": 2008,
        "filtre": {
            "indicator": [
                "numar_mediu"
            ],
            "sectiune": [
                "total"
            ],
            "categorie": [
                "total"
            ],
            "nivel_teritoriu": "tara"
        },
        "ani": [
            2000,
            2001,
            2002,
            2003,
            2004,
            2005,
            2006,
            2007,
            2008
        ],
        "serii": [
            {
                "indicator": "numar_mediu",
                "unitate": "numar persoane",
                "categorie": "total",
                "sectiune": "total",
                "denumire_sectiune": "Total",
                "nivel_sectiune": "total",
                "teritoriu": "total",
                "denumire_teritoriu": "TOTAL",
                "nivel_teritoriu": "tara",
                "valori": {
                    "2000": "4623026",
                    "2001": "4618988",
                    "2002": "4567820",
                    "2003": "4590876",
                    "2004": "4468837",
                    "2005": "4558910",
                    "2006": "4667254",
                    "2007": "4885319",
                    "2008": "5046317"
                }
            }
        ],
        "identitati": {
            "toleranta": "1",
            "teritorii": {
                "verificari": 9,
                "inchise": 9,
                "identitate": "teritoriul `total` = suma celor 42 de judeţe",
                "nota": "Verificat pe toată proiecţia: 667/667 la numărul mediu şi 1.236/1.236 la efectiv."
            }
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — salariaţii pe categorii, activităţi CAEN Rev.1 şi judeţe (TEMPO, matricile FOM104A şi FOM105B).",
        "acoperire": {
            "de_la": 1990,
            "pana_la": 2008
        },
        "serii_returnate": 1,
        "nota_niveluri": "`industrie` e agregat parţial peste `c`, `d` şi `e`; nu intră în total. `celelalte` e restul, nu o secţiune.",
        "nota_rev2": "Pentru seria CAEN Rev.2, din 2000: /financiar/v1/salariati şi /financiar/v1/salariati/proprietate."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatMissing or invalid token.
403feature_indisponibilfinanciar.indici is not in the current plan.
404caen_nepublicatNeither the code nor its parents are published in the series; detalii.disponibile lists the keys. grupare_nepublicata — the grouping is not in the series; the response lists them.
422caen_inexistentThe code in caen exists in no CAEN revision; it is a bad FILTER value, hence 422, not 404. raspuns_prea_mare — more than 20,000 cells. Plus an indicator, section, category, territory or year outside the expected shape; the series ends in 2008. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.
429cota_depasitaThe plan's monthly quota has been exceeded (see Retry-After).

All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.

{
    "eroare": {
        "cod": "caen_inexistent",
        "mesaj": "The code in caen exists in no CAEN revision; it is a bad FILTER value, hence 422, not 404. raspuns_prea_mare — more than 20,000 cells. Plus an indicator, section, category, territory or year outside the expected shape; the series ends in 2008. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.",
        "detalii": {
            "nivel_teritoriu": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}