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&current=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德国气象局欧洲高精度
GFSNOAA(美国)全球范围稳定
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 API1940 年至今历史数据
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&current=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}&current=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&current=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&current=temperature_2m"

🖥️ 方案 3:Ubuntu 22.04 预编译包(系统级部署)

官方 Getting Started

# 下载预编译包
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-MeteoOpenWeatherMap
免费额度无限制(非商用)60 次/分钟、1M 次/月
是否需注册❌ 不需要✅ 强制要 API Key
精度11km25km(免费) / 1km(付费)
多模型集成✅ 6+ 模型自动选优❌ 单一数据源
数据延迟实时实时
数据变量100+50+
自托管✅ Docker / Ubuntu❌ 不开源
商业许可$29/月起$40/月起
数据源透明度✅ 完全公开⚠️ 不公开

结论:个人项目首选 Open-Meteo(免费 + 不注册 + 多模型);企业级优先 OpenWeatherMap(成熟 + SLA)。

vs 和风天气(中国本土)

维度Open-Meteo和风天气
中国数据精度11km1-5km
注册要求❌ 免✅ 实名认证
免费额度无限制(非商用)1000 次/天(开发者)
实况天气⚠️ 模型推算✅ 实况站数据
空气质量✅ AQI✅ AQI(更细)
预警信息✅ 官方预警

结论:国内 App 首选和风天气(精度 + 官方数据);国际/出海项目首选 Open-Meteo(多语言 + 全球覆盖)。

vs 彩云天气(按调用付费)

维度Open-Meteo彩云天气
价格免费(非商用)0.001 元/次
短时预报⚠️ 小时级✅ 分钟级降水预报
雷达图
精度11km街道级

结论:彩云适合商业级短临降水(分钟级预报),Open-Meteo 适合全局场景。

vs AccuWeather / Weather.com

维度Open-MeteoAccuWeather
价格免费商业授权贵
数据透明✅ 完全开源❌ 黑盒
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
GitHubgithub.com/open-meteo/open-meteo