oneapi
Sign in
Financiar v1 / Inflatie

Employees by locality

The average number of employees in every commune and town — 3,182 localities, annually since 1990. It is the only employment series that goes below county level.

The count only. NACE activity, sex and earnings exist only at county level, in /financiar/v1/salariati.

✅ The hierarchy closes exactly, verified across the whole projection with zero deviation: the county total is the sum of the localities within it — 1,428 of 1,428 county × year pairs — and the national total is the sum of the counties, 35 of 35. Requested for one county, the route also returns its total row, so that the identity can be run on the response.

Every series comes with the unit's population and with the ratio salariati_la_mia_de_locuitori.
⚠️ The population is from a single reference year, given in populatie_an, not from the series year — so the ratio is a good approximation for ranking, not an official rate.

One locality does not link to the nomenclature: code 70049, the former commune of Cernele, absorbed into the city of Craiova.

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

Query parameters

NameTypeDescriptionAccepted values
sirutaoptional integer | null Optional, the SIRUTA code of a unit. With it, the series can be requested over the full history. 1000 – 999999
judetoptional string | null Optional, the county name as written by the source. Returns its localities plus the total row. max 32 car.
totalurioptional boolean | null Optional, 1 returns county and country totals instead of localities. e.g. 1
de_laoptional integer | null Optional, a year, from 1990. 1990 – 2100
pana_laoptional integer | null Optional, a year. 1990 – 2100

How it behaves

  • The average number of employees in each commune and town — 3,182 localities, annually from 1990 to 2024. 106,606 values from TEMPO matrix FOM104D. It is the only employment series that goes below county level.
  • The count only. CAEN activity, sex and earnings exist solely at county level, in /financiar/v1/salariati.
  • This shows where people work, not where they live. In Cluj county, the city of Cluj-Napoca holds 195,025 of the county's 261,239 employees — three quarters — and 680 employees per thousand inhabitants, because it draws commuters. Floreşti, the fastest-growing commune, has only 110 per thousand: people sleep there and work elsewhere.
  • ✅ The hierarchy closes exactly, verified across the whole projection with zero deviation: the county total is the sum of its localities — 1,428 of 1,428 county × year pairs — and the country total is the sum of the counties, 35 of 35. Requested for a county, the route also returns that county's total row, so the identity can run on the response.
  • Each series carries the unit's population and a computed salariati_la_mia_de_locuitori ratio. ⚠️ The population is from a single reference year, given in populatie_an, not from the year of the series — so the ratio is a good approximation for ranking, not an official rate.
  • A single locality does not link to the register: code 70049, the former commune of Cernele, absorbed into Craiova. The other 3,181 carry the canonical name, type, urban/rural status and population.

What it is for

  • Where the jobs in a county are, commune by commune.
  • The ratio of employees to inhabitants — which places are work centres and which are dormitories.
  • The employment path of a single locality across its full history, requested by siruta.

Response structure

FieldTypeDescription
data.masura string The measure reported — what the value actually counts or sums.
data.denumire string The name, exactly as the source publishes it.
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.siruta integer
data.ani array Years for which values exist.
data.serii[].nivel string localitate, judet or tara — the levels do not add together.
data.serii[].judet string The county the value refers to.
data.serii[].cod_siruta integer SIRUTA code of the territorial unit.
data.serii[].nume string The name, exactly as the source publishes it.
data.serii[].tip string
data.serii[].mediu string Area of residence (urban or rural).
data.serii[].populatie integer
data.serii[].populatie_an integer
data.serii[].eticheta_sursa string
data.serii[].unitate string Unit of measure of the values. Read it before plotting or summing them.
data.serii[].ultima_valoare string The last published value in the window — the criterion the series are sorted by.
data.serii[].salariati_la_mia_de_locuitori string Computed from the last value and the reference population; approximate, not official.
data.serii[].ani_publicati integer Years the source actually published for this series.
data.serii[].valori object The values of the series, by period.
data.identitati.identitate string The identity being checked — which sum must equal which total.
data.identitati.nota string A note on how to read the data — a pitfall, a convention or a limit of the source.
data.identitati.verificari integer How many combinations were checked.
data.identitati.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_masura string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_nomenclator string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_populatie string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_identitate string How the identity above is checked and what it means when it does not close.
meta.nota_ordonare string A note on how to read the response: a caveat, a convention or a limit of the source.
data.unitati_fara_nume How many localities do not link to the register — in practice, only Cernele.
meta.fara_date string data is null and this says why. The projection over the INS data is empty. The code or the name does not appear. As on the other series.
meta.fara_date_cod string 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/localitati?siruta=54975
{
    "data": {
        "masura": "numar_mediu",
        "denumire": "Numărul mediu al salariaţilor",
        "unitate": "persoane",
        "de_la": 1991,
        "pana_la": 2024,
        "filtre": {
            "siruta": 54975
        },
        "ani": [
            1991,
            1992,
            1993,
            1994,
            1995,
            1996,
            1997,
            1998,
            1999,
            2000,
            2001,
            2002,
            2003,
            2004,
            2005,
            2006,
            2007,
            2008,
            2009,
            2010,
            2011,
            2012,
            2013,
            2014,
            2015,
            2016,
            2017,
            2018,
            2019,
            2020,
            2021,
            2022,
            2023,
            2024
        ],
        "serii": [
            {
                "nivel": "localitate",
                "judet": "Cluj",
                "cod_siruta": 54975,
                "nume": "Cluj-Napoca",
                "tip": "municipiu",
                "mediu": "urban",
                "populatie": 286598,
                "populatie_an": 2021,
                "eticheta_sursa": "54975 MUNICIPIUL CLUJ-NAPOCA",
                "unitate": "persoane",
                "ultima_valoare": "195025",
                "salariati_la_mia_de_locuitori": "680.4",
                "ani_publicati": 34,
                "valori": {
                    "1991": "169566",
                    "1992": "146929",
                    "1993": "146639",
                    "1994": "141752",
                    "1995": "136068",
                    "1996": "141282",
                    "1997": "133554",
                    "1998": "127715",
                    "1999": "115704",
                    "2000": "113063",
                    "2001": "115802",
                    "2002": "116071",
                    "2003": "115668",
                    "2004": "116686",
                    "2005": "116398",
                    "2006": "118845",
                    "2007": "133004",
                    "2008": "132173",
                    "2009": "128785",
                    "2010": "123510",
                    "2011": "128037",
                    "2012": "133695",
                    "2013": "136823",
                    "2014": "149078",
                    "2015": "151777",
                    "2016": "161610",
                    "2017": "168718",
                    "2018": "171637",
                    "2019": "181226",
                    "2020": "176996",
                    "2021": "181883",
                    "2022": "186456",
                    "2023": "190486",
                    "2024": "195025"
                }
            }
        ],
        "identitati": {
            "identitate": "totalul judeţului = suma localităţilor din el",
            "nota": "Verificată pe toată proiecţia cu abatere zero: 1.428 din 1.428 de perechi judeţ × an, plus 35 din 35 de perechi ţară = suma judeţelor.",
            "verificari": 0,
            "inchise": 0
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — numărul mediu al salariaţilor pe judeţe şi localităţi (TEMPO, matricea FOM104D).",
        "acoperire": {
            "de_la": 1990,
            "pana_la": 2024
        },
        "serii_returnate": 1,
        "nota_masura": "Sub nivelul de judeţ, sursa publică doar numărul mediu de salariaţi. Activitatea CAEN, sexul şi câştigul salarial există în /financiar/v1/salariati.",
        "nota_nomenclator": "Denumirea, tipul, mediul şi populaţia vin din nomenclatorul propriu de unităţi administrativ-teritoriale, legat prin cod SIRUTA. Se leagă 3.181 din 3.182 de localităţi; excepţia e codul 70049, fosta comună Cernele.",
        "nota_populatie": "Populaţia e dintr-un singur an de referinţă (`populatie_an`), nu din anul seriei — deci `salariati_la_mia_de_locuitori` e o aproximaţie pentru clasament, nu o rată oficială.",
        "nota_identitate": "Verificată pe toată proiecţia cu abatere zero: 1.428 din 1.428 de perechi judeţ × an, plus 35 din 35 de perechi ţară = suma judeţelor.",
        "nota_ordonare": "Seriile vin ordonate descrescător după ultima valoare publicată, deci primele sunt localităţile cu cei mai mulţi salariaţi."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareA year out of range, or interval_prea_lung — beyond 40 years for a locality, a county or the totals, and beyond 5 years when the response spans all 3,182 localities.
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": "validare",
        "mesaj": "A year out of range, or interval_prea_lung — beyond 40 years for a locality, a county or the totals, and beyond 5 years when the response spans all 3,182 localities.",
        "detalii": {
            "siruta": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}