oneapi
Autentificare
Mediu v1 / Avertizari

Avertizări active

Avertizările meteorologice valabile acum, din MeteoAlarm. În cele mai multe zile răspunsul e gol — asta e starea normală, nu o eroare.

GET
https://oneapi.ro/api/mediu/v1/avertizari

Parametri de interogare

NumeTipDescriereValori acceptate
laopțional string | null Momentul la care întrebi (ISO 8601). Fără el, întrebarea e „ce e activ ACUM". ex. 2026-09-06T10:00:00Zex. 2024-06-15
judetopțional string | null Indicativul auto al județului (ex. CJ). max 4 car.
sirutaopțional integer | null Codul SIRUTA al unui UAT — se rezolvă la județul lui. 1
nivelopțional integer | null Doar nivelul exact (2 galben, 3 portocaliu, 4 roșu). 1 – 4
nivel_minopțional integer | null Doar de la nivelul ăsta în sus — filtrul util pentru alertare. 1 – 4
tipopțional integer | null Codul tipului de fenomen, din /avertizari/nomenclator. 1 – 20
include_anulateopțional boolean | null 1 include și avertizările retrase. Implicit sunt excluse. ex. true

Cum se comportă

  • Valabilitatea se CALCULEAZĂ, nu se memorează. Nu ștergem niciodată nimic, deci „activ" e o interogare pe fereastra de valabilitate față de momentul cerut. O avertizare dispare din listă exact când expiră, fără nicio curățare.
  • Parametrul la face ruta să răspundă despre TRECUT: „ce era în vigoare marți la 10:00". Sursa nu poate răspunde la asta — fluxul ei conține doar prezentul.
  • Răspunsul la „acum" se ține în cache cel mult 10 minute — cât trece şi între două reîmprospătări ale sursei. O avertizare care expiră în acest interval poate apărea încă, deci compară valabilitate.pana_la cu ora ta înainte să afişezi „cod portocaliu".
  • inregistrari: 0 e rezultatul OBIȘNUIT. În cele mai multe zile nu există nicio avertizare în România — un răspuns gol nu înseamnă că s-a stricat ceva.
  • nivel_maxim e cifra pe care o vrei dacă afișezi un singur semnal: cel mai grav nivel dintre avertizările valabile.

La ce folosește

  • Afișezi pe un dashboard dacă e vreo avertizare în vigoare, cu nivelul cel mai grav.
  • Declanșezi un flux intern când apare cod portocaliu sau roșu într-un județ unde ai operațiuni.
  • Verifici ce era valabil la un moment din trecut, pentru un dosar de daună sau o dispută.

Structura răspunsului

Toate câmpurile de mai jos sunt în data.

CâmpTipDescriere
moment string Momentul față de care s-a calculat valabilitatea.
acum boolean true dacă n-ai dat la, deci răspunsul e despre prezent.
inregistrari integer Câte avertizări sunt valabile atunci.
nivel_maxim null Cel mai grav nivel dintre ele; null dacă nu e niciuna.
avertizari array Câte avertizări am capturat în total.
observatie string Precizare despre cum se citeşte răspunsul: o convenţie de calcul sau o limită a datelor.
sursa object Sursa: MeteoAlarm (EUMETNET), canalul prin care ANM își distribuie avertizările în format CAP standardizat. Include emitentul și licența.
sursa.nume string Denumirea sursei oficiale.
sursa.url string Adresa publică a sursei.
sursa.emitent string Instituţia care a emis informaţia.
sursa.licenta string Licenţa sub care sursa permite reutilizarea.
sursa.observatie string Ce trebuie ştiut despre sursă înainte de a folosi datele.
avertizari[].identificator string Identificatorul CAP, unic la nivel mondial. E cheia cu care ceri detaliul și cu care urmărești aceeași avertizare între cereri.
avertizari[].tip_mesaj string Alert, Update sau Cancel. O anulare NU șterge nimic la noi — faptul că o avertizare a existat și a fost retrasă e el însuși informație.
avertizari[].anulata boolean Dacă avertizarea a fost retrasă printr-un mesaj ulterior.
avertizari[].inlocuieste array Identificatorii avertizărilor pe care acest mesaj le înlocuiește.
avertizari[].tip object Tipul fenomenului: cod numeric plus eticheta sursei (wind, rain, snow-ice…).
avertizari[].nivel object Nivelul de conștientizare: cod, culoare (yellow / orange / red) și severitatea CAP. Codul e stabil, eticheta e lizibilă — filtrează pe cod.
avertizari[].urgenta string Cât de curând se așteaptă fenomenul (Immediate, Expected, Future).
avertizari[].certitudine string Cât de sigur e că se va produce (Observed, Likely, Possible).
avertizari[].titlu string Titlul oficial al avertizării, în română, exact cum l-a emis ANM.
avertizari[].descriere string Textul avertizării. Netradus și nemodificat de noi.
avertizari[].instructiuni null Recomandările emitentului, unde există.
avertizari[].valabilitate.de_la string Când începe fenomenul (onset din CAP). Când sursa nu-l dă, se folosește momentul intrării în vigoare.
avertizari[].valabilitate.pana_la string Când expiră avertizarea.
avertizari[].valabilitate.stare string activa, viitoare, incheiata sau anulata. Se CALCULEAZĂ la fiecare cerere, față de ceas — nu e o coloană care ar putea rămâne în urmă.
avertizari[].valabilitate.ore_ramase null Câte ore mai are de trăit avertizarea; null dacă s-a încheiat.
avertizari[].judete array Județele acoperite: cod NUTS3 din sursă, denumirea ei a zonei, plus județul nostru cu indicativ auto și SIRUTA.
avertizari[].emis_la string Când a fost emisă de ANM.
avertizari[].emitent string Cine a emis-o — ANM.
avertizari[].vazuta_prima_data string Când am capturat-o NOI prima oară. Diferența față de emis_la arată cât de repede am prins-o.

Exemple de răspuns

GEThttps://oneapi.ro/api/mediu/v1/avertizari
{
    "data": {
        "moment": "2026-10-06T23: 39: 45+03: 00",
        "acum": true,
        "inregistrari": 0,
        "nivel_maxim": null,
        "avertizari": [],
        "observatie": "Nicio avertizare valabilă la momentul cerut. E rezultatul obișnuit: în cele mai multe zile nu există avertizări.",
        "sursa": {
            "nume": "MeteoAlarm (EUMETNET) — avertizări emise de Administrația Națională de Meteorologie",
            "url": "https://meteoalarm.org",
            "emitent": "Administrația Națională de Meteorologie (ANM)",
            "licenta": "MeteoAlarm: CC BY 4.0, cu atribuire către MeteoAlarm și ANM.",
            "observatie": "Avertizarea e emisă de ANM; MeteoAlarm e canalul EUMETNET prin care e distribuită în format CAP standardizat. Textul e cel oficial al ANM, netradus și nemodificat de noi."
        }
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareUn parametru nedeclarat ori o valoare care nu trece validarea (la, judet, siruta, nivel, nivel_min, tip, include_anulate). Câmpul vinovat e în detalii.
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": "Un parametru nedeclarat ori o valoare care nu trece validarea (la, judet, siruta, nivel, nivel_min, tip, include_anulate). Câmpul vinovat e în detalii.",
        "detalii": {
            "la": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}