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
laface 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_lacu ora ta înainte să afişezi „cod portocaliu". inregistrari: 0e 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_maxime 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."
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/avertizari?nivel_min=3
{
"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."
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/avertizari?la=2026-09-06T10:00:00Z
{
"data": {
"moment": "2026-09-06T10: 00: 00+03: 00",
"acum": false,
"inregistrari": 2,
"nivel_maxim": 2,
"avertizari": [
{
"identificator": "2.49.0.0.642.0.RO.2609050946.cdf52e901d453e09",
"tip_mesaj": "Alert",
"status": "Actual",
"anulata": false,
"anulata_la": null,
"inlocuieste": [],
"tip": {
"cod": 1,
"nume": "wind"
},
"nivel": {
"cod": 2,
"nume": "yellow",
"severitate": "Moderate"
},
"urgenta": "Future",
"certitudine": "Likely",
"titlu": "Vântul va avea intensificări, cu viteze de 50-70 km/h.",
"descriere": "Vântul va avea intensificări, cu viteze de 50-70 km/h.",
"instructiuni": null,
"valabilitate": {
"de_la": "2026-09-06T09: 00: 00+03: 00",
"pana_la": "2026-09-06T21: 00: 00+03: 00",
"stare": "incheiata",
"ore_ramase": null
},
"judete": [
{
"nuts3": "RO212",
"zona": "Botoșani",
"judet": "Botoșani",
"judet_cod": "BT",
"cod_siruta": 74
}
],
"emis_la": "2026-09-05T10: 09: 53+03: 00",
"emitent": "ANM",
"vazuta_prima_data": "2026-09-07T01: 57: 40+03: 00",
"web": "http://www.meteoromania.ro"
}
],
"observatie": "Valabilitatea e calculată față de `moment`, nu memorată ca stare. O avertizare dispare din listă exact când expiră.",
"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."
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/avertizari?la=2024-06-15
{
"data": {
"moment": "2024-06-14T21: 00: 00+03: 00",
"acum": false,
"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
| 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 | validare | 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. |
| 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": "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."
]
}
}
}