# API 限流与重试策略

按状态码、幂等性和错误类型设计有限退避，避免重复授权和请求风暴。

重试只适用于暂时性且可安全重放的失败。认证、资格和参数错误需要先修正，不能依靠重试恢复。

## 可重试

- 连接超时、临时 5xx 和明确要求稍后重试的响应。
- 登录态 POST 重试复用原 `requestId`。
- GET 每次都是新的提取，应由调用方限制重放。

## 不可自动重试

- 400 参数错误。
- 401 登录态失效。
- 403 实名或权限门禁。
- 407 代理认证失败和明确合规拒绝。
- 账户 API 令牌无效导致的 401，以及实名或权限门禁导致的 403。

## 退避

- 读取服务端提供的等待提示。
- 使用指数退避并加入随机抖动。
- 设置最大次数和总截止时间。

## 保护

- 对调用方、任务和目标分别限流。
- 白名单 OpenAPI 按令牌独立计数：查询 60 次/分钟，新增和删除分别 10 次/分钟。
- 无效令牌尝试另按来源 IP 限流；生产共享限流存储不可用时返回 503，不会放行请求。
- 批量响应为 `10431` 时只重试修正后的 `failed_items`，不要重放已经成功的项目。
- 熔断持续失败链路并进入人工检查。
- 监控重试率而不只看最终成功率。
