打码服务 / 自带代理的协议任务

自带代理的协议任务

协议接口  ·  NoCaptchaTask / RecaptchaV2EnterpriseTask / HCaptchaTask / TurnstileTask

和前面几种协议任务参数一样,只是多一层「用你的出口去打」。

有些站点会把令牌和出口 IP 绑在一起(Cloudflare 的 cf_clearance 是最典型的)。这时候用不带代理的版本,拿回来的东西换到你自己的出口上会被判无效。

下面这几个类型就是为此准备的:参数与对应的不带代理版完全一致,只多下面这组代理字段。

I'm not a robot reCAPTCHA Privacy - Terms
外观和对应的不带代理版没差别。差别只在出口 —— 令牌和你的 IP 绑定时,必须让我们从你的出口去打。

请求

POST /v1/captcha/solve?timeout=180
Authorization: Bearer arp_xxx
Content-Type: application/json

请求参数

参数类型必填说明
typestring是固定填 见上表(NoCaptchaTask 等)
proxyTypestring是http / https / socks5
proxyAddressstring是代理主机名或 IP
proxyPortinteger是代理端口
proxyLoginstring否代理用户名(有认证才填)
proxyPasswordstring否代理密码
websiteURLstring是验证码所在页面的完整地址(与对应基础类型一致)
websiteKeystring是站点 key(与对应基础类型一致;企业版还要 enterprisePayload)

只传上表列出的参数即可,认证由网关自动处理。

请求示例

{
  "type": "NoCaptchaTask",
  "websiteURL": "https://example.com/login",
  "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
  "proxyType": "http",
  "proxyAddress": "proxy.example.net",
  "proxyPort": 3000,
  "proxyLogin": "user-region-US-sid-abc123-t-30",
  "proxyPassword": "secret"
}

响应示例

{ "ok": true, "ready": true, "token": "03AGdBq27gCf7UkBFO7Nsl5OqK6kiL911...", "price": 15, "balance": 985 }
怎么取结果:取 token,并且提交时仍从这个代理出去。

完整调用

curl -X POST 'https://api.xiaobaicap.com/v1/captcha/solve?timeout=180' \
  -H "Authorization: Bearer arp_xxx" \
  -H 'Content-Type: application/json' \
  -d '{
         "type": "NoCaptchaTask",
         "websiteURL": "https://example.com/login",
         "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
         "proxyType": "http",
         "proxyAddress": "proxy.example.net",
         "proxyPort": 3000,
         "proxyLogin": "user-region-US-sid-abc123-t-30",
         "proxyPassword": "secret"
       }'
import requests

r = requests.post(
    "https://api.xiaobaicap.com/v1/captcha/solve",
    headers={"Authorization": "Bearer arp_xxx"},
    params={"timeout": 180},
    json={
  "type": "NoCaptchaTask",
  "websiteURL": "https://example.com/login",
  "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
  "proxyType": "http",
  "proxyAddress": "proxy.example.net",
  "proxyPort": 3000,
  "proxyLogin": "user-region-US-sid-abc123-t-30",
  "proxyPassword": "secret"
},
    timeout=200,
)
d = r.json()
if not d.get("ok"):
    raise SystemExit(d)
print(d.get("token") or d.get("text") or d.get("objects"))

注意事项

错误

失败时返回 502,积分全额退回,可以安全重试:

{"error":"识别失败,已全额退回 10 积分:...","code":"mint_failed"}
code含义处理
insufficient_credits积分不足(402,未扣费)充值后重试
bad_request参数不合法或类型不支持(400)对照上方参数表改
mint_failed识别失败(502,已退回)退避 2~3 秒重试
rate_limited触发限流(429)按 Retry-After 退避