oneapi
Sign in
Financiar v1 / Inflatie

Employees by form of ownership

Average number, the actual figure at year end, net earnings and gross earnings — by form of ownership, employee category and sex, across 68 NACE Rev. 2 activities, annually since 2000.

This is the „what kind of company" dimension that /financiar/v1/salariati does not have.

⚠️ Earnings are averages and are not additive — neither across forms of ownership nor across sexes. Measured, the identities would come out 0 of 2,967 and 0 of 3,629 respectively. Their series carry este_medie, and the identities are run only on the count measures.

⚠️ categorie is not a partition: it has only total and muncitori, and manual workers are a subset.

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

Query parameters

NameTypeDescriptionAccepted values
de_laoptional integer | null Optional, a year, from 2000. 2000 – 2100
pana_laoptional integer | null Optional, a year. 2000 – 2100
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, castig_net, castig_brut. numar_mediuefectivcastig_netcastig_brut
forma_proprietatelistoptional text Optional: total, privata, publica. totalprivatapublica
categorielistoptional text Optional: total, muncitori. Not a partition. totalmuncitori
sexlistoptional text Optional: total, masculin, feminin. totalmasculinfeminin
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 published section, division or range (CAEN Rev.2); what was used is in meta.caen. e.g. K
gruparelistoptional text Optional, separated by commas: the source aggregates that are not CAEN codes — total or the merged division ranges (02-03, 38-39, 59-60, 62-63). Not sent together with caen. e.g. 02-03e.g. 38-39e.g. 59-60

How it behaves

  • Average number of employees, year-end headcount, net earnings and gross earnings — 47,084 values, annually from 2000 to 2024, from TEMPO matrices FOM104G, FOM105G, FOM106F and FOM107F. Four indicators × 3 forms of ownership × 2 employee categories × 3 sexes × 68 NACE Rev.2 activities.
  • This is the "what kind of firm" dimension that /financiar/v1/salariati does not have — there the breakdown is by activity, county and sex.
  • ⚠️ castig_net and castig_brut are AVERAGES and do not add up — neither across ownership forms nor across sexes. Measured: the identities yield 0 of 2,967 and 0 of 3,629 on earnings, while on the count measures they close entirely. The earnings series carry este_medie, and the route does not run the identities on them. It is the same rule as at /financiar/v1/salariati.
  • ✅ On the count measures: total = privata + publica — 2,967/2,967 for the average number and 2,959/2,959 for the headcount; total = masculin + feminin — 3,629/3,629 and 3,829/3,829.
  • ⚠️ categorie is NOT a partition. It holds only total and muncitori, and manual workers are a subset, not half the total. There is no identity there and the route does not invent one.
  • For the monthly headcount, without ownership: /financiar/v1/salariati/lunar.
  • 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 private sector's share of employment in a branch, over a long series.
  • The earnings gap between private and public, within the same activity.
  • The earnings gap between women and men, by form of ownership.
  • The share of manual workers in a branch's headcount.

Response structure

FieldTypeDescription
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.ani array Years for which values exist.
data.serii[].indicator string The statistical indicator the value refers to.
data.serii[].unitate string numar persoane for headcounts, lei for earnings.
data.serii[].este_medie boolean Present on the two earnings measures: they are averages and add up on no dimension.
data.serii[].forma_proprietate string
data.serii[].categorie string Category in the source classification.
data.serii[].sex string Sex of the people the value refers to.
data.serii[].caen string The CAEN (NACE) code of the activity, in the series revision.
data.serii[].forma_cod string
data.serii[].activitate string The economic activity the value refers to.
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_medii string How to read the averages in the response and when the median says something else.
data.identitati.nota_categorii string Why there is no identity on employee categories.
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_medii string How to read the averages in the response and when the median says something else.
meta.nota_categorii string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_judete 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. 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[].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/proprietate?indicator=castig_net&de_la=2020&pana_la=2023
{
    "data": {
        "de_la": 2020,
        "pana_la": 2023,
        "filtre": {
            "indicator": [
                "castig_net"
            ]
        },
        "ani": [
            2020,
            2021,
            2022,
            2023
        ],
        "serii": [
            {
                "indicator": "castig_net",
                "unitate": "lei",
                "este_medie": true,
                "forma_proprietate": "privata",
                "categorie": "total",
                "sex": "feminin",
                "caen": "01",
                "forma_cod": "diviziune",
                "activitate": "01 Agricultura, vanatoare si servicii anexe",
                "valori": {
                    "2020": "2170",
                    "2021": "2305",
                    "2022": "3020",
                    "2023": "3480"
                }
            }
        ],
        "identitati": {
            "toleranta": "0.5",
            "nota_medii": "⚠️ `castig_net` şi `castig_brut` sunt MEDII şi nu se adună: nici pe forme de proprietate, nici pe sexe. Măsurat, identităţile ar ieşi 0 din 2.967, respectiv 0 din 3.629. Seriile lor poartă `este_medie`.",
            "nota_categorii": "⚠️ `categorie` nu e o partiţie: are doar `total` şi `muncitori`, iar muncitorii sunt un subset. Nu există identitate acolo."
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — salariaţii şi câştigurile pe categorii, forme de proprietate şi activităţi (TEMPO, matricile FOM104G, FOM105G, FOM106F şi FOM107F).",
        "acoperire": {
            "de_la": 2000,
            "pana_la": 2024
        },
        "serii_returnate": 583,
        "nota_medii": "⚠️ `castig_net` şi `castig_brut` sunt MEDII şi nu se adună: nici pe forme de proprietate, nici pe sexe. Măsurat, identităţile ar ieşi 0 din 2.967, respectiv 0 din 3.629. Seriile lor poartă `este_medie`.",
        "nota_categorii": "⚠️ `categorie` nu e o partiţie: are doar `total` şi `muncitori`, iar muncitorii sunt un subset. Nu există identitate acolo.",
        "nota_judete": "Aceiaşi salariaţi pe judeţe şi sexe, fără forme de proprietate: /financiar/v1/salariati."
    }
}

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, form, category, sex, code or year outside the expected shape. 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, form, category, sex, code or year outside the expected shape. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.",
        "detalii": {
            "de_la": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}