oneapi
Autentificare
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_la e 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
        }
    }
}

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 (de_la, pana_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 (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."
            ]
        }
    }
}