5 个免 Key 的免费汇率 API 实测对比(2026)
实测对比 5 个完全无需注册和 API key 的免费汇率 API。涵盖更新频率、货币覆盖、历史数据、限速规则,以及可直接复制的 curl 示例。
上面是文章摘要,下面进入正文深读。可以配合目录逐段阅读,不会丢掉上下文。
5 个免 Key 的免费汇率 API 实测对比(2026)
如果你在赶 demo、做汇款工具、旅行 App,或者只是写个小脚本算一下美元换欧元 —— 你最不想做的事就是去注册账号、绑信用卡、轮换 API key。
这是 5 个当下完全免费、无需注册、直接 GET 就能用的汇率 API 实测对比。文章里每一段 curl 都在写稿当天(2026-05-16)对真实接口跑过,全部活体。
一句话推荐:
| 你的场景 | 选哪个 | 为什么 |
|---|---|---|
| 最简单的"给我美元汇率" | open.er-api.com | 一行 GET、166 个币种、JSON |
| 需要历史数据(任意日期) | Frankfurter | 有时间序列接口、ECB 官方数据 |
| 要最广的币种覆盖(含加密货币) | Fawazahmed0 currency-api | 341 个币种、jsdelivr CDN 静态文件 |
| 欧元区官方参考汇率 | ECB 官方 XML | 欧洲央行直接发布 |
| 加元相关、加拿大官方 | Bank of Canada Valet | 央行级权威 |
为什么大家在搜"免 key"
搜"no API key"的人,从来不是不懂鉴权。他们要的是下面三件事之一:
- 原型阶段省时间 —— 黑客松、临时脚本、一次性活儿,衡量指标是"几秒能跑通",不是月账单
- 避免 key 泄漏风险 —— 没有 secret 就泄漏不了、不会误 commit 到 GitHub、也不用搞 vault
- 避免被商用厂商锁定 —— 大多数"免费"但要 key 的服务,会把好东西藏在付费档后面,顺便记录你的所有流量
对低频读取每日更新的公开数据(汇率正是)这种场景,免 key 是完全站得住脚的生产选择。什么时候该换商用?文末会讲清楚阈值。
1. open.er-api.com —— 最简单粗暴的答案
ExchangeRate-API 在 open.er-api.com 提供一个免 key 端点。这是"大多数人真正需要"的最佳近似。
curl https://open.er-api.com/v6/latest/USD
返回(节选):
{
"result": "success",
"base_code": "USD",
"time_last_update_utc": "Sat, 16 May 2026 00:02:31 +0000",
"rates": {
"EUR": 0.859854,
"JPY": 158.55,
"CNY": 6.8106,
"GBP": 0.7401,
"...": "..."
}
}
| 属性 | 数值 |
|---|---|
| 币种数量 | 166 |
| 更新频率 | 每天一次(24h) |
| 基准货币 | 免 key 端点只能 USD(其他 base 要 key) |
| 历史数据 | ❌(要 key) |
| HTTPS | ✅ |
| 限速 | Fair-use,无明示硬限 |
| 格式 | JSON |
适合: 任何以美元为主货币、"昨天的汇率"够用的 App。 注意: 必须以 USD 为 base。如果你的主货币是 EUR/CNY 等,要么客户端自己交叉换算(rate[X] / rate[Y]),要么换别的 API。
2. Frankfurter —— 唯一支持历史数据的免 key API
Frankfurter(域名最近从 api.frankfurter.app 迁到了 api.frankfurter.dev,旧域名现在返回 301)基于欧洲央行参考汇率,是本文 5 个里唯一带真正历史数据接口的免 key 选项。
# 当日最新
curl 'https://api.frankfurter.dev/v1/latest?base=USD&symbols=EUR,JPY,CNY'
# 任意历史日期(可回溯到 1999)
curl 'https://api.frankfurter.dev/v1/2024-01-02?base=USD&symbols=EUR'
# 时间序列
curl 'https://api.frankfurter.dev/v1/2026-01-01..2026-05-16?base=USD&symbols=EUR'
最新接口返回:
{
"amount": 1.0,
"base": "USD",
"date": "2026-05-15",
"rates": { "CNY": 6.8106, "EUR": 0.85999, "JPY": 158.55 }
}
| 属性 | 数值 |
|---|---|
| 币种数量 | ~30(ECB 参考集) |
| 更新频率 | 每天一次,TARGET2 工作日约 16:00 CET |
| 基准货币 | 支持的币种里任选 |
| 历史数据 | ✅ 可回溯到 1999 年 |
| 时间序列 | ✅ 单接口搞定 |
| HTTPS | ✅ |
| 限速 | 未公布,做个有礼貌的客户端就行 |
| 格式 | JSON |
适合: 需要画图、历史回填、"显示我当时下单那天的汇率"等场景。 注意: 只有 30 来个主流币种,没有冷门交叉盘,没有加密货币。
3. Fawazahmed0 currency-api —— 覆盖最广,走 CDN
这个跟其他几个结构不同:它不是 API 服务,而是一份每天自动更新的静态 JSON 数据集,通过 jsdelivr CDN 分发。意味着:没有限速、全球边缘缓存、341 个币种(含加密货币)。
# USD 对所有 ~341 个币种
curl https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd.json
# 单一币对(USD → EUR)
curl https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd/eur.json
# 指定历史日期
curl https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@2024-01-02/v1/currencies/usd.json
返回:
{
"date": "2026-05-16",
"usd": {
"eur": 0.86023046,
"cny": 6.80859036,
"jpy": 158.62,
"btc": 0.0000172,
"...": "..."
}
}
| 属性 | 数值 |
|---|---|
| 币种数量 | 341(含加密货币) |
| 更新频率 | 每天 |
| 基准货币 | 任选 |
| 历史数据 | ✅(URL 里指定日期) |
| HTTPS | ✅(jsdelivr 提供) |
| 限速 | 没有 —— 它就是个静态 CDN 文件 |
| 格式 | JSON |
适合: 需要冷门币、加密货币、想要 CDN 边缘零延迟的 App。 注意: 这是社区维护的数据集。涉及金融合规的关键路径,建议用央行级官方源。仓库在 GitHub,顺手 star 一下。
4. 欧洲央行 XML 源 —— 最权威的源头
如果你要"中介零层"的央行级汇率,欧洲央行(ECB)发布的每日 XML 文件已经在同一个 URL 稳定服务了 20 年:
curl https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml
返回(节选):
<Cube>
<Cube time='2026-05-16'>
<Cube currency='USD' rate='1.1628'/>
<Cube currency='JPY' rate='184.36'/>
<Cube currency='GBP' rate='0.87050'/>
<Cube currency='CNY' rate='8.0210'/>
</Cube>
</Cube>
| 属性 | 数值 |
|---|---|
| 币种数量 | 30(均对 EUR) |
| 更新频率 | TARGET2 工作日约 16:00 CET |
| 基准货币 | 仅 EUR |
| 历史数据 | ✅(另有 90 天和"1999 至今"两个归档 URL) |
| HTTPS | ✅ |
| 限速 | 未公布;明显是面向定时轮询而非高频读取设计 |
| 格式 | XML |
适合: 需要最权威机构源、或本身就在欧元区不需要美元 base 的场景。
注意: XML 不是 JSON,要用 xml2js、lxml 等解析。base 只能是 EUR。
5. 加拿大央行 Valet —— 加元的官方源
如果你做加拿大相关的事,加拿大央行(Bank of Canada)有一个干净的免 key REST API,叫 Valet。是 CAD 相关币对的官方源。
# 最新 USD/CAD 观测
curl 'https://www.bankofcanada.ca/valet/observations/FXUSDCAD/json?recent=1'
# 最近 30 天
curl 'https://www.bankofcanada.ca/valet/observations/FXUSDCAD/json?recent=30'
返回:
{
"observations": [
{ "d": "2026-05-15", "FXUSDCAD": { "v": "1.3752" } }
]
}
| 属性 | 数值 |
|---|---|
| 币种数量 | 央行公布的所有 CAD 币对(~25) |
| 更新频率 | 每工作日一次,约 16:30 ET |
| 基准货币 | CAD(每个 series 是一个币对) |
| 历史数据 | ✅(可追溯到每个 series 起始日) |
| HTTPS | ✅ |
| 限速 | Fair-use,无明示硬限 |
| 格式 | JSON / XML / CSV(URL 可选) |
适合: 加拿大金融科技、需要监管级 CAD 数据源的场景。 注意: 每个币对是独立 series,一次请求一对。
什么时候该升级到付费
诚实的阈值:
- 需要日内/实时更新 → 要商用源(Open Exchange Rates 付费档、ExchangeRate-API 付费档、Frankfurter 不提供实时)。本文 5 个全部上限是"每日一次"。
- 需要 SLA 或合同 → 商用厂商,或自己拉付费源的快照。
- 超过 10 万 QPD → 查一下各家 ToS。大多数对正当用途会容忍,但出于礼貌还是在你这边做积极缓存。
- 任何受监管业务(外汇交易、券商、AML)→ 用监管批准的源。本文 5 个全是参考汇率,不是交易级汇率。
对于 95% 的副业项目、内部工具、小型 SaaS,你压根碰不到这个线。
总结 —— 你的默认选择
| 如果别的都不记得… | …那就用 |
|---|---|
| 通用"给我汇率" | open.er-api.com |
| 需要历史数据 | Frankfurter |
| 需要加密货币或冷门币 | Fawazahmed0 currency-api |
| 需要央行官方源 | ECB(欧元区)或 Bank of Canada Valet(加拿大) |
截至 2026 年 5 月,5 个全部活着、免费、免 key —— 上面每一段代码都在真实接口上验证过。
XScanHub 相关阅读:
快速跳到对应段落
下一步
读完后可以继续回到工具目录,对比具体产品。
去看工具