天气预报 API 接口标准化教程
面向企业、开发者与系统服务商的标准化接口科普文档版
天气预报 API 是面向全行业企业、开发者、系统服务商的通用 API 接口服务,提供标准化、高稳定、高并发的天气实况与预报数据查询能力,适用于天气 APP、小程序、智慧农业、物流调度、出行旅游、政务预警等多场景,支持多语言快速接入、在线调试、批量调用与私有化部署。
1. 技能简介
天气预报 API 是一项面向企业、开发者与系统服务商的标准化天气预报接口服务,支持通过地名、IP、经纬度、电话区号或邮编等多种方式查询天气实况与预报数据,覆盖当前天气、未来 24 小时、7 天、15 天、40 天及历史天气。接口返回实时温度、湿度、风向风力、天气状况、空气质量(AQI)明细、20+ 项生活指数与恶劣天气预警,数据与官方气象源同步更新(实时与预警 30 分钟刷新,预报每日 3 次更新)。适用于天气 APP、小程序、智慧农业、物流调度、出行旅游、政务预警等场景,帮助业务系统以标准化方式获取稳定、及时的气象能力。
本文档所描述的天气预报查询 API(亦称天气服务接口)为通用型数据接口,支持在线调用与批量接入,可满足企业级天气预报数据需求。
2. 核心亮点
- 多条件查询:支持地名、IP、坐标、区号邮编、景点名等多种入口,自动解析地区 code 并取首选区域。
- 数据维度全:实时天气 + 7 天预报 + 生活指数 + 空气质量明细 + 预警,覆盖温湿度、风向风力、紫外线、降水概率等。
- 更新及时:实时天气与恶劣天气预警 30 分钟更新;f1–f7 预报数据每日 7:30 / 12:00 / 18:00 三次刷新。
- 标准化输出:统一 JSON 结构,城市信息、预报数组、指数对象清晰分层,便于系统自动解析。
- 多语言与生态:提供 Java / PHP / Python / JS 调用示例、OpenAPI 3.0 文档与 MCP 服务,可直接接入 AI Agent 与低代码平台。
- 成本可控:专用资源包与通用资源包并行、按量计费,新用户可先免费验证再选套餐。
- 场景广泛:适配天气 APP、智慧农业、物流调度、出行旅游、政务预警等多行业集成。
3. 主要用途
天气预报接口把分散的气象数据聚合成一套可被系统直接调用的标准能力,让业务方无需自建气象数据源即可获得稳定天气服务。
典型落地价值:
- 天气 APP / 小程序:实时展示当前温湿度、空气质量与生活指数,提供 7 天出行参考。
- 智慧农业:依据预报与降水概率安排灌溉、打药、采收,降低气象风险。
- 物流调度:结合恶劣天气预警动态调整干线运输与末端配送,减少延误。
- 出行旅游:面向用户推送目的地天气与穿衣/紫外线指数,提升体验。
- 政务预警:接入预警信息(signalType / signalLevel),辅助应急发布与公告。
- AI 数据分析:结构化气象数据可直接用于机器学习特征工程与趋势建模。
接口以标准 HTTP 请求返回 JSON,无需安装客户端,适合后台服务、前端应用与自动化脚本集成。作为一款稳定天气服务接口,它同时支持小程序天气预报对接接口与ERP 对接天气预报 API等企业级集成场景。
4. 功能特点

核心特性一览:
| 特性 | 说明 |
|---|---|
| 多入口查询 | 地名、IP、经纬度、区号邮编、景点名均可作为查询条件 |
| 实时天气 | now 返回温度、湿度、天气、风向风力、体感温度、空气质量 |
| 多日预报 | f1 今天至 f7 第 6 天,含昼/夜天气、温度、风向风力、日出日落 |
| 生活指数 | index 提供穿衣、紫外线、洗车、运动、旅游等 20+ 项指数 |
| 空气质量 | aqiDetail 含 PM2.5 / PM10 / AQI / 首要污染物 / 质量等级 |
| 天气预警 | alarmList 返回预警种类、等级、详情、时间、省市 |
| 历史与长期 | 支持历史天气及 15 天 / 40 天长期预报查询 |
| 协议兼容 | POST / GET,表单提交,JSON 返回,UTF-8 编码 |
能力分层:
- 通用基础版:以「地名—查询天气(9-2)」为核心,覆盖实时、7 天预报、指数、预警、空气质量,满足绝大多数标准场景。
- 行业专项版:配合 IP 查询(9-4)、坐标查询(9-5)、区号邮编查询(9-10)及历史天气、地名转 code 工具,适配定位类、农业类、调度类垂直场景。上述能力均通过统一的天气预报在线调用接口对外提供服务,支持天气预报批量查询 API模式。
5. 操作流程
以「地名—查询天气(接入点 9-2)」为例,标准接入分为 5 步。

参数对照表(请求):
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
area |
String | 否* | 地区名称,如 丽江;与 areaCode 至少填其一,都填时取 areaCode |
areaCode |
String | 否* | 地区 code,如 530700;精确优先 |
needMoreDay |
String | 否 | 1 返回 7 天中后 4 天,0 不返回 |
needIndex |
String | 否 | 1 返回生活指数,0 不返回 |
need3HourForcast |
String | 否 | 1 返回当天 3/6/8 小时预报列表 |
needAlarm |
String | 否 | 1 返回天气预警,0 不返回 |
needHourData |
String | 否 | 1 返回每小时累积数组(最大长度 48) |
content-type |
String | 否 | 固定 application/x-www-form-urlencoded |
接口地址:
https://route.showapi.com/9-2?appKey={your_appKey}请求方式:POST / GET 返回格式:JSON
官方 5 步流程:
- 开通与获取密钥:注册并开通接口服务,在控制台获取应用 AppKey(替换地址中的
{your_appKey})。 - 选择接入点:按场景选择地名(9-2)、IP(9-4)、坐标(9-5)、区号邮编(9-10)或历史天气接入点。
- 组装参数:
area或areaCode至少填一个;按需开启needIndex/needAlarm/needMoreDay。 - 发起调用:通过在线调试、代码或 MCP 客户端发起 POST/GET 请求。
- 解析结果:读取
showapi_res_body,依据ret_code与now/f1–f7/aqiDetail/alarmList完成业务处理。
更多接入说明与在线调试可参考阿里云市场对应产品页:天气预报 API 产品页。新用户可先开通免费天气预报接口额度完成联调验证。
6. 实际案例
下面以三个真实场景,解读接口返回如何驱动业务。样例图展示返回数据结构与天气图标,字段示例值取自官方文档。


)
场景一:天气 APP 实时卡片
调用 area=丽江&needIndex=1&needAlarm=1,读取 now.temperature=26、now.sd=56%、now.aqi=65、now.weather=阴,直接渲染当前天气卡片;index 提供穿衣/紫外线建议。
场景二:农业灌溉调度
读取 f1–f7 的 jiangshui(降水概率)与 day_air_temperature,当未来 3 天降水概率高且降温明显时,自动推迟露天作业并触发大棚保温。
场景三:物流恶劣天气预警
开启 needAlarm=1,当 alarmList 返回暴雨/大风预警(signalType / signalLevel),调度系统自动调整干线班次与末端配送节奏,降低延误与事故风险。
7. 在线运行实录
创意场景:某出行小程序需在用户搜索城市时秒级返回天气与预警。采用「地名—查询天气(9-2)」同步调用,输入城市名并开启指数与预警。
参数设计:
area = 丽江
needIndex = 1
needAlarm = 1
needMoreDay = 1
运行全过程:
- 任务 ID(showapi_res_id):平台调用即返回,单次同步请求即获完整报文
- 调用方式:POST
https://route.showapi.com/9-2?appKey=**** - 执行耗时:同步返回,单次调用完成地区解析与数据组装
- 步骤轨迹:参数校验 → 地名解析地区 code(多地名取首选)→ 拉取实时/预报/指数/预警 → 组装 JSON → 返回
- 更新时效:实时与预警 30 分钟刷新,预报每日 3 次更新
最终成图 / 结果展示(官方文档返回示例,字段与示例值均取自文档):
{
"showapi_res_code": 0,
"showapi_res_body": {
"time": "201203061100",
"cityInfo": {
"c3": "北京", "c0": "110114", "longitude": "116.391", "latitude": "39.904", "c11": "010" },
"now": {
"temperature": "26", "sd": "56%", "weather": "阴",
"wind_direction": "南风", "wind_power": "1级", "aqi": "65",
"feels_like": "26",
"aqiDetail": {
"aqi": "38", "quality": "优", "pm2_5": "19", "pm10": "37", "primary_pollutant": "颗粒物(PM2.5)" }
},
"f1": {
"day_weather": "多云", "night_weather": "暴雨",
"day_air_temperature": "26", "night_air_temperature": "12",
"day_wind_direction": "东北风", "day_wind_power": "3-4级10~17m/h",
"ziwaixian": "很强", "day": "20150627", "weekday": 6
},
"ret_code": 0
}
}
结果解读:ret_code=0 表示查询成功;now 为实时天气与空气质量;f1 为今日预报(昼/夜天气、温度、风力);cityInfo 提供城市与经纬度等基础资料。业务系统可据此渲染天气卡片、指数建议与预警提示。
8. 接口接入示例 & 完整返回字段样例
多语言调用示例(地名—查询天气 9-2):
// Java
import java.io.*;
import java.net.*;
import java.net.URLEncoder;
public class WeatherQuery {
public static void main(String[] args) throws Exception {
String url = "https://route.showapi.com/9-2?appKey=YOUR_APPKEY";
String body = "area=" + URLEncoder.encode("丽江", "UTF-8")
+ "&needIndex=1&needAlarm=1&needMoreDay=1";
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.getOutputStream().write(body.getBytes("UTF-8"));
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder(); String line;
while ((line = br.readLine()) != null) sb.append(line);
System.out.println(sb);
}
}
<?php
// PHP
$url = "https://route.showapi.com/9-2?appKey=YOUR_APPKEY";
$post = http_build_query(["area"=>"丽江","needIndex"=>"1","needAlarm"=>"1","needMoreDay"=>"1"]);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_POST=>true, CURLOPT_POSTFIELDS=>$post,
CURLOPT_RETURNTRANSFER=>true, CURLOPT_HTTPHEADER=>["content-type: application/x-www-form-urlencoded"]
]);
echo curl_exec($ch);
curl_close($ch);
?>
# Python
import urllib.parse, urllib.request
url = "https://route.showapi.com/9-2?appKey=YOUR_APPKEY"
data = urllib.parse.urlencode({
"area":"丽江","needIndex":"1","needAlarm":"1","needMoreDay":"1"}).encode()
req = urllib.request.Request(url, data=data, method="POST",
headers={
"content-type":"application/x-www-form-urlencoded"})
print(urllib.request.urlopen(req).read().decode())
// Node.js / JS
const https = require("https");
const qs = new URLSearchParams({
area: "丽江", needIndex: "1", needAlarm: "1", needMoreDay: "1" });
const url = "https://route.showapi.com/9-2?appKey=YOUR_APPKEY";
const req = https.request(url, {
method: "POST", headers: {
"content-type": "application/x-www-form-urlencoded" } },
(res) => {
let d=""; res.on("data", c=>d+=c); res.on("end", ()=>console.log(d)); });
req.write(qs.toString()); req.end();
完整返回字段样例(showapi_res_body):
| 字段 | 类型 | 说明 |
|---|---|---|
time |
String | 预报发布时间,如 201203061100 |
cityInfo |
Object | 城市基础资料:c3 城市名、c0 地区 code、longitude/latitude 经纬度、c11 区号 |
now |
Object | 实时天气:temperature 气温、sd 湿度、weather 天气、wind_direction/wind_power 风向风力、aqi 空气指数、feels_like 体感温度 |
now.aqiDetail |
Object | 空气质量明细:aqi、quality 等级、pm2_5、pm10、primary_pollutant 首要污染物 |
f1 |
Object | 今日预报:day_weather/night_weather 昼夜天气、day_air_temperature/night_air_temperature 温度、day_wind_direction 风向、jiangshui 降水概率、ziwaixian 紫外线 |
f2–f7 |
Object | 今天 +1 至 +6 天的天气预报 |
index |
Object | 生活指数:穿衣、紫外线、洗车、运动、旅游等 20+ 项 |
alarmList |
Array | 天气预警:signalType 种类、signalLevel 等级、issueContent 详情、issueTime 时间、province/city |
ret_code |
Number | 0 成功,其他失败 |
9. 接口调用限制与服务规范
| 规范项 | 说明 |
|---|---|
| 请求方式 | POST / GET,表单提交,UTF-8 |
| 计费模式 | 按量计费,专用 / 通用资源包均可抵扣 |
| 资源包 | 专用资源包 / 通用资源包并行,充通用资源包后可调用全站接口 |
| 参数必填 | area 与 areaCode 至少填其一;同名多地取默认排序首选区域 |
| 可选开关 | needIndex/needAlarm/needMoreDay/need3HourForcast/needHourData 控制返回维度 |
| 高频注意 | 多地名建议使用 areaCode 精确查询,避免取错区域 |
| 合规规范 | 查询数据仅作业务参考,禁止用于违规场景 |
| 限流说明 | 高并发与专属扩容请联系技术支持评估方案 |
10. SLA 服务指标
| 指标 | 说明 |
|---|---|
| 数据更新周期 | 实时天气与恶劣天气预警 30 分钟更新;f1–f7 预报每日 7:30 / 12:00 / 18:00 更新 |
| 请求方式 / 协议 | HTTP POST·GET,JSON 返回,标准表单编码 |
| 响应模式 | 同步阻塞调用,单次请求返回完整报文 |
| 并发与 QPS | 标准套餐满足常规调用;高并发与私有化部署请联系技术支持约定 |
| 稳定性保障 | 多源气象数据同步,异常自动切换,持续迭代保障可用性 |
| 故障响应 | 异常渠道自动切换,工单支持跟进 |
| 重试机制 | 调用超时建议指数退避重试,结合 showapi_res_error 排查 |
具体 QPS 上限、全年可用性承诺与专属 SLA,以所购套餐与商务约定为准。
11. 计费套餐 & 免费试用政策
| 套餐 | 价格 | 说明 |
|---|---|---|
| 专用资源包 | ¥49 / ¥299 / ¥1299 / ¥3499 | 自购买起有效期 12 个月,按调用次数抵扣 |
| 通用资源包 | 充值即用 | 充值后可直接调用含本接口在内的全站付费接口,无需单独购买专用包 |
| 免费试用 | 新用户可先开通免费额度验证 | 建议先以小量调用完成联调,再按业务量选套餐;免费天气预报接口额度可覆盖初期开发调试 |
计费规则:按量计费,专用/通用资源包并行抵扣,无隐形消费;ret_code=0 才计成功调用。支持按量付费、阶梯资源包、并发扩容与长期合作优惠。
12. 接口能力边界 & 服务范围说明
明确支持:
- 地名、IP、坐标、区号邮编、景点名等多种入口的天气查询
- 实时天气、7 天预报、生活指数、空气质量明细、天气预警
- 历史天气与 15 天 / 40 天长期预报查询
- 天气 APP、小程序、农业、物流、出行、政务等系统对接
- 多语言接入、OpenAPI 3.0、MCP 服务
明确不支持:
- 非气象业务场景(如专业数值预报模式、雷达回波原始数据)
- 特殊定制区域或超长周期预测
- 违规调用与未授权数据采集
- 超接口范围的精确分钟级降水预测
边界说明: 同名多地默认取首选区域,精确查询建议使用 areaCode;小众地点可能无覆盖,不保证 100% 命中。
免责声明: 返回数据仅供业务参考,不构成商业决策、出行安全或合规运营的最终依据;因数据延迟或异常导致的损失,服务方不承担责任。
13. 竞品差异化竞争优势
行业痛点:
- 数据不全:仅覆盖部分城市,指数/预警缺失
- 服务不稳:更新慢、高峰限流、查询失败率高
- 响应延迟:实况与预警滞后,体验差
- 收费混乱:隐藏计费、按次叠加成本高
- 售后缺失:无技术支持、无文档
核心优势:
- 覆盖广:地名/IP/坐标/区号多入口,国内外城市覆盖全
- 维度全:实时+预报+指数+空气质量+预警一体化
- 更新快:实时与预警 30 分钟刷新,预报每日 3 次
- 计费透明:按量/资源包并行,无隐形消费
- 免费门槛低:新用户可先验证再付费
- 技术完善:多语言示例、OpenAPI、MCP、工单支持
- 高并发扩容:支持批量调用与私有化部署
14. 行业落地应用案例
| 行业 | 落地方式 | 优化效果 |
|---|---|---|
| 天气 APP | 实时卡片 + 7 天预报 + 指数 | 提升日活与停留时长 |
| 智慧农业 | 降水概率驱动灌溉调度 | 降低气象灾害损失 |
| 物流调度 | 预警触发班次调整 | 减少恶劣天气延误 |
| 出行旅游 | 目的地天气与穿衣建议 | 提升用户满意度 |
| 政务预警 | 预警信息接入发布 | 增强应急响应时效 |
| 小程序 | 一键查天气 | 轻量获客与留存 |
| AI 数据分析 | 结构化气象特征建模 | 支撑预测与决策 |
15. 错误码说明 & 常见问题排查指南
ret_code 错误码:
| 错误码 | 含义 | 排查方案 |
|---|---|---|
| 0 | 查询成功 | 读取 now / f1–f7 / aqiDetail / alarmList |
| 非 0 | 接口调用失败 | 查看 showapi_res_error,确认参数与网络 |
常见问题:
- 无返回数据 / 取错城市:
area与areaCode至少填其一;同名多地建议用areaCode精确指定。 - 指数 / 预警为空:需将
needIndex=1、needAlarm=1显式开启才会返回对应字段。 - 预报未变化:f1–f7 每日仅 7:30 / 12:00 / 18:00 三次更新,属正常刷新节奏。
- 超时 / 限流:建议指数退避重试,高并发场景联系技术支持扩容。
16. 独立 FAQ 常见问答专区
Q:产品接口主要支持哪些功能?
A:支持通过地名、IP、坐标、区号邮编查询实时天气、7 天预报、生活指数、空气质量明细与恶劣天气预警,并提供历史与长期预报。
Q:是否支持免费试用?免费额度多少?
A:支持。新用户可先开通免费额度完成联调验证,再按业务量选择资源包套餐。
Q:响应速度与稳定性如何?
A:实时天气与预警 30 分钟刷新,预报每日 3 次更新;多源同步保障稳定性,异常自动切换。
Q:是否支持批量调用、高并发接入?
A:支持标准高并发调用;大批量与私有化部署可联系技术支持评估扩容方案。
Q:数据多久更新一次?
A:实时与预警 30 分钟更新;f1–f7 预报每日 7:30 / 12:00 / 18:00 更新。
Q:调用报错 / 无返回数据的原因与排查?
A:多为 area/areaCode 未填或同名取错区域、未开启指数/预警开关,详见第 15 节排查指南。
Q:是否支持私有化部署、定制化开发?
A:支持大客户私有化部署与定制化开发,可提供专属技术驻场方案。
Q:适用于哪些系统场景?支持 ERP、小程序、APP 对接吗?
A:适用天气 APP、小程序、农业、物流、出行、政务等;提供多语言示例与 OpenAPI、MCP,便于各类系统对接。
Q:收费标准是什么?有无隐形收费?
A:按量计费 + 专用/通用资源包并行,无隐形消费;ret_code=0 才计成功调用。
Q:接入需要什么资质、如何快速对接?
A:注册开通后获取 AppKey 即可调用;提供在线调试、多语言示例、OpenAPI 3.0 与 MCP 文档,可快速联调。
17. 内容小结
天气预报 API 以标准化 HTTP 接口,将实时天气、7 天预报、生活指数、空气质量与恶劣天气预警聚合为可系统调用的能力,覆盖地名、IP、坐标、区号等多种查询入口,返回统一 JSON。其优势在于数据维度全、更新及时(实时/预警 30 分钟、预报每日 3 次)、计费透明、生态集成完善(OpenAPI / MCP / 多语言),并已在国内天气 APP、农业、物流、出行、政务等场景规模化落地。
集成要点回顾:① 获取 AppKey 后替换接口地址;② area 或 areaCode 至少填其一,精确查询用 areaCode;③ 按需开启 needIndex/needAlarm/needMoreDay;④ 以 ret_code、now、f1–f7、aqiDetail、alarmList 组织业务;⑤ 高并发走专属扩容。