速率限制与套餐
了解 MetalAPI 各套餐的每月请求配额、每分钟速率限制和价格更新间隔如何运作,哪些请求会计费,以及如何通过响应头和 /usage 端点跟踪您的用量。
入门 阅读约 5 分钟
两类限制
每个套餐都有每月配额(每个自然月可计费的请求数),以及保护 API 免受突发流量冲击的每分钟限制。配额在每月 1 日 00:00 UTC 重置。
各套餐的更新间隔也不同,它决定了价格的新鲜程度。轮询频率高于更新间隔只会重复返回相同的价格,白白消耗配额。
套餐一览
- Free:每月 100 次请求,每日更新,每分钟 10 次请求
- Lite:每月 1,000 次请求,每 30 分钟更新,每分钟 30 次请求
- Standard:每月 10,000 次请求,每 10 分钟更新,每分钟 60 次请求
- Advanced:每月 50,000 次请求,每 60 秒更新,每分钟 120 次请求
- Pro:每月 100,000 次请求,每 60 秒更新,每分钟 300 次请求
- Ultra:每月 500,000 次请求,每 15 秒更新,每分钟 600 次请求
- Business:每月 500,000 次请求,每 15 秒更新,每分钟 600 次请求,另含正常运行时间 SLA
- Enterprise:每月 1,500,000 次请求,每 5 秒更新,每分钟 1,200 次请求
功能也随套餐升级而增加:按成色查询金价需要付费套餐,买卖价从 Standard 起提供,Webhook 提醒从 Advanced 起提供,实时流从 Pro 起提供。当前价格请参见定价。
哪些请求会计数
- 每次成功调用数据端点计为一次请求,无论返回多少个品种。
/symbols和/usage免费,从不计数。- 因
104(每分钟限制)、106(不在您的套餐内)、107(来源不被允许)或服务器错误(500、503)而被拒绝的请求不计费。 - 因查询本身的问题而失败的请求会计数,包括校验错误
201至210以及300(无结果),因此请在发送前校验日期和品种代码。
跟踪用量
每个经过身份验证的响应都会在响应头中报告您的配额:
http
X-RateLimit-Limit: 10000
X-RateLimit-Remaining: 9876
X-RateLimit-Used: 124
X-RateLimit-Reset: 1793491200
X-RateLimit-Reset-Date: 2026-11-01T00:00:00.000Z
X-RateLimit-Plan: Standard
X-RateLimit-Minute-Limit: 60
X-RateLimit-Minute-Remaining: 59JSON 正文的 rate_limit 对象中也包含相同的数值。reset 是 Unix 时间戳,reset_date 是以 ISO 8601 表示的同一时刻,即下个月月初(UTC)。
查看用量而不消耗配额
在数据看板或监控系统中调用 /usage,它是免费的:
json
{
"success": true,
"usage": {
"requests_made": 124,
"requests_quota": 10000,
"requests_remaining": 9876,
"plan": "standard",
"period_start": "2026-10-01T00:00:00.000Z",
"period_end": "2026-11-01T00:00:00.000Z"
},
"result": { "plan": "Standard", "used": 124, "total": 10000, "remaining": 9876 },
"rate_limit": {
"limit": 10000,
"remaining": 9876,
"reset": 1793491200,
"used": 124,
"plan": "Standard",
"reset_date": "2026-11-01T00:00:00.000Z"
}
}达到限制时
两种限制都会返回 HTTP 状态码 429 和错误正文:
104too_many_requests:当前这一分钟内的请求过多。响应包含Retry-After响应头,指明需要等待的秒数。请降低请求频率后重试。105quota_exceeded:每月配额已用完。在配额于 1 日(UTC)重置之前,请求将持续失败。升级套餐会立即生效。
json
{
"success": false,
"error": {
"code": 105,
"type": "quota_exceeded",
"info": "User has reached or exceeded his subscription plan's monthly API request allowance"
}
}控制在配额之内
- 至少按套餐的更新间隔缓存响应。
- 在一次调用中请求所需的全部品种,而不是每个品种单独调用一次。
- 每 10 分钟轮询一次,每月约消耗 4,500 次请求;每分钟轮询一次,约消耗 45,000 次。请选择与轮询频率相匹配的套餐。
- 在 Pro 及以上套餐中,使用实时流代替轮询,并使用价格提醒来响应阈值。
更多技巧请参见最佳实践。
相关指南
MetalAPI 快速入门注册免费 MetalAPI 账户,获取 API 密钥并发出第一个请求,查询黄金、白银、铂金和钯金的实时价格。几分钟即可完成从注册到收到首个 JSON 响应的全过程。阅读约 5 分钟API 身份验证了解如何通过查询参数或请求头发送 MetalAPI 的 API 密钥,如何将密钥限制为仅供您自己的域名使用,以及在生产环境中妥善保管密钥的最佳做法。阅读约 4 分钟可嵌入价格小组件使用可嵌入小组件在任意网站上显示实时金属价格,无需编写后端代码,页面中也不会出现 API 密钥。在控制台中完成配置后复制嵌入代码,即可用于 HTML、WordPress 或 Shopify。阅读约 4 分钟
准备好开始构建了吗?
创建免费账户获取 API 密钥,或在 API 参考中浏览所有端点。