身份认证
SkinPricer 使用 API 密钥认证。每个请求都以 Authorization: ApiKey <key> 请求头携带密钥。唯一的例外是市场健康状态接口,它是公开的、无需密钥。
大多数接口都需要密钥:价格、NBBO、挂单深度、历史数据、定价建议、套利与磨损数据都要求 API 密钥。请在每个请求的 Authorization 头中携带。支持两种头格式,多数 HTTP 客户端无需改动即可使用:
请求头格式说明
Authorization: ApiKey <key>推荐。
Authorization: Bearer <key>同样支持,兼容 OAuth 风格客户端。
获取密钥
注册账号后,在账号页面的 API 密钥选项卡生成密钥。密钥以 sp_live_ 开头(测试环境密钥为 sp_test_)。套餐的速率限制与每月配额由账号下所有密钥共享,因此多余的密钥用于隔离与轮换(例如每个环境一个),并不会增加吞吐量。每个订阅最多持有 5 个有效密钥;吊销任意一个不影响其余密钥。
公开接口 vs 密钥接口
几乎所有接口都需要密钥。唯一例外是市场健康状态:公开(无需密钥)、按 IP 限流。完整清单见我该用哪个接口?。
请求头缺失或错误时
状态码含义
401缺少
Authorization 头、使用了不支持的认证方案(非 ApiKey / Bearer),或密钥未知、未激活、已过期、已吊销。403密钥有效,但订阅未激活或已过期,或当前套餐不包含此接口。
简而言之:401 表示密钥本身不可用(缺失 / 方案错误 / 未知 / 未激活 / 过期 / 已吊销);403 表示密钥可以识别,但账号或套餐无权访问(订阅未激活或过期,或套餐不含该功能)。
密钥格式
密钥按环境加前缀:生产密钥为 sp_live_<hex>,测试密钥为 sp_test_<hex>,后接随机十六进制。账号页面会显示前缀,便于一眼区分。
保管好你的密钥
像对待密码一样对待密钥。请在服务端调用 API,绝不要在会暴露密钥的客户端代码中调用。密钥一旦泄露立即轮换,并为每个环境使用独立密钥,这样吊销任何一个都不会造成停机。