Mediu v1 / Mediu
Stațiile de monitorizare a aerului
Rețeaua națională, filtrabilă pe județ, localitate, poluant măsurat, tip și mediu de amplasare.
GET
https://oneapi.ro/api/mediu/v1/aer/statii
Parametri de interogare
NumeTipDescriereValori acceptate
judetopțional
string | null
Indicativul auto al județului.
max 4 car.
sirutaopțional
integer | null
Codul SIRUTA al UAT-ului.
1
poluantopțional
string | null
Doar stațiile care măsoară activ acest poluant:
PM10, PM2.5, NO2, O3, SO2, CO.
PM10PM2.5NO2O3SO2CO
tipopțional
string | null
background, traffic sau industrial.
backgroundtrafficindustrial
zonaopțional
string | null
urban, suburban sau rural.
urbansuburbanrural
activaopțional
boolean | null
true pentru stațiile în funcțiune.
ex. true
per_paginaopțional
text
Câte stații pe pagină, maximum 250. Implicit 100.
ex. 50
paginaopțional
text
Pagina, numărată de la 1.
ex. 1
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.- Tipul stației schimbă complet interpretarea.
traffice amplasată lângă o arteră aglomerată și măsoară expunerea în trafic;backgroundmăsoară fondul urban sau rural;industriale lângă o sursă industrială. Compararea unei stații de trafic cu una de fond nu spune nimic despre „aerul din oraș". - Fiecare stație e legată de UAT-ul în care cade, prin intersecție spațială cu limitele din modulul Locations — legătura o calculăm noi, sursa europeană n-are noțiunea de unitate administrativă românească. Toate cele 187 de stații se leagă.
- Datele vin de la Agenția Europeană de Mediu, unde ajung prin raportarea obligatorie a României. Nu de pe calitateaer.ro, care e un portal fără acces programatic.
- Filtrul
poluantîntoarce stațiile cu un instrument ACTIV pentru acel poluant, nu cele care l-au măsurat cândva.
La ce folosește
- Afli ce stații măsoară în județul sau localitatea ta și ce poluanți urmăresc.
- Pui pe hartă rețeaua de monitorizare, cu tipul fiecărei stații.
- Alegi stația relevantă înainte de a cere seria zilnică — o stație de trafic și una de fond din același oraș măsoară realități diferite.
Structura răspunsului
CâmpTipDescriere
data.statii[].cod
string
Codul EoI al stației (
RO0073A) — cheia publică, folosită și în rapoartele naționale.
data.statii[].cod_national
string
Codul intern al operatorului român.
data.statii[].latitudine
number
Latitudinea stației (WGS84).
data.statii[].longitudine
number
Longitudinea stației (WGS84).
data.statii[].altitudine
integer
Altitudinea, în metri.
data.statii[].tip
string
background, traffic sau industrial.
data.statii[].zona
string
urban, suburban sau rural.
data.statii[].localitate
object
Localitatea în care cade stația, legată la nomenclatorul Locations.
data.statii[].localitate.cod_siruta
integer
UAT-ul în care cade stația — chainable spre modulul Locations.
data.statii[].localitate.nume
string
Denumirea UAT-ului.
data.statii[].judet
string
Județul.
data.statii[].judet_cod
string
Indicativul auto al județului.
data.statii[].prima_observatie
string
De când raportează stația.
data.statii[].ultima_observatie
string
Până când a raportat.
null înseamnă că e încă în funcțiune.
data.statii[].activa
boolean
Are cel puțin un instrument fără dată de încheiere.
data.statii[].poluanti[]
string
Poluanții pe care îi măsoară stația.
data.sursa
object
Sursa și licența.
data.statii[].date.are
boolean
Dacă avem măsurători importate pentru staţie.
false nu înseamnă că staţia nu există, ci că noi n-avem date de la ea.
data.statii[].date.zile
integer
Câte zile-poluant avem pentru staţie.
data.statii[].date.prima_zi
string
Prima zi cu date la NOI (poate fi mult mai recentă decât
prima_observatie din catalog).
data.statii[].date.ultima_zi
string
Ultima zi cu date la noi.
data.statii[].date.poluanti[]
array
Poluanţii pentru care avem efectiv măsurători — subset al listei
poluanti, care vine din catalog.
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/aer/statii?judet=CJ
{
"data": {
"statii": [
{
"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"
]
},
"poluanti": [
"CO",
"NO2",
"PM10",
"SO2"
]
}
],
"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."
}
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 100,
"total": 6,
"pagini": 1
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/aer/statii?tip=traffic&activa=true
{
"data": {
"statii": [
{
"cod": "RO0095A",
"cod_national": "RO-AR-1",
"latitudine": 46.181136,
"longitudine": 21.335019,
"altitudine": 107,
"tip": "traffic",
"zona": "urban",
"localitate": {
"cod_siruta": 9262,
"nume": "Arad"
},
"judet": "Arad",
"judet_cod": "AR",
"prima_observatie": "2009-01-01",
"ultima_observatie": null,
"activa": true,
"date": {
"are": true,
"zile": 1339,
"prima_zi": "2024-12-31",
"ultima_zi": "2026-09-22",
"poluanti": [
"CO",
"NO2",
"PM10"
]
},
"poluanti": [
"CO",
"NO2",
"O3",
"PM10",
"SO2"
]
}
],
"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."
}
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 100,
"total": 43,
"pagini": 1
}
}
}
GEThttps://oneapi.ro/api/mediu/v1/aer/statii?poluant=PM2.5
{
"data": {
"statii": [
{
"cod": "RO0092A",
"cod_national": "RO-AB-1",
"latitudine": 46.064275,
"longitudine": 23.563517,
"altitudine": 242,
"tip": "background",
"zona": "urban",
"localitate": {
"cod_siruta": 1017,
"nume": "Alba Iulia"
},
"judet": "Alba",
"judet_cod": "AB",
"prima_observatie": "2009-01-01",
"ultima_observatie": null,
"activa": true,
"date": {
"are": true,
"zile": 3411,
"prima_zi": "2024-12-31",
"ultima_zi": "2026-09-22",
"poluanti": [
"CO",
"NO2",
"O3",
"PM10",
"PM2.5",
"SO2"
]
},
"poluanti": [
"NO2",
"O3",
"PM10",
"PM2.5",
"SO2"
]
}
],
"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."
}
},
"meta": {
"paginare": {
"pagina": 1,
"per_pagina": 100,
"total": 79,
"pagini": 1
}
}
}
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 | Poluant, tip sau zonă necunoscute. |
| 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": "Poluant, tip sau zonă necunoscute.",
"detalii": {
"judet": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}