Locations v1 / Geo & reverse
Reverse geocoding
Dintr-un punct (lat/lng) → regiunea/județul/UAT-ul care îl conțin + localitatea cea
mai apropiată. Cu ?complet=1 adaugă strada și adresa cea mai apropiată (OSM). Cu
?include=secundare adaugă cătunele/cartierele din apropierea punctului. Punct în
afara oricărui UAT → data null.
GET
https://oneapi.ro/api/locations/v1/reverse
Parametri de interogare
NumeTipDescriereValori acceptate
latobligatoriu
number
Latitudine WGS84 (-90…90).
-90 – 90
lngobligatoriu
number
Longitudine WGS84 (-180…180).
-180 – 180
completopțional
boolean | null
Cu 1, adaugă strada și adresa cea mai apropiată (OSM).
01
includelistăopțional
text
secundare = cătune/cartiere din apropierea punctului (≤3 km).
secundare
Cum se comportă
- Point-in-polygon peste limitele oficiale (ANCPI): găsește UAT-ul care conține punctul, apoi județul/regiunea și localitatea cea mai apropiată.
- Punct în afara oricărui UAT (mare, străinătate) →
data: null, cod 200.
La ce folosește
- Completarea automată a județului/localității în formular dintr-un pin de pe hartă.
- Îmbogățirea unui lead cu localizarea administrativă din coordonatele lui.
- Atribuirea teritorială (județ/UAT) a evenimentelor GPS pentru raportare.
Structura răspunsului
CâmpTipDescriere
data.regiune.cod
string
Codul NUTS-2 al regiunii.
data.regiune.nume
string
Numele regiunii.
data.judet.cod
string
Indicativul auto al județului.
data.judet.nume
string
Numele județului.
data.uat.cod_siruta
integer
Codul SIRUTA al UAT-ului — chainable spre /uat/{cod}.
data.uat.nume
string
Denumirea UAT-ului.
data.uat.tip
string
Tipul UAT-ului (municipiu/oraș/comună).
data.localitate.cod_siruta
integer
Codul SIRUTA al localității — chainable spre /localitati/{cod}.
data.localitate.nume
string
Denumirea localității.
data.localitate.tip
string
Tipul localității.
data.localitate.distanta_m
integer
Distanța până la localitatea returnată, în metri.
data.strada_apropiata
object
Doar cu complet=1 (fapt OSM).
data.strada_apropiata.id
integer
Id-ul intern al străzii — cheia pentru /strazi/{id}.
data.strada_apropiata.nume
string
Denumirea străzii.
data.strada_apropiata.tip
string
Tipul arterei (stradă, bulevard, cale…).
data.strada_apropiata.localitate.cod_siruta
integer
Codul SIRUTA al localității — chainable spre /localitati/{cod}.
data.strada_apropiata.localitate.nume
string
Denumirea localității.
data.strada_apropiata.distanta_m
integer
Distanța de la punct până la stradă, în metri.
data.adresa_apropiata
object
Doar cu complet=1 (fapt OSM).
data.adresa_apropiata.numar
string
Numărul poștal al punctului de adresă.
data.adresa_apropiata.strada.id
integer
Id-ul intern al străzii adresei.
data.adresa_apropiata.strada.nume
string
Denumirea străzii adresei.
data.adresa_apropiata.localitate.cod_siruta
integer
Codul SIRUTA al localității — chainable spre /localitati/{cod}.
data.adresa_apropiata.localitate.nume
string
Denumirea localității.
data.adresa_apropiata.cod_postal
string | null
Codul poștal al punctului de adresă.
data.adresa_apropiata.lat
number
Latitudine (WGS84).
data.adresa_apropiata.lng
number
Longitudine (WGS84).
data.adresa_apropiata.distanta_m
integer
Distanța de la punct până la adresă, în metri.
data.secundare[]
array
Cătune/cartiere lângă punct — doar cu include=secundare (distanța = până la punct).
data.secundare[].nume
string
Denumirea cătunului sau cartierului.
data.secundare[].tip
string
catun sau cartier.
data.secundare[].lat
number | null
Latitudinea locului secundar (WGS84).
data.secundare[].lng
number | null
Longitudinea locului secundar (WGS84).
data.secundare[].distanta_m
integer | null
Distanța până la localitatea-mamă, în metri.
data.secundare[].sursa
string
De unde vine locul secundar: osm sau geonames.
meta.actualizat
object
Prospețimea datelor pe domenii (dată ISO 8601).
meta.distanta
object
Cum sunt măsurate distanţele din răspuns. Apare pe orice răspuns care conţine o distanţă.
meta.distanta.metoda
string
Mereu
linie_dreapta: distanţa geodezică pe suprafaţa Pământului, nu pe drum.
meta.distanta.detaliu
string
Aceeaşi informaţie, în cuvinte.
Exemple de răspuns
GEThttps://oneapi.ro/api/locations/v1/reverse?lat=46.77&lng=23.59
{
"data": {
"regiune": {
"cod": "RO11",
"nume": "Nord-Vest"
},
"judet": {
"cod": "CJ",
"nume": "Cluj"
},
"uat": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca",
"tip": "municipiu"
},
"localitate": {
"cod_siruta": 54984,
"nume": "Cluj-Napoca",
"tip": "resedinta_municipiu",
"distanta_m": 2585
}
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00"
},
"distanta": {
"metoda": "linie_dreapta",
"detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
}
}
}
Adaugă stradă + adresă.
GEThttps://oneapi.ro/api/locations/v1/reverse?lat=46.7569&lng=23.5864&complet=1
{
"data": {
"regiune": {
"cod": "RO11",
"nume": "Nord-Vest"
},
"judet": {
"cod": "CJ",
"nume": "Cluj"
},
"uat": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca",
"tip": "municipiu"
},
"localitate": {
"cod_siruta": 54984,
"nume": "Cluj-Napoca",
"tip": "resedinta_municipiu",
"distanta_m": 3291
},
"strada_apropiata": {
"id": 16619,
"nume": "Caisului",
"tip": "strada",
"localitate": {
"cod_siruta": 54984,
"nume": "Cluj-Napoca"
},
"distanta_m": 2
},
"adresa_apropiata": {
"numar": "17",
"strada": {
"id": 14488,
"nume": "Cireșilor"
},
"localitate": {
"cod_siruta": 54984,
"nume": "Cluj-Napoca"
},
"cod_postal": null,
"lat": 46.75704015,
"lng": 23.58632455,
"distanta_m": 17
}
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00"
},
"atribuire": "© OpenStreetMap contributors",
"distanta": {
"metoda": "linie_dreapta",
"detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
}
}
}
Adaugă cătunele/cartierele din jur.
GEThttps://oneapi.ro/api/locations/v1/reverse?lat=46.7569&lng=23.5864&include=secundare
{
"data": {
"regiune": {
"cod": "RO11",
"nume": "Nord-Vest"
},
"judet": {
"cod": "CJ",
"nume": "Cluj"
},
"uat": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca",
"tip": "municipiu"
},
"localitate": {
"cod_siruta": 54984,
"nume": "Cluj-Napoca",
"tip": "resedinta_municipiu",
"distanta_m": 3291
},
"secundare": [
{
"nume": "Zorilor",
"tip": "cartier",
"lat": 46.755559,
"lng": 23.585794,
"distanta_m": 156,
"sursa": "osm"
}
]
},
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00"
},
"distanta": {
"metoda": "linie_dreapta",
"detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
}
}
}
Punct necuprins → data null.
GEThttps://oneapi.ro/api/locations/v1/reverse?lat=44.0&lng=29.5
{
"data": null,
"meta": {
"actualizat": {
"administrativ": "2026-08-15T16: 39: 14+03: 00",
"geo": "2026-09-04T21: 24: 20+03: 00"
},
"fara_date": "Adresa nu s-a putut localiza: nici strada, nici localitatea din ea nu s-au potrivit cu nomenclatorul. Încearcă forma structurată (`localitate` + `strada`) ori verifică scrierea.",
"fara_date_cod": "fara_potrivire"
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 422 | parametri_invalizi | lat/lng lipsă sau în afara intervalului. |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.
{
"eroare": {
"cod": "parametri_invalizi",
"mesaj": "lat/lng lipsă sau în afara intervalului.",
"detalii": {
"lat": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}