Cloudflare Turnstile 协议接口
⚠️ 通过 createTask 创建任务, 然后通过 getTaskResult 获取识别结果
ℹ️ turnstile任务类型不需要传proxy
支持类型 我们支持大部分cloudflare保护的网站,包括5s challenge, turnstile, challenge+turnstile 等具有验证模式网站。但是由于网站模式可定制,如果你的网站不支持请联系我们。
Turnstile/Challenge 验证码是替代 reCaptcha/hCaptcha 的另一种尝试。我们支持这些子类型:
- turnstile
- 手动
- 非交互式
- 不可见
- challenge
- 5s challenge
- 嵌入式 turnstile
在你调用过程中,无需指定子类型。还没有必要提供您自己的自定义 User-Agent
,我们会忽略此参数。
挑战类型 | 说明 | 支持情况 |
---|---|---|
turnstile | stable |
任务类型type
如下
AntiTurnstileTaskProxyLess
创建任务
通过 createTask 创建任务
当在使用 turnstile 过程中,我们必须要传入websiteURL
、proxy
、websiteKey
,其他参数可选。
参数结构
属性 | 类型 | Required | 说明 |
---|---|---|---|
type | String | Required | AntiTurnstileTaskProxyLess |
websiteURL | String | Required | 目标网页的地址。可以在网站上的任何地方,甚至在会员区域。 |
websiteKey | String | Required | Turnstile 的秘钥 |
metadata | Map<String,String> | Required | Turnstile 附加数据. Turnstile Documentation |
metadata.acton | String | Optional | Turnstile元素的 data-action 属性的值(如果存在的话)。 |
metadata.cdata | String | Optional | Turnstile元素的 data-cdata (如果存在的话)。 |
请求示例
txt
POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": "https://www.yourwebsite.com",
"websiteKey": "0x4AAAAAAABS7vwvV6VFfMcD",
"metadata": {
"action": "login", //可选参数
"cdata": "0000-1111-2222-3333-example-cdata" //可选参数
}
}
}
响应示例
json
{
"errorId": 0,
"status": "idle",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
获取结果
使用 getTaskResult 方法获取识别结果
根据系统负载,您将在 1s
到 20s
的时间间隔内得到结果
请求示例
txt
POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
json
{
"clientKey": "YOUR_API_KEY",
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}
响应示例
json
{
"errorId": 0,
"taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006",
"status": "ready",
"errorCode": null,
"errorDescription": null,
"solution": {
"token": "0.mF74FV8wEufAWOdvOak_xFaVy3lqIDel7SwNhw3GgpICSWwTjYfrQB8mRT1dAJJBEoP7N1sESdp6WH9cTS1T0catWLecG3ayNcjwxVtr3hWfS-dmcBGRTx4xYwI64sAVboYGpIyuDBeMIRC3W8dK35v1nDism9xa595Da5VlXKM7hk7pIXg69lodfiftasIkyD_KUGkxBwxvrmz7dBo10-Y5zvro9hD4QKRjOx7DYj9sumnkyYCDx0m4ImDIIkNswfVTWI2V22wlnpHdvMgdtKYgOIIAU28y9gtdrdDkpkH0GHcDyd15sxQGd9VjwhGZA_mpusUKMsEoGgst2rJ3zA.UWfZupqLlGvlATkPo3wdaw.38d55cd0163610d8ce8c42fcff7b62d8981495cc1afacbb2f14e5a23682a4e13",
"type": "turnstile",
//我们会返回服务端使用的userAgent
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"
}
}
使用 SDK 请求
python
#pip install --upgrade capsolver
#export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": "https://www.yourwebsite.com",
"websiteKey": "0x4AAAAAAABS7vwvV6VFfMcD",
"metadata": {
"action": "login", # 可选
"cdata": "0000-1111-2222-3333-example-cdata" # 可选
},
})
go
package main
import (
"fmt"
capsolver_go "github.com/capsolver/capsolver-go"
"log"
)
func main() {
// first you need to install sdk
//go get github.com/capsolver/capsolver-go
//export CAPSOLVER_API_KEY='...' or
//capSolver := CapSolver{ApiKey:"..."}
capSolver := capsolver_go.CapSolver{}
solution, err := capSolver.Solve(map[string]any{
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": "https://www.yourwebsite.com",
"websiteKey": "0x4AAAAAAABS7vwvV6VFfMcD",
"metadata": map[string]any{
"action": "login", // 可选
"cdata": "0000-1111-2222-3333-example-cdata", // 可选
},
})
if err != nil {
log.Fatal(err)
return
}
fmt.Println(solution)
}