入门
错误
错误格式、状态码以及何时重试。
错误使用常规的 HTTP 状态码,并始终返回相同的 JSON 结构,其中包含稳定的、机器可读的错误码。
错误格式#
{
"error": {
"code": "rateLimited",
"message": "Rate limit exceeded",
"retryAfter": 12
}
}error.code 是稳定的,可以放心地据此做分支判断。error.message 是供人阅读的提示,内容可能会变化。部分错误会附加字段:速率限制附带 retryAfter,配额和套餐限制附带 reason,校验错误附带 issues。
错误码#
| 状态码 | 错误码 | 含义 | 可重试? |
|---|---|---|---|
| 400 | validation | 某个参数或请求体无效;详见 error.issues。 | 否 |
| 401 | unauthorized | API 密钥缺失、格式错误或已被吊销。 | 否 |
| 402 | planRequired | 你的套餐不包含 API 访问权限或该功能。 | 否 |
| 403 | forbidden | 该请求不被允许。 | 否 |
| 404 | notFound | 该代币尚未被扫描,或该钱包尚未建立画像。 | 稍后 |
| 409 | conflict | 该请求与当前状态冲突。 | 否 |
| 429 | rateLimited | 每分钟请求过多,或月度配额已用完。 | 是 |
| 500 | generic | 我们这边出了问题。 | 是 |
| 503 | unavailable | 正在维护,或数据提供商容量不足。 | 稍后 |
校验错误#
参数无效时返回 400,并附带 issues 列表,指出出错的字段。
400
{
"error": {
"code": "validation",
"message": "Invalid input",
"issues": [
{
"path": "pageSize",
"message": "Invalid input"
}
]
}
}