打码服务 / FunCaptcha 协议版(不带代理)

FunCaptcha 协议版(不带代理)

FunCaptcha(Arkose)  ·  FunCaptchaTaskProxyless

同上,但不带代理,由我们的出口去打。

参数与「FunCaptcha 协议版」完全一样,只是不带代理字段。

只在一种情况下用它:你不关心 token 与出口的绑定(比如只是拿 token 做一次性校验),或者目标站不校验出口。
Arkose 绝大多数场景都校验,所以能用上面那个就别用这个。另外这一档在部分账户上会直接回 ERROR_PROXY_MISSING —— 也就是它并不总是可用。

? 参考图 提交 旋转到与参考图一致的角度
协议版的界面和上面一模一样,区别在你怎么用:不用自己看图,把页面下发的 blob 连出口一起交过来,换回可直接提交的 token。

请求

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

请求参数

参数类型必填说明
typestring是固定填 FunCaptchaTaskProxyless
websiteURLstring是承载验证码的页面地址
websitePublicKeystring是Arkose public key
funcaptchaApiJSSubdomainstring否Arkose 的 vanity 域名
datastring是包成 JSON 字符串的 blob:{"blob":"…"}
userAgentstring是必填,且与你真发请求时一致

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

请求示例

{
  "type": "FunCaptchaTaskProxyless",
  "websiteURL": "https://auth.example.com/en_US/deeplink.html?deeplink=signup",
  "websitePublicKey": "436DD567-5435-4B14-89A6-2F1188E11334",
  "funcaptchaApiJSSubdomain": "arks-client.example.com",
  "data": "{\"blob\":\"eyJ2ZXJzaW9uIjoiMi4wLjAiLC...\"}",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
}

响应示例

{ "ok": true, "ready": true, "token": "0e5a3f...372", "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": "FunCaptchaTaskProxyless",
         "websiteURL": "https://auth.example.com/en_US/deeplink.html?deeplink=signup",
         "websitePublicKey": "436DD567-5435-4B14-89A6-2F1188E11334",
         "funcaptchaApiJSSubdomain": "arks-client.example.com",
         "data": "{\"blob\":\"eyJ2ZXJzaW9uIjoiMi4wLjAiLC...\"}",
         "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
       }'
import requests

r = requests.post(
    "https://api.xiaobaicap.com/v1/captcha/solve",
    headers={"Authorization": "Bearer arp_xxx"},
    params={"timeout": 180},
    json={
  "type": "FunCaptchaTaskProxyless",
  "websiteURL": "https://auth.example.com/en_US/deeplink.html?deeplink=signup",
  "websitePublicKey": "436DD567-5435-4B14-89A6-2F1188E11334",
  "funcaptchaApiJSSubdomain": "arks-client.example.com",
  "data": "{\"blob\":\"eyJ2ZXJzaW9uIjoiMi4wLjAiLC...\"}",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
},
    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 退避