Skip to main content

错误响应格式

所有 API 错误返回 JSON:

HTTP 状态码

封锁检测

每个抓取响应都包含 meta.blocked 字段:
meta.blockedtrue 时:
  • 被封锁的代理节点会自动从该域名中排除
  • 您的下一个请求将路由到其他代理节点
  • 响应仍然包含完整的目标响应体供您检查
您可以查看某个域名的按代理节点健康状态:
健康端点返回三种状态:availablelimited(临时排除)和 unavailable(较长时间排除)。代理节点会自动恢复。

重试策略

速率限制 (429)

使用指数退避策略:等待 1 秒、2 秒、4 秒,依此类推。通过 GET /usage 查看当前速率限制状态。

被封锁 (meta.blocked = true)

无需客户端重试逻辑。API 会自动将您的下一个请求路由到其他健康的代理节点。正常继续发送请求即可。

浏览器验证失败 (502)

如果您在 /browser 上使用 expectSelectorexpectContains,且渲染页面不匹配,API 会自动在不同节点上重试后再返回错误。第一次失败无需客户端重试。

超时 (504)

  • 增加 POST 请求体中的 timeout 字段值(默认:30 秒)
  • 对于 /browser,浏览器启动需要约 2-5 秒 — 请相应设置 timeout
  • 使用 X-Geo 选择地理位置更接近目标的代理节点
  • 使用 GET /debug/pick?url=... 预览将选择哪个代理节点

无可用代理节点 (502)

该域名的所有代理节点暂时被排除。稍等片刻后重试,或使用 GET /network/health/{domain} 检查恢复状态。

WebSocket 错误

AMQP 错误

AMQP 错误以 SSE 事件形式交付:
错误事件发送后,SSE 流将关闭。

常见错误

缺少目标 URL

无效的地理代码

WebSocket 连接超时

包含 apiKeyurl 的第一条 JSON 消息必须在打开 WebSocket 连接后 10 秒内发送,否则连接将以关闭代码 1008 断开。