Desarrolladores

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

GET/air-quality/history?city=germany/berlin&days=30
curl "https://api.atmy.ai/v1/air-quality/history?city=germany/berlin&days=30"
200Respuesta
{
  "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

GET/air-quality/history/monthly?city=germany/berlin
curl "https://api.atmy.ai/v1/air-quality/history/monthly?city=germany/berlin"
200Respuesta
{
  "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."
}