Mediu v1 / Mediu
A single monitoring station
The station's details, its instruments and the last value measured for each pollutant.
GET
https://oneapi.ro/api/mediu/v1/aer/statii/{cod}
Path parameters
NameTypeDescriptionExample
codrequired
string
Station code in the national air quality monitoring network (e.g.
RO0073A).
Query parameters
This route accepts no query parameters.
How it behaves
datetells you what WE hold, not what the catalogue says. Theactiva,prima_observatieandultima_observatiefields describe the station as published by the EEA — and they do not match our coverage. 10 of the 187 stations have no imported measurement at all, even though they showactiva: truewith a first observation back in 2008; andultima_observatieisnullfor 186 of 187, because the source leaves the end open for operating stations. Thedatebranch —are,zile,prima_zi,ultima_zi,poluanti— is computed from our own measurements. Check it before requesting series for a station.- A sampling point is an INSTRUMENT measuring a single pollutant. A station has several, and the source reports measurements per instrument, not per station — which is why you see them separately.
ultimele_valoriholds the most recent hourly value in the imported window, per pollutant. Each carriesvechime_oreandinvechita— a value from three days ago is all the source has for that station, but it does not describe the present.- The route accepts EoI codes only (two letters, four digits, one letter):
RO0073A.
What it is for
- See what a station actually measures, and with what method.
- Get the latest value for each of a station pollutants in one call.
Response structure
All fields below live inside data.
FieldTypeDescription
statie
object
Aceleași câmpuri ca un element din
data.statii[] la /aer/statii.
puncte_de_prelevare[].cod
string
Codul instrumentului (
SPO-…).
puncte_de_prelevare[].poluant
string
Poluantul măsurat.
puncte_de_prelevare[].metoda
string
Tipul măsurătorii (de regulă
automatic).
puncte_de_prelevare[].prima_observatie
string
De când măsoară.
puncte_de_prelevare[].ultima_observatie
string
Până când.
null = încă activ.
puncte_de_prelevare[].activ
boolean
Dacă instrumentul e în funcțiune.
ultimele_valori[].poluant
string
Poluantul.
ultimele_valori[].valoare
number
Ultima valoare orară.
ultimele_valori[].unitate
string
Unitatea de măsură.
ultimele_valori[].ora
string
Ora la care a fost măsurată.
ultimele_valori[].vechime_ore
integer
De câte ore e valoarea asta cea mai recentă.
ultimele_valori[].invechita
boolean
true peste 6 ore vechime — nu o prezenta ca „acum".
ultimele_valori[].referinta_legala.prag
number
Pragul legal pentru poluant.
ultimele_valori[].referinta_legala.se_aplica_la
string
La ce se aplică pragul:
media, maxim sau maxim_8h.
ultimele_valori[].referinta_legala.observatie
string
De ce nu poți compara direct valoarea izolată cu pragul.
observatie
string
Avertismentul despre reprezentativitate și date neverificate.
sursa
object
Sursa și licența.
statie.cod
string
The European station code.
statie.cod_national
string
The code used by the national network.
statie.latitudine
number
Station latitude.
statie.longitudine
number
Station longitude.
statie.altitudine
integer
Elevation, in metres.
statie.tip
string
Station type: traffic, industrial, background. It matters for comparisons: a traffic station does not compare with a background one.
statie.zona
string
The area: urban, suburban, rural.
statie.localitate
object
The locality the station falls in, linked to the Locations nomenclature.
statie.judet
string
The county.
statie.judet_cod
string
The county vehicle code.
statie.prima_observatie
string
When data for the station begins.
statie.ultima_observatie
null
The last day with data.
null means the station has no aggregated daily series.
statie.activa
boolean
Whether the station still reports.
statie.poluanti
The pollutants the station measures.
Response examples
GEThttps://oneapi.ro/api/mediu/v1/aer/statii/RO0008R
{
"data": {
"statie": {
"cod": "RO0008R",
"cod_national": "RO-EM-3",
"latitudine": 47.324686,
"longitudine": 25.134839,
"altitudine": 912,
"tip": "background",
"zona": "rural",
"localitate": {
"cod_siruta": 149851,
"nume": "Poiana Stampei"
},
"judet": "Suceava",
"judet_cod": "SV",
"prima_observatie": "2010-01-01",
"ultima_observatie": null,
"activa": true,
"date": {
"are": true,
"zile": 326,
"prima_zi": "2026-07-01",
"ultima_zi": "2026-09-22",
"poluanti": [
"CO",
"NO2",
"O3",
"SO2"
]
}
},
"puncte_de_prelevare": [
{
"cod": "SPO-RO0008R_00010_100",
"poluant": "CO",
"metoda": "automatic",
"prima_observatie": "2010-01-01",
"ultima_observatie": null,
"activ": true
}
],
"ultimele_valori": [
{
"poluant": "CO",
"valoare": 0.067,
"unitate": "mg/m³",
"ora": "2026-09-22 09: 00: 00+03",
"vechime_ore": 351,
"invechita": true,
"referinta_legala": {
"prag": 10,
"se_aplica_la": "maxim_8h",
"observatie": "Pragul se aplică maximului mediilor pe 8 ore, nu acestei valori izolate — decât dacă e chiar o valoare orară."
}
}
],
"observatie": "Valorile sunt măsurate la STAȚIE, nu în localitate: la câțiva kilometri, sau lângă o arteră aglomerată, pot fi complet diferite. Datele din fereastra curentă sunt NEVERIFICATE — operatorul le poate corecta sau invalida ulterior. Mediile zilnice se publică doar când ziua are cel puțin 18 ore valide; `ore_valide` spune întotdeauna pe ce se sprijină cifra. O zi cu `masurare: zilnica` e o probă de laborator pe 24 de ore (PM10/PM2,5 gravimetric): media e chiar proba, fără minim, maxim ori ore.",
"sursa": {
"nume": "European Environment Agency — Air Quality Download Service (date raportate de România prin RNMCA/ANPM)",
"url": "https://eeadmz1-downloads-webapp.azurewebsites.net/",
"licenta": "Politica de reutilizare a EEA — reutilizare permisă cu indicarea sursei."
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/aer/statii/RO0065A
{
"data": {
"statie": {
"cod": "RO0065A",
"cod_national": "RO-B1",
"latitudine": 44.447275,
"longitudine": 26.036694,
"altitudine": 91,
"tip": "background",
"zona": "urban",
"localitate": {
"cod_siruta": 179132,
"nume": "București"
},
"judet": "București",
"judet_cod": "B",
"prima_observatie": "2004-01-01",
"ultima_observatie": null,
"activa": true,
"date": {
"are": true,
"zile": 3773,
"prima_zi": "2024-12-31",
"ultima_zi": "2026-09-22",
"poluanti": [
"CO",
"NO2",
"O3",
"PM10",
"PM2.5",
"SO2"
]
}
},
"puncte_de_prelevare": [
{
"cod": "SPO-RO0065A_00010_100",
"poluant": "CO",
"metoda": "automatic",
"prima_observatie": "2008-01-01",
"ultima_observatie": null,
"activ": true
}
],
"ultimele_valori": [
{
"poluant": "CO",
"valoare": 0.294,
"unitate": "mg/m³",
"ora": "2026-09-22 09: 00: 00+03",
"vechime_ore": 351,
"invechita": true,
"referinta_legala": {
"prag": 10,
"se_aplica_la": "maxim_8h",
"observatie": "Pragul se aplică maximului mediilor pe 8 ore, nu acestei valori izolate — decât dacă e chiar o valoare orară."
}
}
],
"observatie": "Valorile sunt măsurate la STAȚIE, nu în localitate: la câțiva kilometri, sau lângă o arteră aglomerată, pot fi complet diferite. Datele din fereastra curentă sunt NEVERIFICATE — operatorul le poate corecta sau invalida ulterior. Mediile zilnice se publică doar când ziua are cel puțin 18 ore valide; `ore_valide` spune întotdeauna pe ce se sprijină cifra. O zi cu `masurare: zilnica` e o probă de laborator pe 24 de ore (PM10/PM2,5 gravimetric): media e chiar proba, fără minim, maxim ori ore.",
"sursa": {
"nume": "European Environment Agency — Air Quality Download Service (date raportate de România prin RNMCA/ANPM)",
"url": "https://eeadmz1-downloads-webapp.azurewebsites.net/",
"licenta": "Politica de reutilizare a EEA — reutilizare permisă cu indicarea sursei."
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/aer/statii/RO0073A
{
"data": {
"statie": {
"cod": "RO0073A",
"cod_national": "RO-CJ-1",
"latitudine": 46.778253,
"longitudine": 23.615619,
"altitudine": 336,
"tip": "traffic",
"zona": "urban",
"localitate": {
"cod_siruta": 54975,
"nume": "Cluj-Napoca"
},
"judet": "Cluj",
"judet_cod": "CJ",
"prima_observatie": "2006-01-01",
"ultima_observatie": null,
"activa": true,
"date": {
"are": true,
"zile": 1512,
"prima_zi": "2024-12-31",
"ultima_zi": "2026-09-22",
"poluanti": [
"CO",
"NO2",
"PM10"
]
}
},
"puncte_de_prelevare": [
{
"cod": "SPO-RO0073A_00010_100",
"poluant": "CO",
"metoda": "automatic",
"prima_observatie": "2008-01-01",
"ultima_observatie": null,
"activ": true
}
],
"ultimele_valori": [
{
"poluant": "CO",
"valoare": 0.474,
"unitate": "mg/m³",
"ora": "2026-09-22 09: 00: 00+03",
"vechime_ore": 351,
"invechita": true,
"referinta_legala": {
"prag": 10,
"se_aplica_la": "maxim_8h",
"observatie": "Pragul se aplică maximului mediilor pe 8 ore, nu acestei valori izolate — decât dacă e chiar o valoare orară."
}
}
],
"observatie": "Valorile sunt măsurate la STAȚIE, nu în localitate: la câțiva kilometri, sau lângă o arteră aglomerată, pot fi complet diferite. Datele din fereastra curentă sunt NEVERIFICATE — operatorul le poate corecta sau invalida ulterior. Mediile zilnice se publică doar când ziua are cel puțin 18 ore valide; `ore_valide` spune întotdeauna pe ce se sprijină cifra. O zi cu `masurare: zilnica` e o probă de laborator pe 24 de ore (PM10/PM2,5 gravimetric): media e chiar proba, fără minim, maxim ori ore.",
"sursa": {
"nume": "European Environment Agency — Air Quality Download Service (date raportate de România prin RNMCA/ANPM)",
"url": "https://eeadmz1-downloads-webapp.azurewebsites.net/",
"licenta": "Politica de reutilizare a EEA — reutilizare permisă cu indicarea sursei."
}
}
}
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 station with this code exists. |
| 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 station with this code exists."
}
}