错误响应格式
所有 API 错误返回 JSON:HTTP 状态码
封锁检测
每个抓取响应都包含meta.blocked 字段:
meta.blocked 为 true 时:
- 被封锁的代理节点会自动从该域名中排除
- 您的下一个请求将路由到其他代理节点
- 响应仍然包含完整的目标响应体供您检查
available、limited(临时排除)和 unavailable(较长时间排除)。代理节点会自动恢复。
重试策略
速率限制 (429)
使用指数退避策略:等待 1 秒、2 秒、4 秒,依此类推。通过GET /usage 查看当前速率限制状态。
被封锁 (meta.blocked = true)
无需客户端重试逻辑。API 会自动将您的下一个请求路由到其他健康的代理节点。正常继续发送请求即可。浏览器验证失败 (502)
如果您在/browser 上使用 expectSelector 或 expectContains,且渲染页面不匹配,API 会自动在不同节点上重试后再返回错误。第一次失败无需客户端重试。
超时 (504)
- 增加 POST 请求体中的
timeout字段值(默认:30 秒) - 对于
/browser,浏览器启动需要约 2-5 秒 — 请相应设置timeout - 使用
X-Geo选择地理位置更接近目标的代理节点 - 使用
GET /debug/pick?url=...预览将选择哪个代理节点
无可用代理节点 (502)
该域名的所有代理节点暂时被排除。稍等片刻后重试,或使用GET /network/health/{domain} 检查恢复状态。
WebSocket 错误
AMQP 错误
AMQP 错误以 SSE 事件形式交付:常见错误
缺少目标 URL
无效的地理代码
WebSocket 连接超时
包含apiKey 和 url 的第一条 JSON 消息必须在打开 WebSocket 连接后 10 秒内发送,否则连接将以关闭代码 1008 断开。