Locations v1 / Proximitate & zone
Delivery zone
⭐ A ready-made zone: one administrative unit (uat=cod_siruta) plus its neighbours (with include_vecini=1) and a coverage summary (unit count + total population).
GET
https://oneapi.ro/api/locations/v1/zona-livrare
Query parameters
NameTypeDescriptionAccepted values
uatrequired
integer
The cod_siruta of the central administrative unit.
e.g. 54975e.g. 179132
include_vecinioptional
boolean | null
Include the neighbouring units.
e.g. 1
How it behaves
- A ready-made zone: one administrative unit plus its neighbours (with
include_vecini=1) and a coverage summary.
What it is for
- Defining a shop's delivery zone in a single call (central unit + neighbours).
- Showing a coverage summary on a dashboard (number of units and total population).
- Sizing the market when onboarding a new partner, from the unit their office sits in.
Response structure
FieldTypeDescription
data.centru.cod_siruta
integer
The SIRUTA code (the entity's public key).
data.centru.nume
string
The name of the entity.
data.centru.tip
string
Entity type (raw code; the full names are at /nomenclatoare/tipuri).
data.centru.judet.cod
string
The county's registration prefix.
data.centru.judet.nume
string
The name of the county.
data.centru.populatie
integer
Population (census).
data.zona[].cod_siruta
integer
The SIRUTA code (the entity's public key).
data.zona[].nume
string
The name of the entity.
data.zona[].tip
string
Entity type (raw code; the full names are at /nomenclatoare/tipuri).
data.zona[].judet.cod
string
The county's registration prefix.
data.zona[].judet.nume
string
The name of the county.
data.zona[].populatie
integer
Population (census).
data.rezumat.nr_uat
integer
How many units fall in the zone (the centre plus its neighbours).
data.rezumat.populatie_totala
integer
The summed population of the units in the zone.
meta.actualizat
object
Prospețimea datelor pe domenii (dată ISO 8601).
Response examples
GEThttps://oneapi.ro/api/locations/v1/zona-livrare?uat=54975
{
"data": {
"centru": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca",
"tip": "municipiu",
"judet": {
"cod": "CJ",
"nume": "Cluj"
},
"populatie": 286598
},
"zona": [
{
"cod_siruta": 54975,
"nume": "Cluj-Napoca",
"tip": "municipiu",
"judet": {
"cod": "CJ",
"nume": "Cluj"
},
"populatie": 286598
}
],
"rezumat": {
"nr_uat": 1,
"populatie_totala": 286598
}
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00"
}
}
}
GEThttps://oneapi.ro/api/locations/v1/zona-livrare?uat=54975&include_vecini=1
{
"data": {
"centru": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca",
"tip": "municipiu",
"judet": {
"cod": "CJ",
"nume": "Cluj"
},
"populatie": 286598
},
"zona": [
{
"cod_siruta": 54975,
"nume": "Cluj-Napoca",
"tip": "municipiu",
"judet": {
"cod": "CJ",
"nume": "Cluj"
},
"populatie": 286598
}
],
"rezumat": {
"nr_uat": 8,
"populatie_totala": 384987
}
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00"
}
}
}
GEThttps://oneapi.ro/api/locations/v1/zona-livrare?uat=179132
{
"data": {
"centru": {
"cod_siruta": 179132,
"nume": "București",
"tip": "municipiu",
"judet": {
"cod": "B",
"nume": "București"
},
"populatie": 1716961
},
"zona": [
{
"cod_siruta": 179132,
"nume": "București",
"tip": "municipiu",
"judet": {
"cod": "B",
"nume": "București"
},
"populatie": 1716961
}
],
"rezumat": {
"nr_uat": 1,
"populatie_totala": 1716961
}
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+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 central administrative unit does not exist. |
| 422 | validare | A parameter failed validation (uat, include_vecini); 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 (uat, include_vecini); detalii says which and why.",
"detalii": {
"uat": [
"The value sent does not satisfy the parameter rule."
]
}
}
}