Mediu v1 / Avertizari
Warning detail
A whole warning, by its CAP identifier: the text, the instructions, the level, the validity period and the areas covered.
GET
https://oneapi.ro/api/mediu/v1/avertizari/{identificator}
Path parameters
NameTypeDescriptionExample
identificatorrequired
string
CAP identifier of the alert, exactly as the source publishes it.
Query parameters
This route accepts no query parameters.
How it behaves
- The route returns the warning whether or not it is still valid: both an ended and a cancelled one can be read. The state is in
valabilitate.stare. - Identifiers are the CAP ones, exactly as the source gives them, and come from the other routes in this zone.
What it is for
- Get the full text and the county list starting from an identifier received on another route.
- Check whether a warning you acted on has since been withdrawn or superseded.
Response structure
All fields below live inside data.
FieldTypeDescription
avertizare.identificator
string
The CAP identifier, globally unique. It is the key you use to request the detail and to follow the same warning across requests.
avertizare.tip_mesaj
string
Alert, Update or Cancel. A cancellation deletes nothing here — that a warning existed and was withdrawn is itself information.
avertizare.status
string
State of the item, as published by the source.
avertizare.anulata
boolean
Whether the warning was withdrawn by a later message.
avertizare.anulata_la
null
avertizare.inlocuieste
array
The identifiers of the warnings this message supersedes.
avertizare.tip
object
The phenomenon type: numeric code plus the source label (
wind, rain, snow-ice…).
avertizare.tip.cod
integer
Code from the source code list — the key you filter on.
avertizare.tip.nume
string
The name, exactly as the source publishes it.
avertizare.nivel
object
The awareness level: code, colour (
yellow / orange / red) and the CAP severity. The code is stable, the label is readable — filter on the code.
avertizare.nivel.cod
integer
Code from the source code list — the key you filter on.
avertizare.nivel.nume
string
The name, exactly as the source publishes it.
avertizare.nivel.severitate
string
avertizare.urgenta
string
How soon the phenomenon is expected (
Immediate, Expected, Future).
avertizare.certitudine
string
How certain it is to occur (
Observed, Likely, Possible).
avertizare.titlu
string
The official headline, in Romanian, exactly as issued by the meteorological service.
avertizare.descriere
string
The warning text. Neither translated nor altered by us.
avertizare.instructiuni
null
The issuer's recommendations, where present.
avertizare.valabilitate.de_la
string
When the phenomenon starts (CAP
onset). When the source omits it, the effective time is used.
avertizare.valabilitate.pana_la
string
When the warning expires.
avertizare.valabilitate.stare
string
activa, viitoare, incheiata or anulata. COMPUTED on every request against the clock — not a column that could fall behind.
avertizare.valabilitate.ore_ramase
null
How many hours the warning still has to run;
null once it has ended.
avertizare.judete[]
array
The counties covered: the source NUTS3 code, its own area name, plus our county with vehicle code and SIRUTA.
avertizare.judete[].nuts3
string
avertizare.judete[].zona
string
The zone the value refers to.
avertizare.judete[].judet
string
The county the value refers to.
avertizare.judete[].judet_cod
string
County code, two letters.
avertizare.judete[].cod_siruta
integer
SIRUTA code of the territorial unit.
avertizare.emis_la
string
When it was issued by the meteorological service.
avertizare.emitent
string
Who issued it —
ANM.
avertizare.vazuta_prima_data
string
When WE first captured it. The gap from
emis_la shows how quickly we caught it.
avertizare.web
string
sursa
object
The source: MeteoAlarm (EUMETNET), the channel through which the Romanian meteorological service distributes its warnings in standardised CAP format. Includes issuer and licence.
sursa.nume
string
Name of the official source.
sursa.url
string
Public address of the source.
sursa.emitent
string
The institution that issued the information.
sursa.licenta
string
The licence under which the source allows reuse.
sursa.observatie
string
What to know about the source before using the data.
Response examples
GEThttps://oneapi.ro/api/mediu/v1/avertizari/2.49.0.0.642.0.RO.2609050946.ed0abdb4ce97775e
{
"data": {
"avertizare": {
"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"
},
"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/2.49.0.0.642.0.RO.2609050946.cdf52e901d453e09
{
"data": {
"avertizare": {
"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"
},
"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/2.49.0.0.642.0.RO.2609050946.85d8f1a7ab655170
{
"data": {
"avertizare": {
"identificator": "2.49.0.0.642.0.RO.2609050946.85d8f1a7ab655170",
"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 de munte, vântul va avea intensificări cu viteze între de 70 și 90 km/h.",
"descriere": "În zona de munte, vântul va avea intensificări cu viteze între de 70 și 90 km/h.",
"instructiuni": null,
"valabilitate": {
"de_la": "2026-09-05T21: 00: 00+03: 00",
"pana_la": "2026-09-06T06: 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: 52+03: 00",
"emitent": "ANM",
"vazuta_prima_data": "2026-09-07T01: 57: 40+03: 00",
"web": "http://www.meteoromania.ro"
},
"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."
}
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 404 | negasit | No warning exists with the given identifier. |
| 429 | cota_depasita | The plan's monthly quota has been exceeded (see Retry-After). |
All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.
{
"eroare": {
"cod": "negasit",
"mesaj": "No warning exists with the given identifier."
}
}