oneapi
Sign in
Financiar v1 / Inflatie

Employees by county and form of ownership

The average number and the year-end figure, across 11 forms of ownership × 56 territories, annually from 1990 to 2024 — the longest employee series in the whole module.

⚠️ The 11 forms look like a flat list, but they are a three-level tree. The naive reading „public + private" comes out 0 of 2,579. Measured: total = public + private + mixed + cooperative + associative + wholly foreign; publica = wholly state-owned + public interest; mixta = majority state-owned + majority private. The nivel_forma field separates them.

⚠️ The forms appear in stages: total from 1990, most from 1993, wholly foreign from 1995, wholly state-owned and public interest only from 1998. Every series carries valabil_de_la.

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

Query parameters

NameTypeDescriptionAccepted values
nivel_teritoriuoptional string | null Optional: tara, macroregiune, regiune, judet. taramacroregiuneregiunejudet
de_laoptional integer | null Optional, a year, from 1990. 1990 – 2100
pana_laoptional integer | null Optional, a year. 1990 – 2100
indicatorlistoptional text Optional: numar_mediu, efectiv. numar_mediuefectiv
forma_proprietatelistoptional text Optional, slugs comma-separated. Check nivel_forma before adding them up. totalpublicaprivatamixtacooperatistaobsteascaintegral_strainaintegral_de_statpublica_interesmajoritar_de_statmajoritar_privata
categorielistoptional text Optional: total, muncitori. totalmuncitori
teritoriulistoptional text Optional, short codes comma-separated, the same as at /financiar/v1/pib/judete. e.g. alba

How it behaves

  • The average number of employees and the year-end headcount, by form of ownership and territory — 53,916 values, annually from 1990 to 2024, from TEMPO matrices FOM104B and FOM105A. 35 years: the longest employee series in the whole module.
  • ⚠️ The eleven forms of ownership look like a flat list, but they are a three-level tree — and we found that out by measuring, not by reading. The naive "public + private" reading yields 0 of 2,579. The real structure, verified: total = public + private + mixed + cooperative + communal + wholly foreign (2,131/2,131 on the average number, 2,125/2,125 on the headcount); publica = wholly state-owned + publicly owned of national and local interest (2,035/2,035); mixta = majority state-owned + majority private (2,441/2,441 and 2,442/2,442). The nivel_forma field separates them into total, grupa and subgrupa.
  • ✅ The total territory = the sum of the 42 counties: 495/495 and 497/497.
  • ⚠️ The forms appear in stages, as the classification changed: total from 1990, most from 1993, integral_straina from 1995, and integral_de_stat and publica_interes only from 1998. Each series carries valabil_de_la and valabil_pana_la — measured figures, not assumptions.
  • ⚠️ categorie is not a partition: it holds only total and muncitori, and manual workers are a subset.
  • ⚠️ 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.
  • The same ownership forms but by activity instead of county, and only from 2000: /financiar/v1/salariati/proprietate.

What it is for

  • The collapse of state-sector employment after 1990, county by county.
  • The share of foreign capital in a county's employment.
  • Comparing counties on the same form of ownership, over a long series.

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.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[].forma_proprietate string
data.serii[].denumire_forma string
data.serii[].nivel_forma string total, grupa (the six that make up the total) or subgrupa (the four beneath publica and mixta).
data.serii[].valabil_de_la integer The first year the source publishes the form — measured from the data.
data.serii[].valabil_pana_la integer The last year it publishes it.
data.serii[].categorie string Category in the source classification.
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.nota_arbore string Why the "public + private" reading does not work.
data.identitati.ierarhie.total.identitate string The identity being checked — which sum must equal which total.
data.identitati.ierarhie.total.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.ierarhie.total.verificari integer How many combinations were checked.
data.identitati.ierarhie.total.inchise integer How many checks closed within tolerance.
data.identitati.ierarhie.publica.identitate string The identity being checked — which sum must equal which total.
data.identitati.ierarhie.publica.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.ierarhie.publica.verificari integer How many combinations were checked.
data.identitati.ierarhie.publica.inchise integer How many checks closed within tolerance.
data.identitati.ierarhie.mixta.identitate string The identity being checked — which sum must equal which total.
data.identitati.ierarhie.mixta.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.ierarhie.mixta.verificari integer How many combinations were checked.
data.identitati.ierarhie.mixta.inchise integer How many checks closed within tolerance.
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_arbore string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_bucuresti string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_activitati string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.fara_date data is null and this says why. The projection over the INS data is empty. The code is not in the series. 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.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/salariati/judete?nivel_teritoriu=judet&de_la=2023&pana_la=2023
{
    "data": {
        "unitate": "numar persoane",
        "de_la": 2023,
        "pana_la": 2023,
        "filtre": {
            "nivel_teritoriu": "judet"
        },
        "ani": [
            2023
        ],
        "serii": [
            {
                "indicator": "efectiv",
                "unitate": "numar persoane",
                "forma_proprietate": "cooperatista",
                "denumire_forma": "Proprietate cooperatista",
                "nivel_forma": "grupa",
                "valabil_de_la": 1992,
                "valabil_pana_la": 2024,
                "categorie": "total",
                "teritoriu": "alba",
                "denumire_teritoriu": "Alba",
                "nivel_teritoriu": "judet",
                "valori": {
                    "2023": "193"
                }
            }
        ],
        "identitati": {
            "toleranta": "1",
            "nota_arbore": "Cele unsprezece forme de proprietate nu sunt o listă plată, ci un arbore pe trei niveluri. Citirea naivă „public + privat\" iese 0 din 2.579; măsurat corect, se închide integral.",
            "ierarhie": {
                "total": {
                    "identitate": "`total` = `publica` + `privata` + `mixta` + `cooperatista` + `obsteasca` + `integral_straina`",
                    "nota": "Verificat pe toată proiecţia: 2.131/2.131 la numărul mediu şi 2.125/2.125 la efectiv. ⚠️ Cele patru subgrupe nu intră aici — sunt sub `publica` şi `mixta`.",
                    "verificari": 84,
                    "inchise": 84
                },
                "publica": {
                    "identitate": "`publica` = `integral_de_stat` + `publica_interes`",
                    "nota": "Verificat pe toată proiecţia: 2.035/2.035. Amândouă componentele apar abia din 1998.",
                    "verificari": 84,
                    "inchise": 84
                },
                "mixta": {
                    "identitate": "`mixta` = `majoritar_de_stat` + `majoritar_privata`",
                    "nota": "Verificat pe toată proiecţia: 2.441/2.441 şi 2.442/2.442. `majoritar de stat` şi `majoritar privată` sunt sub proprietatea mixtă, nu sub publică şi privată.",
                    "verificari": 84,
                    "inchise": 84
                }
            }
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — salariaţii pe categorii, forme de proprietate şi judeţe (TEMPO, matricile FOM104B şi FOM105A).",
        "acoperire": {
            "de_la": 1990,
            "pana_la": 2024
        },
        "serii_returnate": 924,
        "nota_arbore": "Cele unsprezece forme de proprietate nu sunt o listă plată, ci un arbore pe trei niveluri. Citirea naivă „public + privat\" iese 0 din 2.579; măsurat corect, se închide integral.",
        "nota_bucuresti": "⚠️ Bucureştiul are două coduri: `mun_bucuresti_incl_sai` (1990-1995, include Sectorul Agricol Ilfov) şi `municipiul_bucuresti` (din 1996, când `ilfov` devine judeţ separat). Nu e acelaşi teritoriu, deci seriile nu se lipesc; pentru continuitate pe 1990-2024 foloseşte regiunea `bucuresti_ilfov`.",
        "nota_activitati": "Aceleaşi forme de proprietate, dar pe activităţi în loc de judeţe: /financiar/v1/salariati/proprietate."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatMissing or invalid token.
403feature_indisponibilfinanciar.indici is not in the current plan.
422raspuns_prea_mareMore than 20,000 cells. Plus an indicator, form, category, territory or year outside the expected shape.
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": "raspuns_prea_mare",
        "mesaj": "More than 20,000 cells. Plus an indicator, form, category, territory or year outside the expected shape.",
        "detalii": {
            "nivel_teritoriu": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}