Civilian employed population
How many people actually work in each activity and county — annually since 1992, by sex and across 55 territories. 76,665 values, in thousands of persons.
It is not the same thing as employees. The employed population includes the self-employed, employers and unpaid family workers. In 2024: 7,742.7 thousand people employed against 5,453.2 thousand employees from /financiar/v1/salariati — a difference of almost 2.3 million, which is the non-employee economy, largely subsistence agriculture.
⚠️ The male figure is not published by the source. INS gives only the total and the female figure; sex=masculin returns the difference, flagged with sursa: derivat and derivat_din: total - feminin. Verified: on Rev. 2 the subtraction does not come out negative in any of the 19,423 cells. On Rev. 1, however, one case appears — Tulcea, 2000, „other activities": total 0.2 thousand, female 0.7 thousand. There the route returns empty, not a negative number, and reports the case in identitati.masculin_negativ.
⚠️ The two classifications do not join up. Rev. 1 covers 1992–2008, Rev. 2 covers 2008–2024, with different sections. versiune picks one; the route never splices the series.
⚠️ Rev. 1 mixes two nomenclatures: the NACE sections and a few aggregates written out in words („Industry", „Transport and storage", „Other activities"). They appear at the grupa level and do not enter the partition of sections — otherwise Total and Transport would collide on the letter T.
⚠️ industrie is a partial aggregate in Rev. 2, not a section: the sum of sections B, C, D and E, verified 1,692 of 1,693.
✅ total = the sum of the 19 sections A–S closes in 1,679 of 1,688 cells, with a maximum deviation of 80 thousand persons. The source publishes 19 of the 21 sections — T and U are missing.
Query parameters
rev2 (default, 2008-2024) or rev1 (1992-2008).
rev1rev2
total, agregat, sectiune, grupa.
totalagregatsectiunegrupa
tara (default), macroregiune, regiune, judet.
taramacroregiuneregiunejudet
C), division (62), group, class (6201) — from any revision. It is brought to its section or, in Rev.1, the divisions the source names (01, 02, 64; 60–63 fall under transport_si_depozitare); what was used is in meta.caen.
e.g. 6201
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
total, industrie, celelalte_activitati_ale_economiei_nationale, transport_si_depozitare. Not sent together with caen.
e.g. industriee.g. total
total (default), masculin (derived), feminin.
totalmasculinfeminin
How it behaves
- The civilian employed population by activity, county and sex — annually from 1992 to 2024, across 55 territories. 76,665 values from TEMPO matrices
FOM103AandFOM103D, in thousands of persons. - This is not the same as employees, and the gap is large. The employed population includes the self-employed, employers and unpaid family workers. In 2024: 7,742.7 thousand employed against 5,453.2 thousand employees from
/financiar/v1/salariati— almost 2.3 million people who work without being employees, largely in subsistence agriculture. - ⚠️ The male figure is not published by the source. INS gives only
totalandfeminin;sex=masculinreturns the difference, markedsursa: derivatandderivat_din: total - feminin. Verified: on Rev.2 the subtraction never comes out negative across all 19,423 cells. - ⚠️ On Rev.1 one case would go negative: Tulcea, year 2000, "other activities" — total 0.2 thousand, female 0.7 thousand. The source publishes more women than the total. There the route returns
null, not a negative number, and reports the case inmasculin_negativ. It is the same anomaly as in registered unemployment. - ⚠️ The two classifications do not join. Rev.1 covers 1992-2008, Rev.2 covers 2008-2024, with different sections.
versiunepicks one; the route never splices the series. - ⚠️ Rev.1 mixes two nomenclatures: the 14 CAEN Rev.1 sections and five aggregates spelled out — "Industry", "Transport and storage", "Post and telecommunications", "Agriculture, hunting", "Forestry". They sit at the
grupalevel and do not belong to the section partition. The code is extracted only from names starting with a letter and a space: otherwise "Total" and "Transport" would collide onT, and "Other activities" would fall onto sectionC. - ⚠️
industrieis a partial aggregate in Rev.2, not a section: the sum of sections B, C, D and E — verified 1,692 of 1,693, with a maximum gap of 10 thousand persons. - ✅
total= the sum of the 19 sections A-S closes in 1,679 of 1,688 cells, with a maximum gap of 80 thousand. The source publishes 19 of 21 sections — T (household activities) and U (extraterritorial organisations) are missing, marginal in volume. - Activity is requested the same way across the platform.
caentakes 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.caenstates the requested code, the one used and whether it was climbed or converted.grupareis for the source aggregates that are not CAEN codes.
What it is for
- The real size of a county's labour force, beyond employment contracts.
- The weight of the non-employee economy, by comparison with
/financiar/v1/salariati. - The structure of employment by activity, in a long series from 1992.
Response structure
mii persoane, to one decimal, as the source publishes it.
publicat or derivat — the male series is the only derived one.
total - feminin.
null, not a false number.
data is null and this says why. The projection over the INS data is empty. The name does not appear; the full list comes back. The window lies outside the chosen classification. It overlaps but holds no values.
fara_date is prose and may be rephrased, this is not.
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.
caen_versiune, otherwise the first it exists in.
02-03).
sectiune, subsectiune, diviziune, grupa, clasa or agregat.
true when the code was translated from one revision to another through the official INS correspondence.
true when the series does not publish the requested code and a higher level was used.
Response examples
{
"data": {
"versiune_caen": "rev2",
"unitate": "mii persoane",
"de_la": 2008,
"pana_la": 2024,
"filtre": {
"sex": [
"total"
],
"nivel_teritoriu": "tara"
},
"ani": [
2008,
2009,
2010,
2011,
2012,
2013,
2014,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024
],
"serii": [
{
"teritoriu": "TOTAL",
"nivel_teritoriu": "tara",
"caen": "industrie",
"nivel": "agregat",
"denumire": "INDUSTRIE",
"sex": "total",
"sursa": "publicat",
"unitate": "mii persoane",
"ani_publicati": 17,
"valori": {
"2008": "1981.5",
"2009": "1773.6",
"2010": "1733.3",
"2011": "1753.8",
"2012": "1765.3",
"2013": "1777.6",
"2014": "1781.8",
"2015": "1872.3",
"2016": "1957",
"2017": "1966.8",
"2018": "1946.7",
"2019": "1896.5",
"2020": "1886.6",
"2021": "1838.9",
"2022": "1838.1",
"2023": "1768.5",
"2024": "1689.2"
}
}
],
"identitati": {
"nota_sexe": "Sursa publică doar totalul şi feminin; masculinul e derivat prin scădere şi poartă `sursa: derivat`. Verificat pe toată proiecţia: diferenţa nu e negativă în niciuna dintre cele 19.423 de celule ale Rev.2, dar apare o dată în Rev.1 — Tulcea, 2000, „celelalte activităţi\": total 0,2 mii, feminin 0,7 mii.",
"nota_sectiuni": "Măsurat pe Rev.2: `total` = suma celor 19 secţiuni A-S se închide în 1.679 din 1.688 de celule, cu abatere maximă de 80 de mii de persoane. Sursa publică 19 secţiuni din 21 — lipsesc T (gospodării) şi U (organizaţii extrateritoriale).",
"nota_industrie": "Agregatul `industrie` e suma secţiunilor B+C+D+E — verificat 1.692 din 1.693 — şi nu intră în partiţia secţiunilor."
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — populaţia ocupată civilă (TEMPO, matricile FOM103A şi FOM103D).",
"acoperire": {
"de_la": 2008,
"pana_la": 2024
},
"serii_returnate": 21,
"nota_concept": "Populaţia ocupată include lucrătorii pe cont propriu, patronii şi lucrătorii familiali neremuneraţi — de aceea e sensibil mai mare decât numărul de salariaţi din /financiar/v1/salariati.",
"nota_sexe": "Sursa publică doar `total` şi `feminin`. Cere `sex=masculin` pentru seria derivată prin scădere.",
"nota_versiune": "Rev.1 acoperă 1992-2008, Rev.2 acoperă 2008-2024, cu secţiuni diferite. Seriile nu se leagă cap la cap.",
"nota_sectiuni": "Măsurat pe Rev.2: `total` = suma celor 19 secţiuni A-S se închide în 1.679 din 1.688 de celule, cu abatere maximă de 80 de mii de persoane. Sursa publică 19 secţiuni din 21 — lipsesc T (gospodării) şi U (organizaţii extrateritoriale).",
"nota_industrie": "Agregatul `industrie` e suma secţiunilor B+C+D+E — verificat 1.692 din 1.693 — şi nu intră în partiţia secţiunilor."
}
}
{
"data": {
"versiune_caen": "rev2",
"unitate": "mii persoane",
"de_la": 2020,
"pana_la": 2024,
"filtre": {
"caen": "J",
"sex": [
"total"
],
"nivel_teritoriu": "tara"
},
"ani": [
2020,
2021,
2022,
2023,
2024
],
"serii": [
{
"teritoriu": "TOTAL",
"nivel_teritoriu": "tara",
"caen": "J",
"nivel": "sectiune",
"denumire": "J INFORMATII SI COMUNICATII",
"sex": "total",
"sursa": "publicat",
"unitate": "mii persoane",
"ani_publicati": 5,
"valori": {
"2020": "225.9",
"2021": "245.5",
"2022": "265.5",
"2023": "269.3",
"2024": "273.9"
}
}
],
"identitati": {
"nota_sexe": "Sursa publică doar totalul şi feminin; masculinul e derivat prin scădere şi poartă `sursa: derivat`. Verificat pe toată proiecţia: diferenţa nu e negativă în niciuna dintre cele 19.423 de celule ale Rev.2, dar apare o dată în Rev.1 — Tulcea, 2000, „celelalte activităţi\": total 0,2 mii, feminin 0,7 mii.",
"nota_sectiuni": "Măsurat pe Rev.2: `total` = suma celor 19 secţiuni A-S se închide în 1.679 din 1.688 de celule, cu abatere maximă de 80 de mii de persoane. Sursa publică 19 secţiuni din 21 — lipsesc T (gospodării) şi U (organizaţii extrateritoriale).",
"nota_industrie": "Agregatul `industrie` e suma secţiunilor B+C+D+E — verificat 1.692 din 1.693 — şi nu intră în partiţia secţiunilor."
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — populaţia ocupată civilă (TEMPO, matricile FOM103A şi FOM103D).",
"acoperire": {
"de_la": 2008,
"pana_la": 2024
},
"serii_returnate": 1,
"nota_concept": "Populaţia ocupată include lucrătorii pe cont propriu, patronii şi lucrătorii familiali neremuneraţi — de aceea e sensibil mai mare decât numărul de salariaţi din /financiar/v1/salariati.",
"nota_sexe": "Sursa publică doar `total` şi `feminin`. Cere `sex=masculin` pentru seria derivată prin scădere.",
"nota_versiune": "Rev.1 acoperă 1992-2008, Rev.2 acoperă 2008-2024, cu secţiuni diferite. Seriile nu se leagă cap la cap.",
"nota_sectiuni": "Măsurat pe Rev.2: `total` = suma celor 19 secţiuni A-S se închide în 1.679 din 1.688 de celule, cu abatere maximă de 80 de mii de persoane. Sursa publică 19 secţiuni din 21 — lipsesc T (gospodării) şi U (organizaţii extrateritoriale).",
"nota_industrie": "Agregatul `industrie` e suma secţiunilor B+C+D+E — verificat 1.692 din 1.693 — şi nu intră în partiţia secţiunilor.",
"caen": {
"cerut": "6201",
"versiune_cerut": "Rev.2",
"folosit": "J",
"nivel": "sectiune",
"denumire": "INFORMAŢII ŞI COMUNICAŢII",
"versiune_serie": "Rev.2",
"conversie": false,
"urcat": true
}
}
}
{
"data": {
"versiune_caen": "rev2",
"unitate": "mii persoane",
"de_la": 2024,
"pana_la": 2024,
"filtre": {
"sex": [
"total"
],
"nivel_teritoriu": "tara"
},
"ani": [
2024
],
"serii": [
{
"teritoriu": "TOTAL",
"nivel_teritoriu": "tara",
"caen": "industrie",
"nivel": "agregat",
"denumire": "INDUSTRIE",
"sex": "total",
"sursa": "publicat",
"unitate": "mii persoane",
"ani_publicati": 1,
"valori": {
"2024": "1689.2"
}
}
],
"identitati": {
"nota_sexe": "Sursa publică doar totalul şi feminin; masculinul e derivat prin scădere şi poartă `sursa: derivat`. Verificat pe toată proiecţia: diferenţa nu e negativă în niciuna dintre cele 19.423 de celule ale Rev.2, dar apare o dată în Rev.1 — Tulcea, 2000, „celelalte activităţi\": total 0,2 mii, feminin 0,7 mii.",
"nota_sectiuni": "Măsurat pe Rev.2: `total` = suma celor 19 secţiuni A-S se închide în 1.679 din 1.688 de celule, cu abatere maximă de 80 de mii de persoane. Sursa publică 19 secţiuni din 21 — lipsesc T (gospodării) şi U (organizaţii extrateritoriale).",
"nota_industrie": "Agregatul `industrie` e suma secţiunilor B+C+D+E — verificat 1.692 din 1.693 — şi nu intră în partiţia secţiunilor."
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — populaţia ocupată civilă (TEMPO, matricile FOM103A şi FOM103D).",
"acoperire": {
"de_la": 2008,
"pana_la": 2024
},
"serii_returnate": 21,
"nota_concept": "Populaţia ocupată include lucrătorii pe cont propriu, patronii şi lucrătorii familiali neremuneraţi — de aceea e sensibil mai mare decât numărul de salariaţi din /financiar/v1/salariati.",
"nota_sexe": "Sursa publică doar `total` şi `feminin`. Cere `sex=masculin` pentru seria derivată prin scădere.",
"nota_versiune": "Rev.1 acoperă 1992-2008, Rev.2 acoperă 2008-2024, cu secţiuni diferite. Seriile nu se leagă cap la cap.",
"nota_sectiuni": "Măsurat pe Rev.2: `total` = suma celor 19 secţiuni A-S se închide în 1.679 din 1.688 de celule, cu abatere maximă de 80 de mii de persoane. Sursa publică 19 secţiuni din 21 — lipsesc T (gospodării) şi U (organizaţii extrateritoriale).",
"nota_industrie": "Agregatul `industrie` e suma secţiunilor B+C+D+E — verificat 1.692 din 1.693 — şi nu intră în partiţia secţiunilor."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 404 | caen_nepublicat | Neither 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. |
| 422 | caen_inexistent | The code in caen exists in no CAEN revision; it is a bad FILTER value, hence 422, not 404. prea_multe_serii — beyond 1,500. interval_prea_lung — beyond 35 years on a narrow cut and beyond 10 when the response spans several. Plus a version, level or sex outside the list. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped. |
| 429 | cota_depasita | The 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. prea_multe_serii — beyond 1,500. interval_prea_lung — beyond 35 years on a narrow cut and beyond 10 when the response spans several. Plus a version, level or sex outside the list. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.",
"detalii": {
"versiune": [
"The value sent does not satisfy the parameter rule."
]
}
}
}