API 身份验证
了解如何通过查询参数或请求头发送 MetalAPI 的 API 密钥,如何将密钥限制为仅供您自己的域名使用,以及在生产环境中妥善保管密钥的最佳做法。
入门 阅读约 4 分钟
API 密钥
每个 API 请求都使用属于您账户的 API 密钥进行身份验证。密钥格式为 mk_live_ 后跟 32 个字符,可在控制台的 API keys 中创建。
我们只存储每个密钥的 SHA-256 哈希值,因此完整密钥仅在创建时显示一次。如果丢失了密钥,请创建一个新密钥并吊销旧密钥。根据您的套餐,您可以同时持有多个密钥。为每个应用或环境分别使用一个密钥是个好习惯。
发送密钥的三种方式
您可以选择最适合您 HTTP 客户端的方式传递密钥,三种方式完全等效:
bash
# 1. 查询参数
curl "https://metalapi.com/api/v1/latest?api_key=YOUR_API_KEY"
# 2. Authorization 请求头(Bearer 令牌)
curl "https://metalapi.com/api/v1/latest" \
-H "Authorization: Bearer YOUR_API_KEY"
# 3. X-API-Key 请求头
curl "https://metalapi.com/api/v1/latest" \
-H "X-API-Key: YOUR_API_KEY"生产环境中建议使用请求头。我们会在写入请求日志之前从查询字符串中移除密钥,但您自己的日志、代理和错误追踪工具可能会保留完整的 URL。
缺少密钥时返回错误 101,密钥未知或已吊销时返回 102,HTTP 状态码均为 401。
域名限制密钥
在客户端 JavaScript 中调用 API 会将您的密钥暴露给每一位访问者。如果必须这样做,请先在控制台中将密钥限制为仅供您自己的域名使用。
受限密钥只响应 Origin(或 Referer)请求头与允许的域名或其子域名相匹配的浏览器请求。来自其他网站的请求会被拒绝并返回错误 107(HTTP 403),且不计费。
没有 Origin 或 Referer 请求头的请求(例如来自您后端的服务器到服务器调用、定时任务或脚本)始终允许。因此,一个受限密钥可以同时服务于您的网站和服务器。以允许列表中包含 example.com 为例:
bash
# 允许:来自允许域名的子域名的浏览器请求
curl "https://metalapi.com/api/v1/latest?currencies=XAU" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Origin: https://shop.example.com"
# 以 107 拒绝:来源不在列表中
curl "https://metalapi.com/api/v1/latest?currencies=XAU" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Origin: https://another-site.com"
# 允许:不带 Origin 或 Referer 的服务器到服务器请求
curl "https://metalapi.com/api/v1/latest?currencies=XAU" \
-H "X-API-Key: YOUR_API_KEY"妥善保管密钥
- 将密钥保存在服务器端,并从环境变量或密钥管理服务中加载。切勿将其提交到 Git。
- 为每个应用和环境使用单独的密钥,这样吊销其中一个时不会影响其他密钥。
- 如果密钥泄露,请创建替换密钥并完成部署,然后在控制台中吊销旧密钥。
- 始终通过
https://调用 API。 - 对于公开网页,可嵌入小组件无需在页面中放置任何密钥即可显示实时价格。
javascript
// 仅限服务器端:密钥永远不会到达浏览器
const res = await fetch("https://metalapi.com/api/v1/latest?currencies=XAU,XAG", {
headers: { "X-API-Key": process.env.METALAPI_KEY },
});相关指南
速率限制与套餐了解 MetalAPI 各套餐的每月请求配额、每分钟速率限制和价格更新间隔如何运作,哪些请求会计费,以及如何通过响应头和 /usage 端点跟踪您的用量。阅读约 5 分钟MetalAPI 快速入门注册免费 MetalAPI 账户,获取 API 密钥并发出第一个请求,查询黄金、白银、铂金和钯金的实时价格。几分钟即可完成从注册到收到首个 JSON 响应的全过程。阅读约 5 分钟可用端点MetalAPI 全部端点及参数说明:latest、historical、convert、timeframe、change、OHLC、carat、symbols、usage 和 stream,每个端点均附有请求示例,便于快速查阅与集成。阅读约 9 分钟
准备好开始构建了吗?
创建免费账户获取 API 密钥,或在 API 参考中浏览所有端点。