oneapi
Autentificare
Mediu v1 / Mediu

Clasamentul stațiilor

Staţiile ordonate după media perioadei pentru un poluant — cea mai curată şi cea mai poluată. Mediile se calculează doar din zilele cu măsurători, nu din zero-uri.

GET
https://oneapi.ro/api/mediu/v1/aer/clasament

Parametri de interogare

NumeTipDescriereValori acceptate
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
ordineopțional string | null descrescator (implicit) sau crescator. crescatordescrescator
limitaopțional integer | null Câte stații să întoarcă, maximum 200. Implicit 50. 1 – 200
zile_minimeopțional integer | null Câte zile cu date trebuie să aibă o stație ca să intre în clasament. Implicit 30. 1 – 365

Cum se comportă

  • Poluanţii nu se măsoară în aceleaşi staţii. PM10 are 171 de staţii, NO2 149, SO2 116, CO 99, O3 83, iar PM2.5 doar 78. Un clasament sau o comparaţie între doi poluanţi compară, de fapt, două reţele diferite — nu doar două substanţe. Când compari judeţe pe PM2.5, ţine minte că unele n-au nicio staţie care să-l măsoare.
  • Se compară STAȚII, nu orașe. O stație de trafic și una de fond din același oraș măsoară realități diferite; un clasament care le amestecă nu spune nimic despre oraș. Filtrează mental pe tip înainte de a trage o concluzie.
  • zile_minime (implicit 30) e pragul de acoperire: fără el, o stație cu trei zile de date ar putea conduce clasamentul. Coboară-l doar dacă știi ce faci.
  • Ordinea implicită e descrescătoare — la calitatea aerului interesează în primul rând cine stă prost.
  • Media se calculează doar pe zilele cu medie publicabilă (cel puțin 18 ore valide).

La ce folosește

  • Afli unde s-a măsurat cel mai poluat aer într-o perioadă.
  • Compari stații de același tip între orașe, corect.
  • Ilustrezi într-un articol diferențele dintre stațiile de trafic și cele de fond.

Structura răspunsului

Toate câmpurile de mai jos sunt în data.

CâmpTipDescriere
poluant object Poluantul, cu unitatea și valorile-limită.
perioada object Intervalul clasat; null înseamnă toată seria.
perioada.de_la string Începutul perioadei.
perioada.pana_la string Sfârșitul perioadei.
ordine string Ordinea aplicată.
zile_minime integer Pragul de acoperire aplicat.
inregistrari integer Câte stații conține clasamentul.
rezultate[].pozitie integer Poziția, de la 1.
rezultate[].statie string Codul EoI.
rezultate[].localitate string UAT-ul stației.
rezultate[].judet string Județul.
rezultate[].judet_cod string Indicativul auto.
rezultate[].tip string Tipul stației.
rezultate[].zona string Mediul de amplasare.
rezultate[].media number Media mediilor zilnice din perioadă.
rezultate[].maxim number Cea mai mare valoare orară din perioadă.
rezultate[].zile integer Câte zile cu medie publicabilă au intrat în calcul.
observatie string Avertismentul că se compară stații, nu orașe.
sursa object Sursa și licența.
poluant.cod integer Codul numeric al poluantului, cel folosit de EEA.
poluant.poluant string Simbolul: PM10, NO2, O3, SO2, CO, PM2.5.
poluant.denumire string Denumirea în clar.
poluant.unitate string Unitatea de măsură.
poluant.limite[] array Limitele legale aplicabile: tipul, valoarea, câte depășiri sunt tolerate pe an și temeiul normativ.

Exemple de răspuns

GEThttps://oneapi.ro/api/mediu/v1/aer/clasament?poluant=PM10&limita=10
{
    "data": {
        "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"
                }
            ]
        },
        "perioada": {
            "de_la": null,
            "pana_la": null
        },
        "ordine": "descrescator",
        "zile_minime": 30,
        "inregistrari": 10,
        "rezultate": [
            {
                "pozitie": 1,
                "statie": "RO0151A",
                "localitate": "Rovinari",
                "judet": "Gorj",
                "judet_cod": "GJ",
                "tip": "industrial",
                "zona": "suburban",
                "media": 40.34,
                "maxim": 448.322,
                "zile": 380
            }
        ],
        "observatie": "Se compară STAȚII, nu orașe. O stație de trafic și una de fond din același oraș măsoară realități diferite — `tip` spune care e care, iar un clasament care le amestecă nu spune nimic despre oraș.",
        "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

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareLipsește poluant, sau ordine nu e una dintre cele două valori.
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": "Lipsește poluant, sau ordine nu e una dintre cele două valori.",
        "detalii": {
            "poluant": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}