Mediu v1 / Avertizari
Istoricul avertizărilor
Avertizările emise într-un interval trecut, cu fenomenul, nivelul, zonele şi perioada de valabilitate a fiecăreia. Cu include_anulate intră şi cele retrase.
GET
https://oneapi.ro/api/mediu/v1/avertizari/istoric
Parametri de interogare
NumeTipDescriereValori acceptate
de_laopțional
string | null
Începutul intervalului (ISO 8601). Implicit, acum 30 de zile.
ex. 2026-09-01ex. 2024-06-15
pana_laopțional
string | null
Sfârșitul intervalului. Implicit, acum.
ex. 2026-09-07ex. 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
per_paginaopțional
text
Câte avertizări pe pagină (implicit 50, maxim 200).
ex. 50
paginaopțional
text
Pagina, numărată de la 1.
ex. 1
Cum se comportă
- Partea care nu există la sursă. Fluxul MeteoAlarm conține doar ce e valabil acum; noi nu ștergem nimic, deci acumulăm o serie pe care nimeni n-o publică.
- Se întorc avertizările care SE SUPRAPUN cu intervalul, nu doar cele care încep în el — una pornită luni și încheiată joi contează pentru o întrebare despre marți.
acoperire.istoricul_incepe_lae limita reală: nu există date înainte de primul nostru import, iar ce nu s-a capturat nu se poate recupera.
La ce folosește
- Reconstitui ce avertizări erau în vigoare într-o zi anume, pentru un dosar de daună.
- Documentezi câte episoade de vreme severă a avut o zonă într-un sezon.
- Verifici dacă o întârziere de transport a coincis cu o avertizare reală.
Structura răspunsului
CâmpTipDescriere
data.de_la
string
Începutul intervalului folosit.
data.pana_la
string
Sfârșitul intervalului folosit.
data.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.
data.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.
data.avertizari[].status
string
Starea elementului, aşa cum o publică sursa.
data.avertizari[].anulata
boolean
Dacă avertizarea a fost retrasă printr-un mesaj ulterior.
data.avertizari[].anulata_la
null
data.avertizari[].inlocuieste
array
Identificatorii avertizărilor pe care acest mesaj le înlocuiește.
data.avertizari[].tip
object
Tipul fenomenului: cod numeric plus eticheta sursei (
wind, rain, snow-ice…).
data.avertizari[].tip.cod
integer
Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.avertizari[].tip.nume
string
Numele, aşa cum îl publică sursa.
data.avertizari[].nivel
object
Nivelul de conștientizare: cod, culoare (
yellow / orange / red) și severitatea CAP. Codul e stabil, eticheta e lizibilă — filtrează pe cod.
data.avertizari[].nivel.cod
integer
Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.avertizari[].nivel.nume
string
Numele, aşa cum îl publică sursa.
data.avertizari[].nivel.severitate
string
data.avertizari[].urgenta
string
Cât de curând se așteaptă fenomenul (
Immediate, Expected, Future).
data.avertizari[].certitudine
string
Cât de sigur e că se va produce (
Observed, Likely, Possible).
data.avertizari[].titlu
string
Titlul oficial al avertizării, în română, exact cum l-a emis ANM.
data.avertizari[].descriere
string
Textul avertizării. Netradus și nemodificat de noi.
data.avertizari[].instructiuni
null
Recomandările emitentului, unde există.
data.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.
data.avertizari[].valabilitate.pana_la
string
Când expiră avertizarea.
data.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ă.
data.avertizari[].valabilitate.ore_ramase
null
Câte ore mai are de trăit avertizarea;
null dacă s-a încheiat.
data.avertizari[].judete[]
array
Județele acoperite: cod NUTS3 din sursă, denumirea ei a zonei, plus județul nostru cu indicativ auto și SIRUTA.
data.avertizari[].judete[].nuts3
string
data.avertizari[].judete[].zona
string
Zona la care se referă valoarea.
data.avertizari[].judete[].judet
string
Judeţul la care se referă valoarea.
data.avertizari[].judete[].judet_cod
string
Codul judeţului, două litere.
data.avertizari[].judete[].cod_siruta
integer
Codul SIRUTA al unităţii teritoriale.
data.avertizari[].emis_la
string
Când a fost emisă de ANM.
data.avertizari[].emitent
string
Cine a emis-o —
ANM.
data.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.
data.avertizari[].web
string
data.observatie
string
Precizare despre cum se citeşte răspunsul: o convenţie de calcul sau o limită a datelor.
data.acoperire
object
De când începe istoricul nostru. Nu există date înainte: sursa nu ține arhivă, iar noi acumulăm de la primul import.
data.acoperire.istoricul_incepe_la
string
data.acoperire.observatie
string
Precizare despre cum se citeşte valoarea de alături.
data.sursa
object
Sursa: MeteoAlarm (EUMETNET), canalul prin care ANM își distribuie avertizările în format CAP standardizat. Include emitentul și licența.
data.sursa.nume
string
Denumirea sursei oficiale.
data.sursa.url
string
Adresa publică a sursei.
data.sursa.emitent
string
Instituţia care a emis informaţia.
data.sursa.licenta
string
Licenţa sub care sursa permite reutilizarea.
data.sursa.observatie
string
Ce trebuie ştiut despre sursă înainte de a folosi datele.
meta.paginare.pagina
integer
Pagina curentă, numărată de la 1.
meta.paginare.per_pagina
integer
Câte înregistrări are o pagină.
meta.paginare.total
integer
Totalul înregistrărilor care se potrivesc, dincolo de pagina curentă.
meta.paginare.pagini
integer
Câte pagini are lista.
Exemple de răspuns
GEThttps://oneapi.ro/api/mediu/v1/avertizari/istoric
{
"data": {
"de_la": "2026-09-06 20: 39: 45",
"pana_la": "2026-10-06 20: 39: 45",
"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": "Se întorc avertizările care SE SUPRAPUN cu intervalul, nu doar cele care încep în el — una pornită luni și încheiată joi contează pentru o întrebare despre marți.",
"acoperire": {
"istoricul_incepe_la": "2026-09-07 01: 57: 40+03",
"observatie": "Nu există date înainte de această dată: sursa nu păstrează arhivă, iar noi acumulăm de la primul import."
},
"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."
}
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 50,
"total": 2,
"pagini": 1
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/avertizari/istoric?judet=VN&de_la=2026-09-01&pana_la=2026-09-07
{
"data": {
"de_la": "2026-08-31 21: 00: 00",
"pana_la": "2026-09-06 21: 00: 00",
"avertizari": [
{
"identificator": "2.49.0.0.642.0.RO.2609050946.ed0abdb4ce97775e",
"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": "În zona montană înaltă vor fi rafale de peste 80-90 km/h.",
"descriere": "În zona montană înaltă vor fi rafale de peste 80-90 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": "RO121",
"zona": "Alba",
"judet": "Alba",
"judet_cod": "AB",
"cod_siruta": 10
}
],
"emis_la": "2026-09-05T10: 09: 55+03: 00",
"emitent": "ANM",
"vazuta_prima_data": "2026-09-07T01: 57: 40+03: 00",
"web": "http://www.meteoromania.ro"
}
],
"observatie": "Se întorc avertizările care SE SUPRAPUN cu intervalul, nu doar cele care încep în el — una pornită luni și încheiată joi contează pentru o întrebare despre marți.",
"acoperire": {
"istoricul_incepe_la": "2026-09-07 01: 57: 40+03",
"observatie": "Nu există date înainte de această dată: sursa nu păstrează arhivă, iar noi acumulăm de la primul import."
},
"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."
}
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 50,
"total": 2,
"pagini": 1
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/avertizari/istoric?de_la=2024-06-15
{
"data": {
"de_la": "2024-06-14 21: 00: 00",
"pana_la": "2026-10-06 20: 39: 45",
"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": "Se întorc avertizările care SE SUPRAPUN cu intervalul, nu doar cele care încep în el — una pornită luni și încheiată joi contează pentru o întrebare despre marți.",
"acoperire": {
"istoricul_incepe_la": "2026-09-07 01: 57: 40+03",
"observatie": "Nu există date înainte de această dată: sursa nu păstrează arhivă, iar noi acumulăm de la primul import."
},
"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."
}
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 50,
"total": 3,
"pagini": 1
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/avertizari/istoric?pana_la=2024-06-15
{
"data": {
"de_la": "2026-09-06 20: 39: 45",
"pana_la": "2024-06-14 21: 00: 00",
"avertizari": [],
"observatie": "Se întorc avertizările care SE SUPRAPUN cu intervalul, nu doar cele care încep în el — una pornită luni și încheiată joi contează pentru o întrebare despre marți.",
"acoperire": {
"istoricul_incepe_la": "2026-09-07 01: 57: 40+03",
"observatie": "Nu există date înainte de această dată: sursa nu păstrează arhivă, iar noi acumulăm de la primul import."
},
"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."
}
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 50,
"total": 0,
"pagini": 0
}
}
}
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 (de_la, pana_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 (de_la, pana_la, judet, siruta, nivel, nivel_min, tip, include_anulate). Câmpul vinovat e în detalii.",
"detalii": {
"de_la": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}