Locations v1 / Ierarhie & dropdown-uri
Localities of a county (shortcut)
⭐ Every active locality in a county directly, skipping the unit level. Each item carries its unit context. The county is identified by its registration prefix. Paginated, with a tip filter.
GET
https://oneapi.ro/api/locations/v1/judete/{judet}/localitati
Path parameters
NameTypeDescriptionExample
judetrequired
string
County code, two letters (e.g.
CJ).
Query parameters
NameTypeDescriptionAccepted values
tipoptional
string
Filters on the locality type.
e.g. sate.g. localitate_componenta
How it behaves
- Skips the administrative-unit level. Every row carries its unit, so you can tell homonymous villages apart.
What it is for
- Filling a single „locality" dropdown per county, skipping the unit level.
- Territorial coverage for a courier or field agent by county: listing every locality to be served.
- Export or reporting by county: the full list of localities, each with its parent unit attached.
Response structure
FieldTypeDescription
data[].cod_siruta
integer
The SIRUTA code (the entity's public key).
data[].nume
string
The name of the entity.
data[].tip
string
Entity type (raw code; the full names are at /nomenclatoare/tipuri).
data[].populatie
integer | null
Population (census).
data[].lat
number | null
Latitude (WGS 84).
data[].lng
number | null
Longitude (WGS 84).
data[].nr_firme
integer
How many companies were ever registered here (equal to
total from the summary route).
data[].nr_firme_functiune
integer
How many exist NOW. ⚠️ The figure to put next to the name:
nr_firme also includes struck-off companies, 48.8% of the total.
data[].uat
object
The administrative unit the locality belongs to.
data[].uat.cod_siruta
integer
The SIRUTA code of the administrative unit — chainable to /uat/{cod}.
data[].uat.nume
string
The name of the administrative unit.
meta.paginare.pagina
integer
Pagina curentă.
meta.paginare.per_pagina
integer
Rezultate pe pagină.
meta.paginare.total
integer
Total rezultate.
meta.paginare.pagini
integer
Număr de pagini.
meta.actualizat
object
Prospețimea datelor pe domenii (dată ISO 8601).
Response examples
GEThttps://oneapi.ro/api/locations/v1/judete/CJ/localitati
{
"data": [
{
"cod_siruta": 54984,
"nume": "Cluj-Napoca",
"tip": "resedinta_municipiu",
"populatie": 286598,
"lat": 46.78,
"lng": 23.559444444444,
"nr_firme": 114118,
"nr_firme_functiune": 50565,
"uat": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca"
}
}
],
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00",
"populatie": "2026-08-15T16: 40: 07+03: 00"
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 434,
"pagini": 22
}
}
}
GEThttps://oneapi.ro/api/locations/v1/judete/CJ/localitati?tip=sat
{
"data": [
{
"cod_siruta": 57715,
"nume": "Florești",
"tip": "sat",
"populatie": 50307,
"lat": 46.7475,
"lng": 23.490833333333,
"nr_firme": 13015,
"nr_firme_functiune": 8129,
"uat": {
"cod_siruta": 57706,
"nume": "Florești"
}
}
],
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00",
"populatie": "2026-08-15T16: 40: 07+03: 00"
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 420,
"pagini": 21
}
}
}
GEThttps://oneapi.ro/api/locations/v1/judete/CJ/localitati?tip=localitate_componenta
{
"data": [
{
"cod_siruta": 55026,
"nume": "Ocna Dejului",
"tip": "localitate_componenta",
"populatie": 2064,
"lat": 47.115465,
"lng": 23.859676,
"nr_firme": 8,
"nr_firme_functiune": 3,
"uat": {
"cod_siruta": 55008,
"nume": "Dej"
}
}
],
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00",
"populatie": "2026-08-15T16: 40: 07+03: 00"
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 8,
"pagini": 1
}
}
}
GEThttps://oneapi.ro/api/locations/v1/judete/IS/localitati
{
"data": [
{
"cod_siruta": 95079,
"nume": "Iași",
"tip": "resedinta_municipiu",
"populatie": 271692,
"lat": 47.162222222222,
"lng": 27.588888888889,
"nr_firme": 87606,
"nr_firme_functiune": 34135,
"uat": {
"cod_siruta": 95060,
"nume": "Iași"
}
}
],
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00",
"populatie": "2026-08-15T16: 40: 07+03: 00"
},
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 429,
"pagini": 22
}
}
}
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. |
| 422 | validare | A parameter failed validation (tip); detalii says which and why. |
| 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": "A parameter failed validation (tip); detalii says which and why.",
"detalii": {
"judet": [
"The value sent does not satisfy the parameter rule."
]
}
}
}