Locations v1 / Meteo
Stații meteo în apropiere
Staţiile meteo din jurul unui punct, cu distanţa până la fiecare — pentru a alege staţia reprezentativă pentru o adresă, nu una la întâmplare.
GET
https://oneapi.ro/api/locations/v1/meteo/langa
Parametri de interogare
NumeTipDescriereValori acceptate
sirutaopțional
integer | null
Codul SIRUTA al locului (UAT sau localitate). Exclusiv cu
lat+lng.
1
latopțional
number | null
Latitudinea punctului. Se dă împreună cu
lng.
43 – 49
lngopțional
number | null
Longitudinea punctului. Se dă împreună cu
lat.
20 – 30
statieopțional
string | null
Codul unei staţii anume. Cu el, ruta întoarce direct staţia cerută, fără să mai caute pe rază.
max 32 car.
raza_kmopțional
number | null
Raza de căutare în km (implicit 50, maxim 500).
1 – 500
limitaopțional
integer | null
Câte stații se întorc (implicit 5, maxim 50).
1 – 50
Cum se comportă
- Locul se dă în exact una din două forme:
siruta, SAUlat+lng. Două deodată se resping, ca să nu alegem tăcut una. - Stațiile vin ordonate după distanța ortodromică. Distanța nu e totul, iar altitudinea nu ți-o putem da (ANM n-o publică în setul deschis): în relief variat, verifică pe hartă unde cade stația înainte de a-i lua clima drept a locului tău.
La ce folosește
- Alegi conștient stația de referință pentru un loc, în loc să accepți implicit cea mai apropiată.
- Verifici dacă un client dintr-o zonă are măcar o stație rezonabil de aproape.
- Compari două-trei stații din jurul unui punct, când relieful le face să difere.
Structura răspunsului
CâmpTipDescriere
data.punct
object
Punctul pentru care s-a căutat (lat/lng, plus locul din care a fost dedus dacă ai dat
siruta).
data.punct.lat
number
Latitudinea, în grade zecimale (WGS 84).
data.punct.lng
number
Longitudinea, în grade zecimale (WGS 84).
data.punct.sursa
string
data.punct.cod_siruta
integer
Codul SIRUTA al unităţii teritoriale.
data.punct.nume
string
Numele, aşa cum îl publică sursa.
data.punct.nivel
string
Nivelul din ierarhia clasificării — cu cât e mai adânc, cu atât e mai detaliat.
data.raza_km
integer
Raza efectiv folosită.
data.inregistrari
integer
Câte înregistrări are răspunsul.
data.statii[].wsi
string
Identificatorul OMM al stației (WSI). E cheia publică: se dă mai departe la
/meteo/zilnic?statie=.
data.statii[].nume
string
Denumirea stației, așa cum o publică ANM.
null la stațiile fără fișă de catalog.
data.statii[].latitudine
number
Latitudinea stației (WGS84).
null la stațiile fără fișă de catalog.
data.statii[].longitudine
number
Longitudinea stației (WGS84).
null la stațiile fără fișă de catalog.
data.statii[].fara_catalog
boolean
true pentru stațiile cărora portalul le publică serie zilnică dar nu și fișă de catalog: n-au nume, n-au coordonate și nu apar în căutările geografice. Seria lor se ia prin ?statie=<wsi>.
data.statii[].localitate
object
UAT-ul în care cade stația (
{cod_siruta, nume}) — legătură calculată spațial de noi, nu declarată de sursă. null pentru stațiile din afara oricărui UAT (ex. cea de pe digul portului Constanța, care e pe mare).
data.statii[].localitate.cod_siruta
integer
Codul SIRUTA al unităţii teritoriale.
data.statii[].localitate.nume
string
Numele, aşa cum îl publică sursa.
data.statii[].judet
string
Numele județului în care cade stația.
data.statii[].judet_cod
string
Indicativul auto al județului (ex.
CJ).
data.statii[].primul_an
integer
Primul an cu măsurători în seria zilnică. Variază enorm: unele stații pornesc din secolul XIX, altele din anii 1960.
data.statii[].ultimul_an
integer
Ultimul an cu măsurători.
data.statii[].zile_cu_date
integer
Câte zile măsurate are stația în total — indicatorul brut de robustețe al seriei.
data.statii[].parametri
array
Codurile parametrilor pe care îi publică stația, exact cum le numește ANM:
ta temperatura medie, tn minima, tx maxima (toate la 2 m), r precipitații, ff viteza medie a vântului (la 10 m), p presiunea la nivelul mării. O stație poate lipsi ani întregi la un parametru pe care îl publică azi.
data.statii[].distanta_km
number
Distanța de la punct la stație, în km, rotunjită la 0,1.
data.observatie
string
Precizare despre cum se citeşte răspunsul: o convenţie de calcul sau o limită a datelor.
data.sursa
object
Sursa datelor: Administrația Națională de Meteorologie, seria zilnică oficială, licență CC-BY-4.0. Conține și data ultimei importări.
data.sursa.nume
string
Denumirea sursei oficiale.
data.sursa.url
string
Adresa publică a sursei.
data.sursa.licenta
string
Licenţa sub care sursa permite reutilizarea.
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/meteo/langa?siruta=54984
{
"data": {
"punct": {
"lat": 46.78,
"lng": 23.559444444444,
"sursa": "siruta",
"cod_siruta": 54984,
"nume": "Cluj-Napoca",
"nivel": "localitate"
},
"raza_km": 50,
"inregistrari": 5,
"statii": [
{
"wsi": "0-20000-0-15120",
"nume": "Cluj-Napoca",
"latitudine": 46.777778,
"longitudine": 23.571389,
"fara_catalog": false,
"localitate": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca"
},
"judet": "Cluj",
"judet_cod": "CJ",
"primul_an": 1921,
"ultimul_an": 2026,
"zile_cu_date": 38525,
"parametri": [
"ff",
"p",
"r",
"ta",
"tn",
"tx"
],
"distanta_km": 0.9
}
],
"observatie": "Măsurătorile vin de la STAȚIE, nu din localitate. În relief variat — și România are mult — o vale și un vârf la 15 km distanță pot avea climă complet diferită. Folosește `distanta_km` ca să judeci cât de reprezentativă e. ANM nu publică altitudinea stațiilor în setul deschis, deci nu o putem da nici noi — la un loc de munte, verifică manual ce stație s-a ales.",
"sursa": {
"nume": "Administrația Națională de Meteorologie (ANM) — date climatologice zilnice, controlate calitativ",
"url": "https://odp.meteoromania.ro/",
"licenta": "CC BY 4.0, cu indicarea sursei."
}
},
"meta": {
"distanta": {
"metoda": "linie_dreapta",
"detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
}
}
}
GEThttps://oneapi.ro/api/locations/v1/meteo/langa?lat=46.77&lng=23.59&raza_km=50
{
"data": {
"punct": {
"lat": 46.77,
"lng": 23.59,
"sursa": "coordonate"
},
"raza_km": 50,
"inregistrari": 5,
"statii": [
{
"wsi": "0-20000-0-15120",
"nume": "Cluj-Napoca",
"latitudine": 46.777778,
"longitudine": 23.571389,
"fara_catalog": false,
"localitate": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca"
},
"judet": "Cluj",
"judet_cod": "CJ",
"primul_an": 1921,
"ultimul_an": 2026,
"zile_cu_date": 38525,
"parametri": [
"ff",
"p",
"r",
"ta",
"tn",
"tx"
],
"distanta_km": 1.7
}
],
"observatie": "Măsurătorile vin de la STAȚIE, nu din localitate. În relief variat — și România are mult — o vale și un vârf la 15 km distanță pot avea climă complet diferită. Folosește `distanta_km` ca să judeci cât de reprezentativă e. ANM nu publică altitudinea stațiilor în setul deschis, deci nu o putem da nici noi — la un loc de munte, verifică manual ce stație s-a ales.",
"sursa": {
"nume": "Administrația Națională de Meteorologie (ANM) — date climatologice zilnice, controlate calitativ",
"url": "https://odp.meteoromania.ro/",
"licenta": "CC BY 4.0, cu indicarea sursei."
}
},
"meta": {
"distanta": {
"metoda": "linie_dreapta",
"detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
}
}
}
GEThttps://oneapi.ro/api/locations/v1/meteo/langa?lat=44.43&lng=26.10&raza_km=30
{
"data": {
"punct": {
"lat": 44.43,
"lng": 26.1,
"sursa": "coordonate"
},
"raza_km": 30,
"inregistrari": 3,
"statii": [
{
"wsi": "0-20000-0-15422",
"nume": "Bucuresti-Filaret",
"latitudine": 44.411944,
"longitudine": 26.093889,
"fara_catalog": false,
"localitate": {
"cod_siruta": 179132,
"nume": "București"
},
"judet": "București",
"judet_cod": "B",
"primul_an": 1895,
"ultimul_an": 2026,
"zile_cu_date": 48080,
"parametri": [
"ff",
"p",
"r",
"ta",
"tn",
"tx"
],
"distanta_km": 2.1
}
],
"observatie": "Măsurătorile vin de la STAȚIE, nu din localitate. În relief variat — și România are mult — o vale și un vârf la 15 km distanță pot avea climă complet diferită. Folosește `distanta_km` ca să judeci cât de reprezentativă e. ANM nu publică altitudinea stațiilor în setul deschis, deci nu o putem da nici noi — la un loc de munte, verifică manual ce stație s-a ales.",
"sursa": {
"nume": "Administrația Națională de Meteorologie (ANM) — date climatologice zilnice, controlate calitativ",
"url": "https://odp.meteoromania.ro/",
"licenta": "CC BY 4.0, cu indicarea sursei."
}
},
"meta": {
"distanta": {
"metoda": "linie_dreapta",
"detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
}
}
}
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. |
| 404 | negasit | Locul cerut nu are coordonate (verifică siruta). |
| 422 | validare | Nu ai dat niciun loc, ai dat două forme deodată, sau ai dat statie (ruta asta caută în jurul unui LOC). |
| 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": "validare",
"mesaj": "Nu ai dat niciun loc, ai dat două forme deodată, sau ai dat statie (ruta asta caută în jurul unui LOC).",
"detalii": {
"siruta": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}