Locations v1 / Șomaj & construcții
Permit series of an administrative unit
The annual trend of one permit category, since 2002.
GET
https://oneapi.ro/api/locations/v1/uat/{cod}/autorizatii/serie
Path parameters
NameTypeDescriptionExample
codrequired
string
SIRUTA code of the administrative-territorial unit (e.g.
54975 for Cluj-Napoca).
Query parameters
NameTypeDescriptionAccepted values
categorieoptional
string | null
Which category.
max 40 car.
de_laoptional
integer | null
The start year.
2002 – 2100
pana_laoptional
integer | null
The end year.
2002 – 2100
How it behaves
- The annual series for a single category, since 2002. Every point carries both the count and the usable floor area.
rezidentialeby default — the only category published without interruption since 2002.- ⚠️ A series for
comert,hotelurioralteonly begins in 2009: before that, they all sat insidealte_agregat. The exact ranges are at/statistici/autorizatii/categorii.
What it is for
- A „how much has been built here over the last 20 years" chart.
- Spotting local building booms and the moments they stopped.
- Correlating with population: where building happens without the population growing.
Response structure
FieldTypeDescription
data.entitate
string
The unit's canonical name.
data.categorie
string
The category requested.
data.sursa
string
The data source.
data.serie[].an
integer
The year of the point.
data.serie[].numar
number | null
How many permits in that year.
data.serie[].mp_utili
number | null
The usable floor area permitted that year, in m².
meta.actualizat
object
Prospețimea datelor pe domenii (dată ISO 8601).
Response examples
GEThttps://oneapi.ro/api/locations/v1/uat/54975/autorizatii/serie
{
"data": {
"entitate": "Cluj-Napoca",
"categorie": "rezidentiale",
"sursa": "INS (autorizaţii de construire)",
"serie": [
{
"an": 2002,
"numar": 340,
"mp_utili": 54335
}
]
},
"meta": {
"actualizat": {
"somaj": "2026-09-14",
"autorizatii": "2026-04-01"
}
}
}
GEThttps://oneapi.ro/api/locations/v1/uat/54975/autorizatii/serie?de_la=2020-01&pana_la=2023-12
{
"data": {
"entitate": "Cluj-Napoca",
"categorie": "rezidentiale",
"sursa": "INS (autorizaţii de construire)",
"serie": [
{
"an": 2020,
"numar": 496,
"mp_utili": 185310
}
]
},
"meta": {
"actualizat": {
"somaj": "2026-09-14",
"autorizatii": "2026-04-01"
}
}
}
GEThttps://oneapi.ro/api/locations/v1/uat/155243/autorizatii/serie?de_la=2015-01&pana_la=2019-12
{
"data": {
"entitate": "Timișoara",
"categorie": "rezidentiale",
"sursa": "INS (autorizaţii de construire)",
"serie": [
{
"an": 2015,
"numar": 262,
"mp_utili": 100063
}
]
},
"meta": {
"actualizat": {
"somaj": "2026-09-14",
"autorizatii": "2026-04-01"
}
}
}
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 administrative unit or the category does not exist. |
| 422 | validare | An inverted window, or a year outside the range. |
| 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": "validare",
"mesaj": "An inverted window, or a year outside the range.",
"detalii": {
"cod": [
"The value sent does not satisfy the parameter rule."
]
}
}
}