跳转到内容

Cloudflare Turnstile

Cloudflare Turnstile 任务返回一个 token(token),提交给目标网站即可通过验证。TurnstileTaskProxyless 每个任务 25 点(0.025 元),异步返回:先 createTask,再每 5 秒 getTaskResult。识别失败、超时自动退点。

POSThttps://api.yescaptcha.com/createTask国际节点
POSThttps://cn.yescaptcha.com/createTask国内节点

请求体是 JSON,用 clientKey 鉴权。在哪个节点创建的任务,就到哪个节点查询结果。

网页的表单里嵌着 Cloudflare 的验证框(“确认您是真人”),网页加载 challenges.cloudflare.com/turnstile 的脚本。

整个页面被 Cloudflare 拦下、显示“请稍候…”“正在检查您的浏览器”的,是 5 秒盾,不是 Turnstile,用 Cloudflare 5 秒盾。区别见 判断验证码类型。

任务类型价格返回方式说明
TurnstileTaskProxyless25 点(0.025 元)异步
TurnstileTaskProxylessM130 点(0.03 元)异步
TurnstileTask25 点(0.025 元)异步自带代理
  • TurnstileTaskProxyless 和 TurnstileTaskProxylessM1 参数相同、线路不同,可以互为备用。
  • TurnstileTask 用你自己的代理加载验证码,要传代理字段。
字段类型必填说明
typestring是任务类型,取值见本页"类型与价格"
websiteURLstring是出现验证码的网页地址(完整 URL)。填你看到验证码的网站,不要填验证码厂商的域名
websiteKeystring是Turnstile 的网站密钥(sitekey),一般以 0x 开头
proxyTypestringTurnstileTask 必填代理协议:http、https、socks4、socks5
proxyAddressstringTurnstileTask 必填代理的 IP 地址或域名。不能填 127.0.0.1、192.168.x.x 这类本机或内网地址,我们的服务器访问不到
proxyPortintegerTurnstileTask 必填代理端口
proxyLoginstring否代理用户名(代理需要认证时)(仅 TurnstileTask)
proxyPasswordstring否代理密码(代理需要认证时)(仅 TurnstileTask)
userAgentstring否浏览器 User-Agent。返回结果里如果带了 userAgent,提交 token 时要用返回的这个值(仅 TurnstileTask)

websiteKey 一般以 0x 开头,找法见 查找 Turnstile 参数。

POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY"
}
}
终端窗口
curl -s https://api.yescaptcha.com/createTask \
-H 'Content-Type: application/json' \
-d '{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA_SITE_KEY"
}
}'
# 返回 {"errorId":0,"taskId":"..."},然后每 5 秒查询一次结果:
curl -s https://api.yescaptcha.com/getTaskResult \
-H 'Content-Type: application/json' \
-d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'

把 websiteURL、websiteKey 换成目标网站的值。

{
"errorId": 0,
"status": "ready",
"solution": {
"token": "0.ufq5RgSVZd11DPSX1brdrxnEs28KcVlKj2ORchqxSy2q9yAW6ciq3hriXDF4x...",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"
}
}
字段类型说明
tokenstring得到的 token,提交给目标网站。一次性使用,建议尽快用掉
userAgentstring生成 token 时用的 User-Agent。提交 token 时请用这个值,和你传的不同时以它为准

把 token 填进网页里 cf-turnstile-response 字段(或目标网站接口要求的字段)提交,提交请求的 User-Agent 用返回的 userAgent。

处理中时返回 {"errorId": 0, "status": "processing"},5 秒后再查。出错时按 errorCode 处理,见 错误码。

一次性使用,建议拿到后尽快提交(Turnstile 的 token 一般在几分钟内过期,由 Cloudflare 决定)。

确认 websiteURL 是出现验证框的页面、websiteKey 正确,提交时用返回的 userAgent。网站同时检查 IP 的,用 TurnstileTask 并在提交时走同一个代理。