oneapi
Autentificare
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, SAU lat+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."
        }
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404negasitLocul cerut nu are coordonate (verifică siruta).
422validareNu ai dat niciun loc, ai dat două forme deodată, sau ai dat statie (ruta asta caută în jurul unui LOC).
429cota_depasitaCota 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."
            ]
        }
    }
}