跳到主要内容

错误

错误一律是 application/problem+json(RFC 9457)。请依 code 分支;detail 是给人看的,可能改写。

{
"type": "https://data.cyberun.cloud/docs/errors#invalid_argument",
"title": "Bad Request",
"status": 400,
"code": "invalid_argument",
"detail": "symbols is 1 to 100 comma-separated symbols",
"param": "symbols"
}

服务器能估计等待时间时会带 retry_after。pending 与 ready 只出现在 data_pending。

错误码​

代码HTTP意思该怎么做
unauthenticated401密钥缺少、格式错误、过期或已撤销修正密钥;不要原样重试
forbidden403密钥缺少 kind、权限、盘口档数或 scope请管理员补上缺少的部分
not_found404没有这个路由、商品、导出或文件检查路径或代号;导出过期就重新提交
invalid_argument400参数缺少、格式错误或超出范围修正请求;param 指出字段
ambiguous_symbol409一个拼法在该日对到多个商品用完整代号或 instrument_id
unsupported_resolution400K 线比数据更细、数据集不支持,或商品没有历史改用较粗周期或别的数据集
version_unavailable410旧的 catalog_version 或 resume_token 已不保留去掉固定版本重查,或重新订阅
resource_exhausted413 或 429请求或答案太大,或碰到流上限缩小请求;429 依 retry_after 重试
quota_exceeded429每把密钥的请求、输出、任务或流上限已用完等 retry_after 后重试;请管理员调大政策
data_pending503交易日、导出档或前一日还在准备依 retry_after 用同一请求重试
resync_required503流用户端落后,队列溢出用最后的 resume_token 重连
unavailable503相依服务或日历暂时不可用退避重试
internal500未预期的服务器错误重试一次,再回报时间或请求信息

JSON 内容过大与 MCP 答案过大回 413;流订阅超过上限回 429,数字见 限制。同一个代码可能有两种状态;请依代码分支,状态只用于 显示。

重试​

  • data_pending:用同一请求重试。不要重新创建工作;缺少的 instrument-day 已 在队列中。
  • unavailable、internal:指数退避加 jitter。
  • resource_exhausted 且 429:等 retry_after 后重试。
  • quota_exceeded:等 retry_after;一直碰到代表政策对这个工作量太小。
  • version_unavailable:不要重试固定版本;去掉 pin 或重新订阅。
  • 其他:先修正请求或密钥。

Python SDK 会重试忙碌响应与网络错误;PendingTimeout 代表等到 pending_timeout 数据还在准备。

认证与权限​

除了 GET /v2/openapi.json,每个 /v2 路由都需要 Authorization: Bearer vmk_...。目录需要任何有效密钥。数据需要数据集 kind、 history,快照还需要盘口档数。实时需要 live;导出除了数据权限还需要 export。

403 会指出缺少的能力。见 API 密钥与管理。