IQAir 空气质量数据源
数据官方

IQAir 空气质量数据源

Use when 用户询问空气质量、AQI、PM2.5、空气污染、城市空气质量排名,或需要获取指定城市的实时空气质量数据。Provides 全球 100+ 个国家城市的实时空气质量指数(AQI)和六种主要污染物浓度数据。Do NOT use for 室内空气质量监测或空气净化器设备控制。

interstellar
interstellar
浏览3.9万
使用15

Skill 文件

SKILL.md
name
iqair-datasource
title
IQAir 空气质量数据源
description
Use when 用户询问空气质量、AQI、PM2.5、空气污染、城市空气质量排名,或需要获取指定城市的实时空气质量数据。Provides 全球 100+ 个国家城市的实时空气质量指数(AQI)和六种主要污染物浓度数据。Do NOT use for 室内空气质量监测或空气净化器设备控制。
tools
curl
credentials
IQAIR_API_KEY
credential_help
IQAIR_API_KEY: "在 https://www.iqair.com/dashboard 注册免费账号,进入 Dashboard 获取 API Key"

IQAir 空气质量数据源

通过 curl tool 调用 IQAir AirVisual API 获取全球城市实时空气质量数据。

鉴权

请求 api.airvisual.com 时,在 URL query 参数中携带 API Key:

https://api.airvisual.com/v2/...?key={{secrets.IQAIR_API_KEY}}

占位符由后端在 curl 运行期替换为真实 key,你无需也无法看到明文。

获取 API Key 步骤:

  1. 访问 登录或注册 IQAir 账号
  2. 登录后,在左侧菜单栏点击 "Air quality API" 标签
  3. 点击右上角 "+ Create an API key" 按钮创建 API Key
  4. 获取 API Key 后在「设置 → 凭证配置」页面添加 IQAIR_API_KEY

通用约定

  • Base URLhttps://api.airvisual.com/v2(必须使用 HTTPS)
  • 请求方法:GET
  • 响应格式:JSON
  • 分页:不分页(返回完整列表)
  • 速率限制:免费版约 10 次/分钟、10000 次/月
  • 层级关系:Country → State → City → Station
    • 获取城市数据前,需要先确定国家(Country)和州/省(State)
    • 部分国家州/省层级可能为空,可尝试使用 "n/a" 或省略

⚠️ 速率限制策略(必须遵守)

IQAir 免费版限额严格,必须遵守以下规则

  1. 串行请求:同一时间只发 1 个 curl 请求,等返回后再发下一个。严禁并行发送多个请求
  2. 请求间隔:每两个请求之间至少间隔 3 秒
  3. 批量查询:需要查多个城市时,一次最多查 3 个城市,如需更多则分批
  4. 429 重试:收到 429 错误后等待 60 秒再重试
  5. 数据复用:已获取的城市列表结果应缓存使用,不要重复请求

常用接口

1. 获取支持的国家列表

GET https://api.airvisual.com/v2/countries?key={{secrets.IQAIR_API_KEY}}

参数

参数名位置必填说明
keyqueryAPI Key

关键返回字段

JSON Path类型说明
data[].countrystring国家名称(英文)

2. 获取指定国家的州/省列表

GET https://api.airvisual.com/v2/states?country={country}&key={{secrets.IQAIR_API_KEY}}

参数

参数名位置必填说明
countryquery国家名称(英文)
keyqueryAPI Key

关键返回字段

JSON Path类型说明
data[].statestring州/省名称(英文)

3. 获取指定州/省的城市列表

GET https://api.airvisual.com/v2/cities?state={state}&country={country}&key={{secrets.IQAIR_API_KEY}}

参数

参数名位置必填说明
statequery州/省名称(英文)
countryquery国家名称(英文)
keyqueryAPI Key

关键返回字段

JSON Path类型说明
data[].citystring城市名称(英文)

4. 获取指定城市的空气质量数据

GET https://api.airvisual.com/v2/city?city={city}&state={state}&country={country}&key={{secrets.IQAIR_API_KEY}}

参数

参数名位置必填说明
cityquery城市名称(英文)
statequery州/省名称(英文)
countryquery国家名称(英文)
keyqueryAPI Key

关键返回字段

JSON Path类型说明
data.current.pollution.aqiusnumberAQI(美国 EPA 标准)
data.current.pollution.aqicnnumberAQI(中国标准)
data.current.pollution.mainusstring首要污染物(美国标准,如 p2=PM2.5)
data.current.pollution.maincnstring首要污染物(中国标准)
data.current.pollution.tsstring数据更新时间(ISO 8601)
data.current.weather.tpnumber温度(摄氏度)
data.current.weather.hunumber湿度(%)
data.current.weather.wsnumber风速(m/s)
data.current.weather.wdnumber风向(角度,0=北)
data.citystring城市名称
data.statestring州/省名称
data.countrystring国家名称
data.location.coordinatesarray[经度, 纬度]

5. 获取最近的监测站空气质量数据(IP 定位)

GET https://api.airvisual.com/v2/nearest_city?key={{secrets.IQAIR_API_KEY}}

返回字段与接口 4 相同,基于请求 IP 定位最近监测站。


6. 获取指定 GPS 坐标最近的监测站数据

GET https://api.airvisual.com/v2/nearest_city?lat={latitude}&lon={longitude}&key={{secrets.IQAIR_API_KEY}}

参数

参数名位置必填说明
latquery纬度(-90 到 90)
lonquery经度(-180 到 180)
keyqueryAPI Key

返回字段与接口 4 相同。


调用示例

场景:查询北京当前的空气质量

注意:请严格串行调用,不要并行发送多个请求。

  1. 调用接口:
curl(url = "https://api.airvisual.com/v2/city?city=Beijing&state=Beijing&country=China&key={{secrets.IQAIR_API_KEY}}", X = "GET")
  1. 从返回中提取关键信息:

    • data.current.pollution.aqius → AQI(美国标准)
    • data.current.pollution.aqicn → AQI(中国标准)
    • data.current.weather.tp → 当前温度
  2. 向用户汇报,附上 AQI 等级和健康建议。


场景:对比多个城市的空气质量

必须串行请求,每次只查 1 个城市:

# 第 1 个城市curl(url = "https://api.airvisual.com/v2/city?city=Beijing&state=Beijing&country=China&key={{secrets.IQAIR_API_KEY}}", X = "GET")
# 等待上一个返回后,再发第 2 个curl(url = "https://api.airvisual.com/v2/city?city=Shanghai&state=Shanghai&country=China&key={{secrets.IQAIR_API_KEY}}", X = "GET")
# 等待上一个返回后,再发第 3 个curl(url = "https://api.airvisual.com/v2/city?city=Guangzhou&state=Guangdong&country=China&key={{secrets.IQAIR_API_KEY}}", X = "GET")

错误处理

HTTP 状态码含义应对方式
200成功正常解析返回数据
400请求参数错误检查 country/state/city 拼写是否正确,使用英文名称
401未授权(API Key 无效)提示用户检查凭证配置
403配额超限提示用户当月配额已耗尽,或升级计划
404数据不存在该城市暂无监测站数据,尝试更换附近城市
429请求频率超限等待 60 秒后重试,严禁立即重试
500服务器错误稍后重试

AQI 等级参考

根据返回的 aqius(美国 EPA 标准):

AQI 范围等级健康建议
0-50优(Good)空气质量令人满意,可正常户外活动
51-100良(Moderate)敏感人群应减少户外剧烈运动
101-150轻度污染儿童、老人、呼吸道疾病患者应减少户外活动
151-200中度污染所有人应减少户外活动,敏感人群避免外出
201-300重度污染避免户外活动,外出佩戴防护口罩
301+严重污染关闭门窗,开启空气净化器,避免外出

注意事项

  1. 必须 HTTPS:所有请求必须使用 https://,HTTP 会被系统拒绝
  2. 英文名称:所有国家、州/省、城市名称必须使用英文
  3. 串行请求:严禁并行发送多个 curl 请求,必须等上一个返回后再发下一个
  4. 层级关系:查询城市数据前,需先确认正确的国家和州/省
  5. 数据时效:数据通常有 1-3 小时延迟,以 ts 字段为准
  6. 历史数据:城市接口返回 history 字段,包含过去 48 小时的逐小时污染物和气象数据。如需更长时间跨度的趋势,应结合网络搜索获取公开年报数据
Ln 1, Col 1MarkdownSpaces: 2
No errors