← 返回博客

免费汇率 API:数据来源、覆盖范围与限制

免费汇率 API:数据来源、覆盖范围与限制

免费汇率 API 适合做什么

免费汇率 API 返回的是参考汇率:每种货币每天发布一个汇率,而不是实时交易报价。这恰好满足大多数应用的需求。按访客所在地的货币显示价格、估算发票金额、制定旅行预算或汇总月末报表,使用每日汇率都能很好地完成。它做不到的是告诉你此刻银行会给你什么汇率,因此了解限制与了解功能同样重要。

ipto 的货币端点正是基于这一理念构建的。你可以在货币转换器中试用同样的数据,也可以通过 /v1/currency/convert、/v1/currency/rates 和 /v1/currency/history 在代码中调用,详见 API 文档。

汇率来自哪里

主要数据来源是开放的 fawazahmed0/currency-api 数据集。它属于公有领域,无需 API 密钥,每天更新。它由两个相互独立的内容网络提供服务,ipto 会按顺序依次尝试,因此单点故障不会导致汇率停止更新。服务按每日计划刷新数据并存入高速缓存,所以页面上的换算无需等待外部请求。

欧洲央行发布的参考汇率则是另一回事,在这里只是后备方案。如果主数据源的两个网络都不可用,ipto 会继续提供欧洲央行发布的约 31 种主要货币,而不是完全丢失汇率数据。正常运行时,你看到的并不是欧洲央行的数据。

覆盖范围

ipto 支持 154 种世界货币,这些货币是从规模大得多的源列表中筛选出来的。源数据还包含加密货币和并非支付货币的记账单位,这些都被有意排除在外。每种受支持的货币都有名称和国旗,因此转换器展示的是易读的信息,而不只是一个代码。

历史数据

历史端点返回某个货币对最近 30、60 或 90 天的每日参考汇率,转换器页面上的图表绘制的也是这些数据。历史数据可用于发现趋势、核对交易入账当天的汇率,以及检验看起来不对劲的数字。它是一个 90 天的窗口,而不是多年的档案库。如果审计工作需要追溯到 1999 年的汇率,请使用发布该档案的数据源,并自行保留一份副本。

需要提前考虑的限制

  • 每日更新,而非实时。汇率是单一的每日数值。请勿将其用于交易或支付结算。
  • 不含手续费或加点。银行和银行卡组织会加收价差。客户的实际成本会与参考汇率不同。
  • 周末和节假日。遇到缺失的日期,请沿用前一个可用的汇率,而不要当作错误。
  • 缓存时长。按设计,汇率最多可能是一天前的数据。请在换算金额旁标注日期。

与 IP 地理定位配合使用

最常见的搭配是先用 IP 查询端点根据访客的 IP 地址判断其所在国家(该端点同时会返回该国的货币),然后把你的价格换算成该货币。由于地理定位只是近似结果,请始终允许访客自行切换货币;同时要记住,使用 VPN 的访客可能显示为位于另一个国家,VPN 检测器可以帮助你识别这种情况。

总结

免费参考汇率适合用于展示、估算和报表,不适合任何涉及资金划转的场景。只要不越过这条界线,对这类任务来说,免费的每日汇率 API 比付费数据源更简单、更便宜,准确度也同样够用。

直截了当的答案

不是主要来源。汇率来自一个每日更新的开放数据集,涵盖 154 种货币。欧洲央行的参考汇率(约 31 种主要货币)仅在主数据源无法访问时作为紧急后备使用。
任何受支持货币对最近 30、60 或 90 天的每日参考汇率,可在转换器页面的图表和历史端点中获取。
不是。它们是每日参考汇率,不含银行或银行卡手续费。请用于展示、估算和报表,不要用于交易或支付结算。
← 返回博客