oneapi
Sign in
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

  • date tells you what WE hold, not what the catalogue says. The activa, prima_observatie and ultima_observatie fields 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 show activa: true with a first observation back in 2008; and ultima_observatie is null for 186 of 187, because the source leaves the end open for operating stations. The date branch — 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_valori holds the most recent hourly value in the imported window, per pollutant. Each carries vechime_ore and invechita — 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."
        }
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitNo station with this code exists.
429cota_depasitaThe 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."
    }
}