Referencia de la API
Historial
Las medias diarias de una ciudad para cualquier periodo desde 2017 y todo su historial por meses, con medias anuales y récords.
Historial diario
GEThttps://api.atmy.ai/v1/air-quality/history
Las medias diarias del Data Hub (UTC): los últimos días con days= o cualquier período desde 2017 con from= y to=, hasta 400 días por solicitud; falta un día con muy pocos sensores. Desde el 2026-01-19 cada día incluye también su tiempo: temperatura media, mínima y máxima, humedad, presión, viento, ráfaga más fuerte y nubosidad.
Parámetros de consulta
city string opcional
Nombre de la ciudad en cualquiera de los idiomas del sitio, slug (país/ciudad) o id.
country string opcional
Nombre o slug del país, para distinguir ciudades con el mismo nombre.
days integer opcional
Días hacia atrás desde el último día completo; se ignora con from y to.
Por defecto: 30
from date opcional
Primer día (UTC), 2017-01-01 o posterior.
to date opcional
Último día (UTC); por defecto el último día completo. Como máximo 400 días por solicitud.
lang string opcional
Idioma de los nombres de ciudad y país y del enlace a la página.
Por defecto: en
curl "https://api.atmy.ai/v1/air-quality/history?city=germany/berlin&days=30"const response = await fetch("https://api.atmy.ai/v1/air-quality/history?city=germany/berlin&days=30");
const data = await response.json();import requests
data = requests.get("https://api.atmy.ai/v1/air-quality/history?city=germany/berlin&days=30").json(){
"city": {
"id": 50037,
"slug": "germany/berlin",
"name": "Berlin",
"country": "Germany",
"timezone": "Europe/Berlin",
"center": {
"lat": 52.5073,
"lon": 13.3979
},
"page": "https://atmy.ai/air-quality/germany/berlin/"
},
"unit": "ug/m3",
"method": "datahub_daily",
"period_timezone": "UTC",
"category_scale": "US_EPA_2024",
"from": "2026-10-24",
"to": "2026-10-26",
"available_since": "2017-01-01",
"days": [
{
"date": "2026-10-24",
"pm25": 3.4,
"sensors": 172,
"level": "good",
"weather": {
"temperature_c": 10.1,
"temperature_min_c": 6.7,
"temperature_max_c": 14.7,
"humidity_percent": 71,
"pressure_hpa": 1010,
"wind_m_s": 4.3,
"wind_gust_max_m_s": 12.7,
"clouds_percent": 83,
"observations": 7
}
},
{
"date": "2026-10-25",
"pm25": 3.9,
"sensors": 174,
"level": "good",
"weather": {
"temperature_c": 9.8,
"temperature_min_c": 7.2,
"temperature_max_c": 14.6,
"humidity_percent": 72,
"pressure_hpa": 1002,
"wind_m_s": 5,
"wind_gust_max_m_s": 14.7,
"clouds_percent": 86,
"observations": 7
}
},
{
"date": "2026-10-26",
"pm25": 4.6,
"sensors": 176,
"level": "good",
"weather": {
"temperature_c": 9,
"temperature_min_c": 7.2,
"temperature_max_c": 13.4,
"humidity_percent": 73,
"pressure_hpa": 1014,
"wind_m_s": 3.2,
"wind_gust_max_m_s": 11.2,
"clouds_percent": 44,
"observations": 7
}
}
],
"weather_since": "2026-01-19",
"weather_notes": "weather: means of the readings Atmy stored for the city on the UTC day (observations: how many); temperature_min_c and temperature_max_c are the lowest and highest the provider reported for the day; wind_gust_max_m_s the strongest gust. No precipitation sum: the readings are instants.",
"weather_attribution": "Weather: OpenWeatherMap (to 2026-07-08, CC BY-SA 4.0) and Open-Meteo.com (from 2026-07-09, CC BY 4.0), collected by Atmy."
}Historial mensual
GEThttps://api.atmy.ai/v1/air-quality/history/monthly
Toda la historia de mediciones de una ciudad por meses: medias anuales (años completos marcados), los meses y días más contaminados y más limpios. Se marcan los valores basados en las medias diarias de la propia red de sensores. Desde enero de 2026 cada mes incluye también su tiempo.
Parámetros de consulta
city string opcional
Nombre de la ciudad en cualquiera de los idiomas del sitio, slug (país/ciudad) o id.
country string opcional
Nombre o slug del país, para distinguir ciudades con el mismo nombre.
lang string opcional
Idioma de los nombres de ciudad y país y del enlace a la página.
Por defecto: en
curl "https://api.atmy.ai/v1/air-quality/history/monthly?city=germany/berlin"const response = await fetch("https://api.atmy.ai/v1/air-quality/history/monthly?city=germany/berlin");
const data = await response.json();import requests
data = requests.get("https://api.atmy.ai/v1/air-quality/history/monthly?city=germany/berlin").json(){
"city": {
"id": 50037,
"slug": "germany/berlin",
"name": "Berlin",
"country": "Germany",
"timezone": "Europe/Berlin",
"center": {
"lat": 52.5073,
"lon": 13.3979
},
"page": "https://atmy.ai/air-quality/germany/berlin/"
},
"unit": "ug/m3",
"method": "datahub_monthly",
"period_timezone": "UTC",
"notes": "A month is the mean of its sensors; a sensor is the mean of its quality-checked days. Yearly means use months with data on at least half of their days; only complete years (12 months) compare as a whole. The number of sensors grew over the years, so comparisons are approximate. source_daily_days / source_daily_sensors: values that include the daily means of the sensor network itself where no hourly readings were kept. weather: means of the readings Atmy stored for the city in the month, its lowest and highest temperature.",
"since": "2025-01",
"months": [
{
"month": "2025-01",
"pm25": 8.1,
"sensors": 174,
"days_with_data": 30,
"days": 31
},
{
"month": "2025-02",
"pm25": 14.5,
"sensors": 175,
"days_with_data": 28,
"days": 28
}
],
"years": [
{
"year": "2025",
"pm25": 9,
"months": 12,
"complete": true
},
{
"year": "2026",
"pm25": 8.7,
"months": 10,
"complete": false
}
],
"dirtiest_months": [
{
"month": "2026-01",
"pm25": 18.3,
"sensors": 191,
"days_with_data": 31,
"days": 31
},
{
"month": "2026-02",
"pm25": 15.8,
"sensors": 193,
"days_with_data": 28,
"days": 28
}
],
"cleanest_months": [
{
"month": "2026-09",
"pm25": 4.5,
"sensors": 205,
"days_with_data": 30,
"days": 30
},
{
"month": "2026-06",
"pm25": 5.1,
"sensors": 195,
"days_with_data": 30,
"days": 30
}
],
"dirtiest_days": [
{
"date": "2026-01-23",
"pm25": 40.3,
"sensors": 183
},
{
"date": "2025-02-13",
"pm25": 35.5,
"sensors": 162
}
],
"cleanest_days": [
{
"date": "2025-04-06",
"pm25": 1.7,
"sensors": 173
},
{
"date": "2025-04-07",
"pm25": 1.7,
"sensors": 170
}
],
"weather_since": "2026-01-19",
"weather_attribution": "Weather: OpenWeatherMap (to 2026-07-08, CC BY-SA 4.0) and Open-Meteo.com (from 2026-07-09, CC BY 4.0), collected by Atmy."
}