Mediu v1 / Mediu
Seria zilnică a unui poluant
Media, minimul, maximul și — la ozon și monoxid de carbon — maximul mediilor pe 8 ore.
GET
https://oneapi.ro/api/mediu/v1/aer/zilnic
Parametri de interogare
NumeTipDescriereValori acceptate
statieobligatoriu
string
Codul EoI al stației. Obligatoriu.
max 32 car.
poluantobligatoriu
string
Poluantul. Obligatoriu.
PM10PM2.5NO2O3SO2CO
de_laopțional
string | null
Prima zi inclusă,
AAAA-LL-ZZ.
ex. 2026-01-01
pana_laopțional
string | null
Ultima zi inclusă,
AAAA-LL-ZZ.
ex. 2026-06-30
limitaopțional
integer | null
Câte zile să întoarcă, maximum 1000. Implicit 90.
1 – 1000
Cum se comportă
datespune ce avem NOI, nu ce spune catalogul. Câmpurileactiva,prima_observatieşiultima_observatiedescriu staţia aşa cum o publică EEA — şi nu coincid cu acoperirea noastră. 10 din cele 187 de staţii n-au nicio măsurătoare importată, deşi aparactiva: truecu o primă observaţie din 2008; iarultima_observatieenullpe 186 din 187, fiindcă sursa lasă capătul deschis la staţiile în funcţiune. Ramuradate—are,zile,prima_zi,ultima_zi,poluanti— e calculată din măsurătorile noastre. Verific-o înainte de a cere serii pentru o staţie.ore_validenu e un detaliu. O zi are 24 de ore posibile; media se publică doar dacă ziua are cel puțin 18 ore valide, altfelmediaenull, dar minimul, maximul și numărătoarea rămân. O „medie zilnică" din trei ore nu e comparabilă cu valoarea-limită.- Se rețin doar valorile pe care operatorul le-a marcat VALIDE. Măsurătorile invalidate (defect, calibrare, ieșire din domeniu) sunt excluse — includerea lor ar strica exact mediile pe care se calculează depășirile.
maxim_8hexistă doar la ozon și monoxid de carbon, unde indicatorul legal e maximul mediilor glisante pe 8 ore. La restul enull, nu zero.peste_limitaaplică testul corect pentru fiecare poluant (vezitest_depasire), nu o comparație uniformă cu media. Când valoarea pe care se face testul lipsește, câmpul enull, nufalse: „nu știm" și „nu s-a depășit" sunt lucruri diferite.- Două feluri de zile.
masurare: orarae agregatul valorilor orare (media, minimul, maximul, orele valide).masurare: zilnicae o probă de laborator pe 24 de ore — PM10 și PM2,5 gravimetric, la stațiile care nu au analizor automat: media e chiar proba, iarminim,maximșiore_validenu există (null, respectiv 0). Când o stație are pentru aceeași zi ambele feluri, rămâne ziua orară cu medie. - Seria pe ore, cu vârfurile pe care media zilei le netezește, e la
/aer/orar. - Ordinea e descrescătoare după zi.
La ce folosește
- Trasezi evoluția PM10 la o stație pe ultimele luni.
- Verifici în ce zile s-a depășit pragul legal la o stație anume, cu valoarea care a produs depășirea.
- Alimentezi un grafic sau un raport cu date oficiale, nu cu capturi de pe un site.
Structura răspunsului
Toate câmpurile de mai jos sunt în data.
CâmpTipDescriere
statie
object
Stația, cu aceleași câmpuri ca la
/aer/statii.
poluant.cod
integer
Codul EEA al poluantului.
poluant.poluant
string
Notația.
poluant.denumire
string
Denumirea completă.
poluant.unitate
string
Unitatea de măsură.
poluant.limite[]
object
Valorile-limită aplicabile, cu tipul, pragul, depășirile tolerate și temeiul legal.
test_depasire.camp
string
Ce câmp din serie se compară cu pragul:
media, maxim sau maxim_8h.
test_depasire.prag
number
Pragul zilnic.
test_depasire.tolerate
integer
Câte depășiri pe an tolerează legea.
test_depasire.descriere
string
Formularea testului, în clar.
inregistrari
integer
Câte zile conține răspunsul.
serie[]
array
Ziua, cu media, minimul, maximul, maximul mediei pe 8 ore, câte ore au date și dacă ziua e depășire.
serie[].zi
string
Ziua.
serie[].media
number
Media zilnică.
null sub 18 ore valide.
serie[].minim
number
Cea mai mică valoare orară din zi.
serie[].maxim
number
Cea mai mare valoare orară din zi.
serie[].maxim_8h
number
Maximul mediilor glisante pe 8 ore. Doar la O3 și CO.
serie[].ore_valide
integer
Câte ore valide stau în spatele cifrelor zilei. 0 la o probă zilnică.
serie[].masurare
string
orara (agregat din ore) ori zilnica (o probă pe 24 de ore).
serie[].unitate
string
Unitatea.
serie[].peste_limita
boolean
Dacă ziua depășește pragul legal.
null când valoarea de test lipsește.
observatie
string
Avertismentul despre reprezentativitate și date neverificate.
sursa
object
Sursa și licența.
statie.cod
string
Codul european al stației.
statie.cod_national
string
Codul folosit de rețeaua națională.
statie.latitudine
number
Latitudinea stației.
statie.longitudine
number
Longitudinea stației.
statie.altitudine
integer
Altitudinea, în metri.
statie.tip
string
Tipul stației: trafic, industrial, fond. Contează la comparații: o stație de trafic nu se compară cu una de fond.
statie.zona
string
Zona: urbană, suburbană, rurală.
statie.localitate
object
Localitatea în care cade stația, legată la nomenclatorul Locations.
statie.judet
string
Județul.
statie.judet_cod
string
Indicativul auto al județului.
statie.prima_observatie
string
De când există date pentru stație.
statie.ultima_observatie
null
Ultima zi cu date.
null înseamnă că stația n-are serie zilnică agregată.
statie.activa
boolean
Dacă stația mai raportează.
Exemple de răspuns
GEThttps://oneapi.ro/api/mediu/v1/aer/zilnic?statie=RO0008R&poluant=PM10
{
"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"
]
}
},
"poluant": {
"cod": 5,
"poluant": "PM10",
"denumire": "Pulberi în suspensie PM10",
"unitate": "µg/m³",
"limite": [
{
"tip": "zilnic",
"valoare": 50,
"depasiri_tolerate_pe_an": 35,
"temei": "Directiva 2008/50/CE, anexa XI"
}
]
},
"test_depasire": {
"camp": "media",
"prag": 50,
"tolerate": 35,
"descriere": "Media zilnică peste 50 µg/m³. Legea tolerează 35 de zile pe an calendaristic."
},
"inregistrari": 0,
"serie": [],
"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/zilnic?statie=RO0065A&poluant=PM2.5
{
"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"
]
}
},
"poluant": {
"cod": 6001,
"poluant": "PM2.5",
"denumire": "Pulberi în suspensie PM2,5",
"unitate": "µg/m³",
"limite": [
{
"tip": "anual",
"valoare": 25,
"depasiri_tolerate_pe_an": 0,
"temei": "Directiva 2008/50/CE, anexa XIV"
}
]
},
"test_depasire": null,
"inregistrari": 90,
"serie": [
{
"zi": "2026-09-22",
"media": null,
"minim": 0,
"maxim": 29.88,
"maxim_8h": null,
"ore_valide": 9,
"unitate": "µg/m³",
"masurare": "orara",
"peste_limita": null
}
],
"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/zilnic?statie=RO0008R&poluant=NO2
{
"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"
]
}
},
"poluant": {
"cod": 8,
"poluant": "NO2",
"denumire": "Dioxid de azot",
"unitate": "µg/m³",
"limite": [
{
"tip": "orar",
"valoare": 200,
"depasiri_tolerate_pe_an": 18,
"temei": "Directiva 2008/50/CE, anexa XI"
}
]
},
"test_depasire": {
"camp": "maxim",
"prag": 200,
"tolerate": 18,
"descriere": "O valoare orară peste 200 µg/m³ în ziua respectivă. Legea tolerează 18 ore pe an — aici numărăm ZILE cu cel puțin o depășire, deci cifra e mai mică sau egală cu numărul de ore."
},
"inregistrari": 84,
"serie": [
{
"zi": "2026-09-22",
"media": null,
"minim": 5.526,
"maxim": 6.067,
"maxim_8h": null,
"ore_valide": 9,
"unitate": "µg/m³",
"masurare": "orara",
"peste_limita": false
}
],
"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."
}
}
}
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. |
| 404 | negasit | Nu există o stație cu acest cod. |
| 422 | validare | Lipsește statie sau poluant, ori poluantul e necunoscut. |
| 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": "Lipsește statie sau poluant, ori poluantul e necunoscut.",
"detalii": {
"statie": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}