oneapi
Sign in
Financiar v1 / Inflatie

Employees by occupation and activity

The average number and gross earnings realised in the month of October, across ISCO-08 major groups × 68 NACE activities × sexes. ⚠️ The series has only two years: 2011 and 2012.

It is the only place in the module where occupation is crossed with activity.

GET
https://oneapi.ro/api/financiar/v1/salariati/ocupatii-activitati

Query parameters

NameTypeDescriptionAccepted values
de_laoptional integer | null Optional: 2011 or 2012. 2011 – 2012
pana_laoptional integer | null Optional: 2011 or 2012. 2011 – 2012
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
masuralistoptional text Optional: numar_mediu, salariu_brut. numar_mediusalariu_brut
sexlistoptional text Optional: total, masculin, feminin. totalmasculinfeminin
ocupatielistoptional text Optional, ISCO-08 slugs comma-separated, plus total. totalconducatorispecialistitehnicienifunctionariserviciiagriculturamuncitori_calificatioperatoriocupatii_elementare
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. 85
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

  • The average number of employees and the average gross earnings realised in October, by ISCO-08 major groups × 68 NACE Rev.2 activities × sex — 7,568 values, from TEMPO matrix FOM118G.
  • ⚠️ The series holds only two years: 2011 and 2012. The source stopped publishing it afterwards. It is a niche series, but the only place in the module where occupation is crossed with activity — elsewhere occupation appears either alone (/financiar/v1/castiguri/structura) or with age (/financiar/v1/salariati/varste).
  • ⚠️ salariu_brut is an average and does not add up; the identities run only on numar_mediu.
  • ✅ total = masculin + feminin: 1,227 of 1,227. ✅ The occupation total = the sum of the nine major groups, with an actual maximum gap of 13 persons (mean 4.9) — small cells suppressed by the source, which is why the bound is relative.
  • The activity codes are the same as at /financiar/v1/castig-salarial and /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

  • What an occupation earns across branches — an engineer in industry versus in IT.
  • The occupational structure of an activity, in 2011-2012.

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 array The filters actually applied, as the route understood them — useful when a value was normalised.
data.ani array Years for which values exist.
data.serii[].masura string The measure reported — what the value actually counts or sums.
data.serii[].unitate string Unit of measure of the values. Read it before plotting or summing them.
data.serii[].sex string Sex of the people the value refers to.
data.serii[].ocupatie string The major ISCO-08 group, 1-9, or total.
data.serii[].denumire_ocupatie string
data.serii[].caen string The CAEN (NACE) code of the activity, in the series revision.
data.serii[].forma_cod string What kind of activity row it is — the same nomenclature as the monthly earnings route.
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_relativa string
data.identitati.nota_medii string How to read the averages in the response and when the median says something else.
data.identitati.ocupatie.identitate string The identity being checked — which sum must equal which total.
data.identitati.ocupatie.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.ocupatie.verificari integer How many combinations were checked.
data.identitati.ocupatie.inchise integer How many checks closed within tolerance.
data.identitati.sex.identitate string The identity being checked — which sum must equal which total.
data.identitati.sex.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.sex.verificari integer How many combinations were checked.
data.identitati.sex.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_scurta string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_medii string How to read the averages in the response and when the median says something else.
meta.nota_varste string A note on how to read the response: a caveat, a convention or a limit of the source.
data.serii[].este_medie Present on the gross wage: it does not add up.
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/ocupatii-activitati?per_pagina=3
{
    "data": {
        "de_la": 2011,
        "pana_la": 2012,
        "filtre": [],
        "ani": [
            2011,
            2012
        ],
        "serii": [
            {
                "masura": "numar_mediu",
                "unitate": "Numar persoane",
                "sex": "feminin",
                "ocupatie": "agricultura",
                "denumire_ocupatie": "Lucratori calificati in agricultura, silvicultura si pescuit",
                "caen": "01",
                "forma_cod": "diviziune",
                "activitate": "01 Agricultura, vanatoare si servicii anexe",
                "valori": {
                    "2011": "2187",
                    "2012": "2176"
                }
            }
        ],
        "identitati": {
            "toleranta_relativa": "0.0001",
            "nota_medii": "⚠️ `salariu_brut` e medie şi nu se adună; identităţile se rulează doar pe `numar_mediu`.",
            "ocupatie": {
                "identitate": "`total` = suma celor nouă grupe majore ISCO-08",
                "nota": "Abaterea reală maximă e 13 persoane, media 4,9 — celule mici suprimate de sursă.",
                "verificari": 158,
                "inchise": 158
            },
            "sex": {
                "identitate": "`total` = `masculin` + `feminin`",
                "nota": "Verificat pe toată proiecţia: 1.227 din 1.227.",
                "verificari": 1227,
                "inchise": 1227
            }
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — numărul mediu al salariaţilor şi salariul brut realizat în octombrie, pe ocupaţii şi activităţi (TEMPO, matricea FOM118G).",
        "acoperire": {
            "de_la": 2011,
            "pana_la": 2012
        },
        "serii_returnate": 3806,
        "nota_scurta": "Seria are doar 2011 şi 2012: sursa n-a mai publicat-o după aceea.",
        "nota_medii": "⚠️ `salariu_brut` e medie şi nu se adună; identităţile se rulează doar pe `numar_mediu`.",
        "nota_varste": "Aceleaşi grupe ISCO-08, dar pe vârste şi în serie lungă: /financiar/v1/salariati/varste."
    }
}

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. A measure, sex, occupation, code or year outside the expected shape; the series holds only 2011 and 2012. 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. A measure, sex, occupation, code or year outside the expected shape; the series holds only 2011 and 2012. 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."
            ]
        }
    }
}