Locations v1 / Profil & comparație
Profile of a county
⭐ Everything we know about a county in a single call: demographics, companies (total, VAT, density), unemployment at the latest month, building permits at the latest year and the 19 INS indicators. It replaces five separate calls.
GET
https://oneapi.ro/api/locations/v1/judete/{cod}/profil
Path parameters
NameTypeDescriptionExample
codrequired
string
County code, two letters (e.g.
CJ). Bucharest is B.
Query parameters
This route accepts no query parameters.
How it behaves
- ⭐ Composes what
/judete/{cod}/statistici,/firme/sumar,/somaj,/autorizatiiand/statistici/insreturn separately. There is no new data here — the gain is the number of round trips. - Each section keeps its own period: the census is from 2021, unemployment is at the latest published month, building permits at the latest year, and every INS indicator has its own year. They are not forced to a common denominator, because that would mean claiming a simultaneity that does not exist.
- A section with no data comes back as
nullrather than being absent — so the response shape is the same for every county. firme.densitate= companies per km², derived from the county's area.
What it is for
- Rendering a complete county page with a single call instead of five.
- Feeding a regional dashboard without assembling the calls by hand.
- Exporting a county record for a report, with every quantity dated.
Response structure
FieldTypeDescription
data.nivel
string
The entity level (
judet).
data.cod
string
The code requested.
data.nume
string
The name of the county.
data.populatie
integer | null
The census population.
data.suprafata_kmp
number | null
Area, in km².
data.densitate
number | null
Inhabitants per km².
data.nr_uat
integer | null
How many administrative units the county has.
data.nr_localitati
integer | null
How many active localities it has.
data.firme.total
integer
The total number of companies registered in the entity.
data.firme.platitori_tva
integer
How many of them are VAT-registered.
data.firme.densitate
number | null
Companies per km²;
null where there is no area.
data.somaj.numar
number | null
The number of registered unemployed at the latest published month.
data.somaj.pondere
number | null
The share of labour resources, as a percentage.
data.somaj.numitor
string | null
What the share is measured against — this is not the unemployment rate.
data.somaj.perioada.an
integer
The year of the latest published month.
data.somaj.perioada.luna
integer
The month (1–12).
data.autorizatii.an
integer
The latest year with published permits.
data.autorizatii.categorii[].categorie
string
The construction category.
data.autorizatii.categorii[].numar
number | null
How many permits were issued.
data.autorizatii.categorii[].mp_utili
number | null
The usable floor area permitted, in m².
data.statistici_ins[].indicator
string
The INS indicator key.
data.statistici_ins[].tema
string
The theme it belongs to.
data.statistici_ins[].nume
string
The name of the indicator.
data.statistici_ins[].valoare
number
The latest published value.
data.statistici_ins[].um
string | null
The unit of measure.
data.statistici_ins[].perioada
string
The reference period of the value.
data.statistici_ins[].matrice
string
The source TEMPO matrix.
meta.actualizat
object
Prospețimea datelor pe domenii (dată ISO 8601).
Response examples
GEThttps://oneapi.ro/api/locations/v1/judete/CJ/profil
{
"data": {
"nivel": "judet",
"cod": "CJ",
"nume": "Cluj",
"populatie": 679141,
"suprafata_kmp": 6666.8818,
"densitate": 101.9,
"nr_uat": 81,
"nr_localitati": 434,
"firme": {
"total": 194068,
"platitori_tva": 26852,
"densitate": 29.11
},
"somaj": {
"numar": 5331,
"pondere": 1.2,
"numitor": "resurse de muncă",
"perioada": {
"an": 2026,
"luna": 7
}
},
"autorizatii": {
"an": 2025,
"categorii": [
{
"categorie": "administrative",
"numar": 2,
"mp_utili": 12195
}
]
},
"statistici_ins": [
{
"indicator": "populatie_domiciliu",
"tema": "demografie",
"nume": "Populația după domiciliu (1 ianuarie)",
"valoare": 747392,
"um": "Numar persoane",
"perioada": "2026-01-01",
"matrice": "POP107A"
}
]
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"populatie": "2026-08-15T16: 40: 07+03: 00"
}
}
}
GEThttps://oneapi.ro/api/locations/v1/judete/AB/profil
{
"data": {
"nivel": "judet",
"cod": "AB",
"nume": "Alba",
"populatie": 325941,
"suprafata_kmp": 6256.544,
"densitate": 52.1,
"nr_uat": 78,
"nr_localitati": 716,
"firme": {
"total": 70607,
"platitori_tva": 7392,
"densitate": 11.29
},
"somaj": {
"numar": 5997,
"pondere": 2.7,
"numitor": "resurse de muncă",
"perioada": {
"an": 2026,
"luna": 7
}
},
"autorizatii": {
"an": 2025,
"categorii": [
{
"categorie": "administrative",
"numar": 2,
"mp_utili": 562
}
]
},
"statistici_ins": [
{
"indicator": "populatie_domiciliu",
"tema": "demografie",
"nume": "Populația după domiciliu (1 ianuarie)",
"valoare": 360199,
"um": "Numar persoane",
"perioada": "2026-01-01",
"matrice": "POP107A"
}
]
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"populatie": "2026-08-15T16: 40: 07+03: 00"
}
}
}
GEThttps://oneapi.ro/api/locations/v1/judete/B/profil
{
"data": {
"nivel": "judet",
"cod": "B",
"nume": "București",
"populatie": 1716961,
"suprafata_kmp": 238.9761,
"densitate": 7184.7,
"nr_uat": 1,
"nr_localitati": 6,
"firme": {
"total": 725317,
"platitori_tva": 101907,
"densitate": 3035.1
},
"somaj": {
"numar": 5404,
"pondere": 0.4,
"numitor": "resurse de muncă",
"perioada": {
"an": 2026,
"luna": 7
}
},
"autorizatii": {
"an": 2025,
"categorii": [
{
"categorie": "administrative",
"numar": 3,
"mp_utili": 8558
}
]
},
"statistici_ins": [
{
"indicator": "populatie_domiciliu",
"tema": "demografie",
"nume": "Populația după domiciliu (1 ianuarie)",
"valoare": 2108049,
"um": "Numar persoane",
"perioada": "2026-01-01",
"matrice": "POP107A"
}
]
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"populatie": "2026-08-15T16: 40: 07+03: 00"
}
}
}
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 | negasit | The county does not exist. |
| 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": "negasit",
"mesaj": "The county does not exist."
}
}