在 Reddit 上搜索黄金价格 API,帖子的结构几乎总是一样的。有人在构建行情看板、价格提醒、交易机器人,或者一个需要报价贵金属的在线商店,他们需要一个可以从代码中拉取的实时黄金价格。在接入任何东西之前,他们会在 r/algotrading、r/webdev 和 r/golang 上提出同样几个问题:有没有免费套餐?数据有多新鲜?限流是多少?可以商用吗?数据可信吗?
本文直接回答这些问题,以 goldprice.dev 作为实际示例。阅读无需注册,下面的第一个 API 调用不需要密钥即可运行。
goldprice.dev 是什么,又不是什么
它是面向开发者的商品定价 API:黄金、白银和铜,通过位于 https://api.goldprice.dev 的单一认证 REST 端点提供服务。每个响应都包含各数据源的价格和时间戳、经过交叉验证的数据陈旧标志,以及价差指标,让你的代码能够发现某个上游数据源是否正在滞后,而不是默默失效。MCP 服务器在所有套餐中均已包含,包括免费套餐。
它不是经纪商,也不是结算报价源。这些价格是指示性参考数据,用于展示、分析和告警。如果你需要可执行的交易报价来结算一笔交易,任何公开的黄金价格 API 都不是合适的工具,本 API 也不例外。
有免费套餐吗?
有,而且不需要绑定信用卡。免费套餐提供每月 1,000 次调用、每分钟 30 次请求,涵盖黄金(XAU)的实时现货价格。付费套餐增加了白银和铜、期货结算数据、更高的限额以及商业使用权:
| 套餐 | 价格 | 每月调用次数 | 新增内容 |
|---|
| Free | $0 | 1,000 | XAU 现货、MCP、无需信用卡 |
| Basic | $10/月 | 20,000 | + 黄金期货 |
| Pro | $30/月 | 100,000 | + 白银、铜、商业用途 |
| Realtime | $80/月 | 1,000,000 | + WebSocket 逐笔行情流 |
价格多久更新一次?
实时现货价格是持续更新的数据,而非每日一次的快照。期货结算价格按交易所的结算时间表更新。这个 API 的意义在于你永远不需要猜测自己看到的是哪一种:每个响应都会为每个数据源标注各自的 timestamp,并在某个值超出其预期刷新窗口时设置 is_stale。你直接从响应体中读取数据新鲜度,而不是盲目相信一个笼统的"实时"标签。
速率限制是多少?
免费套餐是每分钟 30 次请求;付费套餐分别为 120 次和 500 次。每个响应都会返回标准的 X-RateLimit-Remaining 请求头,因此正确的做法是读取该请求头,在剩余次数不多时主动降速,而不是盲目轮询然后触发 429 错误。对于大多数应用,一个客户端短期缓存——TTL 与底层数据实际变化的频率相匹配——就足以让你舒适地维持在免费套餐内。
如何进行鉴权?
使用 Bearer Token。密钥以 ga_live_ 为前缀,放入 Authorization 请求头中。此外还有一个匿名接口,每个 IP 每小时限制 100 次请求,返回精简响应(价格、买价、卖价、按成色和克重的换算表,以及数据陈旧字段),供你在注册前先行测试。通过鉴权后可获取完整响应:开盘价、最高价、最低价、前收盘价、涨跌幅,以及跨数据源的价差字段。
我能看到这个数字从哪里来吗?
可以,而且这正是大多数 API 隐藏的部分。每个响应都包含一个 sources[] 数组,每行对应一个上游数据源,各自有独立的价格和时间戳。当各数据源出现分歧时,响应中会带有 divergence_bps 和 divergence_flag,让你可以自行设定容忍阈值,而不是盲目相信一个无来源可查的混合数字。如果你在构建任何一个价格出错会造成损失的系统,这种可见性正是选择结构化 API 而非抓取网页的理由。
可以商业使用吗?
免费套餐和 Basic 套餐仅供个人和评估使用。商业使用——即在你发布的产品中展示价格——从 Pro 套餐起支持,并需要进行署名。如果你要向自己的用户展示黄金价格,Pro 套餐是最低要求。
我的 LLM 智能体可以使用它吗?
可以。MCP 服务器包含在所有套餐中,包括免费套餐。你只需在 Claude、Cursor 或任何支持 MCP 的运行时中添加一个配置块,智能体就能直接获取实时价格,无需手写任何工具代码。数据与 REST API 提供的完全相同。如需了解设置细节,可查阅完整的 MCP 使用指南。
最简单的调用
无需密钥,无需任何依赖:
curl https://api.goldprice.dev/v1/prices?symbol=XAU-USD-SPOT
你将得到包含价格、买价、卖价、按成色分克重的换算明细、贡献数据源以及陈旧标志的 JSON 响应。这一个调用就足以将一个实时、真实的黄金价格嵌入你正在构建的任何东西中。当你需要完整响应体和更高限额时,申请一个免费密钥只需一分钟。
如需特定语言的版本,Fetch live gold prices in JavaScript 完整覆盖了 REST 调用的全流程,Caching gold prices and staying inside rate limits 则介绍了如何在大规模场景下使用。