Open-Meteo 是开源免费天气 API,非商业用途免注册免 key 直接调用。集成 DWD ICON / GFS / ECMWF 等多气象模型,提供 11km 精度全球预报、逐小时数据、历史回溯、海洋/气候/空气质量等专项 API,支持自托管部署,开发者免费首选。
🎤 引言
做个人项目想加个天气功能?查了一下 OpenWeatherMap 收费、和风天气要申请、彩云 API 按调用次数扣钱……最后默默关掉浏览器。
Open-Meteo 就是为"不想花钱 + 不想注册 + 不想被限速"准备的天气 API——完全开源、完全免费(个人/非商业用途)、无需注册、无需 API Key,直接 curl 就能拿到 11km 精度的全球天气预报。
它是 open-meteo/open-meteo 这个 GitHub 项目,集成 DWD ICON / GFS / ECMWF / Météo-France 等多个全球顶级气象模型,提供逐小时预报 + 历史数据回溯 + 海洋/气候/空气质量/洪水等专项 API——一次性 curl 就能调通:
curl "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m"不夸张地说:Open-Meteo 重新定义了"个人开发者的天气数据"应该长什么样。
⭐ 核心功能
🌍 全球覆盖 + 11km 高精度
Open-Meteo 提供全球范围的天气预报,分辨率高达 11 公里——比大多数免费 API 精细得多(OpenWeatherMap 免费版是 25km,和风天气免费版是 5km 但要申请)。
这意味着:
- 山区小气候也能查到
- 城市街区天气差异更准确
- 海岛/极地等边缘地区数据齐全
🧠 多模型集成 + 自动选优
不像其他 API 单一数据源,Open-Meteo 后端集成多个气象模型:
| 模型 | 来源 | 优势 |
|---|---|---|
| DWD ICON | 德国气象局 | 欧洲高精度 |
| GFS | NOAA(美国) | 全球范围稳定 |
| ECMWF IFS | 欧洲中期预报中心 | 7-10 天预报最准 |
| Météo-France AROME | 法国气象局 | 法国区域高精度 |
| JMA | 日本气象厅 | 亚洲区域 |
| MET Norway | 挪威气象局 | 北欧 + 海洋 |
Open-Meteo 帮你做自动选优——同一个位置、不同模型给不同结果,API 自动取最佳或加权融合。
🕐 逐小时预报 + 多日延伸
- 逐小时预报最多 16 天
- 3 小时精度最多延伸到 10 天
- 长期气候数据可查 历史 80+ 年
📊 几十种气象变量
远超普通天气 API:
- 基础 — 温度、湿度、降水、风速风向、气压
- 进阶 — 云量、能见度、紫外线指数
- 专项 — 波高、洋流(海洋 API)、空气质量(AQI、PM2.5、PM10、O3)、花粉、洪水预警
- 历史 — ERA5 / ERA5-Land 重分析数据(1940 年至今)
🌊 多个专项 API
Open-Meteo 不止"天气预报"——它有完整生态:
| API | 用途 |
|---|---|
| Forecast API | 未来 16 天预报 |
| Historical Weather API | 1940 年至今历史数据 |
| Marine Weather API | 海洋、波浪、洋流 |
| Climate Change API | 气候变化预测(CMIP6) |
| Air Quality API | 空气质量(AQI + 污染物) |
| Flood API | 全球洪水预警 |
| Geocoding API | 地名 → 经纬度反查 |
| Elevation API | 海拔查询 |
所有这些 API 都共享一套免费政策——非商业免注册。
🔐 极简 API 设计
# 查北京当前温度 + 风力
curl "https://api.open-meteo.com/v1/forecast?latitude=39.9&longitude=116.4¤t=temperature_2m,wind_speed_10m"返回标准 JSON:
{
"latitude": 39.9,
"longitude": 116.4,
"current": {
"time": "2026-06-22T10:00",
"temperature_2m": 28.5,
"wind_speed_10m": 12.3
}
}不需要任何 token、不需要任何 header,直接 URL 拼参数。
📜 友好的许可证
- API 服务:非商业用途免费(个人项目、学术研究、开源项目)
- 代码本体:AGPL-3.0(可商用,但修改后必须开源)
- 数据归属:数据来自各国气象机构,Open-Meteo 本身不持有版权
- 付费计划:商业用途有付费版($29/月起,提供 SLA + 商业许可)
📥 安装与使用
🌐 方案 1:直接调用公共 API(推荐 80% 场景)
无需任何安装,浏览器/curl/任何 HTTP 客户端直接调:
JavaScript / 前端
async function getWeather(lat, lon) {
const url = `https://api.open-meteo.com/v1/forecast?latitude=${lat}&longitude=${lon}¤t=temperature_2m,wind_speed_10m,relative_humidity_2m&hourly=temperature_2m,precipitation_probability&timezone=auto`;
const res = await fetch(url);
return await res.json();
}
// 调用:北京天气
getWeather(39.9, 116.4).then(console.log);Python
import requests
def get_weather(lat, lon):
url = "https://api.open-meteo.com/v1/forecast"
params = {
"latitude": lat,
"longitude": lon,
"current": "temperature_2m,wind_speed_10m,relative_humidity_2m",
"hourly": "temperature_2m,precipitation_probability",
"timezone": "auto",
}
return requests.get(url, params=params).json()
print(get_weather(39.9, 116.4))cURL
curl "https://api.open-meteo.com/v1/forecast?latitude=39.9&longitude=116.4¤t=temperature_2m,wind_speed_10m"返回示例
{
"latitude": 39.9,
"longitude": 116.4,
"timezone": "Asia/Shanghai",
"current": {
"time": "2026-06-22T10:00",
"temperature_2m": 28.5,
"wind_speed_10m": 12.3,
"relative_humidity_2m": 65
}
}🐳 方案 2:Docker 自托管(生产环境 / 大量调用)
docker run -d -p 8080:8080 \
--name open-meteo \
openmeteo/open-meteo然后调用本地:
curl "http://localhost:8080/v1/forecast?latitude=39.9&longitude=116.4¤t=temperature_2m"🖥️ 方案 3:Ubuntu 22.04 预编译包(系统级部署)
# 下载预编译包
wget https://github.com/open-meteo/open-meteo/releases/latest/download/open-meteo-ubuntu-22.04.tar.gz
tar -xzf open-meteo-ubuntu-22.04.tar.gz
cd open-meteo
sudo ./install.sh
# 启动
sudo systemctl start open-meteo
sudo systemctl enable open-meteo📍 进阶:地名校反查(Geocoding)
先查地名的经纬度,再查天气:
# 北京的经纬度
curl "https://geocoding-api.open-meteo.com/v1/search?name=Beijing&count=5&language=zh&format=json"返回多个匹配结果,选第一个的 latitude/longitude 再查天气。
🎯 适用场景
✅ 强烈推荐
- 个人博客 / Side Project — 想加个天气 widget,没预算买 API
- 数据可视化项目 — 历史气候数据回溯做趋势图
- 学术研究 / 论文 — 全球气候、海洋、农业、生态研究
- IoT / 智能家居 — ESP32 / 树莓派拉天气做控制
- 天气 App 原型 — MVP 阶段不想花钱
- 户外 / 旅行类 App — 徒步、骑行、钓鱼、海钓
- 农业 / 气象站 — 自己部署气象数据服务
- AI Agent / 工具调用 — 给 Agent 加"查天气"能力
❌ 不太适合
- 商业 App / SaaS 产品 — 公共 API 仅限非商业,需付费($29/月起)
- 金融级天气预报 — 极端精度需求建议用专业气象服务商
- 中国国内小众数据需求 — 11km 精度对国内县级不如官方气象局
- 100% SLA 保障 — 公共 API 不承诺 SLA,自托管可解决
🔍 对比/替代方案
vs OpenWeatherMap(最知名的免费天气 API)
| 维度 | Open-Meteo | OpenWeatherMap |
|---|---|---|
| 免费额度 | 无限制(非商用) | 60 次/分钟、1M 次/月 |
| 是否需注册 | ❌ 不需要 | ✅ 强制要 API Key |
| 精度 | 11km | 25km(免费) / 1km(付费) |
| 多模型集成 | ✅ 6+ 模型自动选优 | ❌ 单一数据源 |
| 数据延迟 | 实时 | 实时 |
| 数据变量 | 100+ | 50+ |
| 自托管 | ✅ Docker / Ubuntu | ❌ 不开源 |
| 商业许可 | $29/月起 | $40/月起 |
| 数据源透明度 | ✅ 完全公开 | ⚠️ 不公开 |
结论:个人项目首选 Open-Meteo(免费 + 不注册 + 多模型);企业级优先 OpenWeatherMap(成熟 + SLA)。
vs 和风天气(中国本土)
| 维度 | Open-Meteo | 和风天气 |
|---|---|---|
| 中国数据精度 | 11km | 1-5km |
| 注册要求 | ❌ 免 | ✅ 实名认证 |
| 免费额度 | 无限制(非商用) | 1000 次/天(开发者) |
| 实况天气 | ⚠️ 模型推算 | ✅ 实况站数据 |
| 空气质量 | ✅ AQI | ✅ AQI(更细) |
| 预警信息 | ❌ | ✅ 官方预警 |
结论:国内 App 首选和风天气(精度 + 官方数据);国际/出海项目首选 Open-Meteo(多语言 + 全球覆盖)。
vs 彩云天气(按调用付费)
| 维度 | Open-Meteo | 彩云天气 |
|---|---|---|
| 价格 | 免费(非商用) | 0.001 元/次 |
| 短时预报 | ⚠️ 小时级 | ✅ 分钟级降水预报 |
| 雷达图 | ❌ | ✅ |
| 精度 | 11km | 街道级 |
结论:彩云适合商业级短临降水(分钟级预报),Open-Meteo 适合全局场景。
vs AccuWeather / Weather.com
| 维度 | Open-Meteo | AccuWeather |
|---|---|---|
| 价格 | 免费 | 商业授权贵 |
| 数据透明 | ✅ 完全开源 | ❌ 黑盒 |
| API 灵活性 | ✅ 极高 | ⚠️ 套餐制 |
| 自托管 | ✅ | ❌ |
结论:个人/学术首选 Open-Meteo;商业项目可考虑 AccuWeather(成熟商业化)。
⚠️ 注意事项
🚨 「免费」的范围
非商业用途免费——这是 Open-Meteo 的核心约束:
- ✅ 允许:个人项目、开源项目、学术研究、教学、测试、原型、非营利组织
- ❌ 不允许:商业产品(变现的 App / SaaS)、付费服务、企业内部商用
- ❓ 模糊地带:内部工具(不直接收费但企业用)、广告支持型 App
商用必须付费:Pricing 页面 从 $29/月起,含 SLA + 商业许可。
🌍 数据源限制
- 中国实况天气依赖国外模型(DWD/GFS),对国内实况可能延迟或偏差
- 极端天气(台风、寒潮)建议用中国气象局官方源
- 历史数据 是 ERA5 重分析(11km),1940 年至今,不是观测站原始数据
📊 商业使用 SLA
公共 API 不保证 100% 可用性:
- 没有 SLA、没有赔偿、没有 24/7 支持
- 高峰期可能限速
- 服务可能变更或下线(虽然一直在)
生产环境建议:
- 重要业务 自托管(Docker)
- 缓存常用城市数据(避免重复请求)
- 加 fallback(多 API 备份)
🔐 隐私
Open-Meteo 不记录 IP(官方隐私政策声明),但:
- 还是会有标准 HTTP 日志
- 敏感场景建议自托管
- 个人项目无问题
🐛 已知问题
按社区反馈:
- 极端地区精度有限(如深海、极地)—— 11km 对这些地区仍是粗粒度
- 微气候缺失(山谷、城市热岛)—— 任何 11km 模型都做不到
- 预报时间越长准确度越低 — 7 天后基本是统计平均
- 历史数据从 1940 年开始 — 更早的数据需要其他源(如 NOAA NCEI)
- 偶发 API 慢 — 公共 API 高峰期偶尔 5xx 错误
✅ 总结
Open-Meteo 是我见过的对个人开发者最友好的天气 API——免费 + 免注册 + 11km 精度 + 多模型集成 + 自托管支持,几乎涵盖你做天气相关项目的所有需求。
核心优势:
- ✅ 免注册、免 key、免费(非商用)
- ✅ 全球 11km 精度预报
- ✅ DWD ICON / GFS / ECMWF 多模型自动选优
- ✅ 100+ 气象变量
- ✅ 7 个专项 API(历史、海洋、气候、空气质量、洪水、地理编码、海拔)
- ✅ Docker / Ubuntu 自托管
- ✅ 完全开源(AGPL-3.0)
核心劣势:
- ❌ 商业用途必须付费
- ❌ 国内实况精度不如本土 API
- ❌ 公共 API 无 SLA
- ❌ 不提供官方预警/雷达图
推荐指数:⭐⭐⭐⭐⭐(5/5)
推荐人群:所有个人开发者、开源项目、学术研究、IoT 项目、AI Agent 工具调用。
不推荐人群:商业 App(建议付费版)、国内极精细天气需求(用和风)、金融级气象数据(用专业服务商)。
结论:如果你正在做跟天气沾边的项目,先试 Open-Meteo——大概率它就够用,省去申请 key、配额管理的麻烦。真的需要更多再考虑付费或本土 API。
官网:open-meteo.com
API 文档:open-meteo.com/en/docs
GitHub:github.com/open-meteo/open-meteo