开发者

API 参考

历史

城市自 2017 年以来任意时段的每日平均值,以及按月的完整历史,包括年均值和纪录。

每日历史

GEThttps://api.atmy.ai/v1/air-quality/history

Data Hub的日均值(UTC):用days=获取最近的天数,或用from=和to=获取2017年以来的任意时段,每次请求最多400天;传感器太少的日期不包括在内。自 2026-01-19 起,每一天还包含当天的天气:平均、最低和最高气温、湿度、气压、风、最强阵风和云量。

查询参数

city string 可选

网站任一语言的城市名、slug(国家/城市)或 id。

country string 可选

国家名称或 slug,用于区分同名城市。

days integer 可选

从最近一个完整日往前的天数;指定 from 和 to 时忽略。

默认值: 30

from date 可选

第一天(UTC),2017-01-01 或之后。

to date 可选

最后一天(UTC);默认最近一个完整日。每次最多 400 天。

lang string 可选

城市和国家名称以及页面链接的语言。

默认值: en

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

月度历史

GEThttps://api.atmy.ai/v1/air-quality/history/monthly

城市全部测量历史的逐月数据:年均值(标明完整年份)、污染最重和最干净的月份与日期。基于传感器网络自身日均值的数值会被标注。自 2026 年 1 月起,每个月还包含当月的天气。

查询参数

city string 可选

网站任一语言的城市名、slug(国家/城市)或 id。

country string 可选

国家名称或 slug,用于区分同名城市。

lang string 可选

城市和国家名称以及页面链接的语言。

默认值: en

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