错误码与处理方式

查 Gateway 回传的状态码代表什么、该先检查哪里,以及怎么处理。

状态码#

跳到:400 · 401 · 402 · 403 · 429 · 502 · 503 · 5xx

联络支持时附上 request_id

每个错误回应都带 request_id。联络支持时附上它,我们就能找到这一笔。

状态码代表什么先检查怎么处理
400请求格式错误缺栏位、JSON 格式错误,或用了该格式不支持的写法对照该端点的参数表修正后再送
401密钥无效有没有带密钥、是否以 atp- 开头、是否已停用或过期到「API 密钥」确认或重新建立;header 位置见验证方式
402点数用完控制台「用量」的可用点数到「账单」充值;团队组织再到「资源」拨点数
403模型未在此项目开通GET /v1/models 回传的模型 ID改用清单内的模型,或到「资源」替项目加上模型
429速率限制、配额或供应商冷却中回应的 Retry-After依 Retry-After 等待后重试
502供应商连线失败或逾时—可以直接重试
503这个模型的所有供应商暂时无法使用Retry-After: 6060 秒后重试
5xx供应商或 Gateway 错误回应里的 request_id在控制台「请求记录」用 request ID 查询;联络支持时附上

看请求在哪里被挡下#

选一个情境,看请求被哪一道检查挡下、回应长什么样子。

一次请求在 ATP 里的路径选一个场景,看请求停在哪一站、返回的是什么。
场景
响应

200 OK抵达 记录与计费

响应头
x-ratelimit-limit-requests: …
x-ratelimit-remaining-requests: …
x-ratelimit-reset-requests: …

响应体是供应商的回应,格式与你使用的 SDK 一致。限流响应头告诉你还剩多少额度。

记录与计费 — 输入与输出 tokens 计量后以点数从项目余额扣除;这次调用会出现在控制台的请求记录里。

对话补全(curl)这一站在请求里没有对应的行。
curl https://api.atptoken.ai/v1/chat/completions \
  -H "Authorization: Bearer atp-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model from GET /v1/models>",
    "messages": [{"role": "user", "content": "hi"}]
  }'
文字版
一次请求在 ATP 里的路径
步骤检查拦截时响应
1. 客户端带项目密钥发出——
2. 密钥校验密钥有效且已启用401 Unauthorized{"message":"API key has been revoked or does not exist.","error":"token_revoked"}
3. 模型白名单项目已开通该模型403 Forbidden{"error":{"message":"model not available for this project","type":"permission_denied","request_id":"..."}}
4. 点数项目还有余额402 Payment Required错误响应体沿用 SDK 的错误格式:钱包或点数池已用完。充值后恢复;重试没有用。
5. 限流未超出限制429 Too Many Requests错误响应体沿用 SDK 的错误格式:限流、配额或供应商冷却。退避后重试;有 Retry-After 就按它等。
6. 供应商路由与故障转移——
7. 记录与计费按点数计量200 OKx-ratelimit-limit-requests, x-ratelimit-remaining-requests, x-ratelimit-reset-requests — 响应体是供应商的回应,格式与你使用的 SDK 一致。限流响应头告诉你还剩多少额度。

200 但内容为空#

请求可能回传 200 OK 却是空消息——不是错误,只是没有文字。这几乎都是由 request 参数造成,而非失败。最常见的原因是 推理模型(extended thinking)的 max_tokens 设太低:整个额度在产生任何可见输出前就被内部推理吃完,于是内容回空。

在本平台上,这种请求通常会显示零 token 用量、也不会扣点数——空的 200 加上空的 usage,就是这个情况的特征,不是计费 bug。解法:把 max_tokens 调高到「思考预算 + 预期输出」都够用,或关闭 extended thinking。在假设有文字前,一律先检查 finish_reason / stop_reason 与 usage。

这页有帮助吗?