申请流程
要使用 Cloudflare Turnstile 协议识别 API,首先到 Ace Data Cloud 控制台 获取您的 API Token,留作备用。
如果你尚未登录或注册,会自动跳转到登录页面邀请你注册和登录,完成后会自动返回当前页面。
一个 API Token 即可调用平台所有服务,无需为每个服务单独申请。 首次申请会赠送免费额度,可免费体验;额度不足时可在 控制台 充值通用余额。
📘 完整文档:Cloudflare Turnstile 协议识别 API →
基本使用
首先先了解下基本的使用方式,就是输入需要处理 Turnstile 验证码的网站 URL,便可获得处理后的结果,首先需要简单地传递一个website_url 字段,我们的示例网站是:https://react-turnstile.vercel.app,我们需要在 website_url 页面中获取 website_key,首先需要打开这个网页,按 F12 进入控制台,在 Element 页面进行全局搜索 cf-turnstile,可以找到承载 Turnstile 的容器元素,其中 data-sitekey 对应的一串字符串便是 website_key 的值。
设置的 Request Headers 包括:
accept:想要接收怎样格式的响应结果,这里填写为application/json,即 JSON 格式。authorization:调用 API 的密钥,申请之后可以直接下拉选择。
website_url:需要处理验证码的网站 URL。website_key:在 Cloudflare Turnstile 中的网站密钥标识符(sitekey)。action:可选参数,仅当目标网站为 Turnstile 组件设置了自定义action时才需要传递。cdata:可选参数,仅当目标网站为 Turnstile 组件设置了自定义cData时才需要传递。
token,此次 Cloudflare Turnstile 验证码任务处理后的验证结果。started_at、finished_at:本次请求开始处理与产出结果的时间,Unix 时间戳(秒,浮点)。elapsed:本次处理的总耗时(秒)。
cf-turnstile-response 参数一并发送到目标网站,调用 token 验证所对应的 Python 代码如下:
异步模式(async)
默认情况下 API 是同步阻塞的:一次请求会一直等待,直到 token 处理完成才返回。如果你在做多打码器轮换(multi-solver rotation),希望「提交任务后立即拿到 task_id,先去调度其他打码器,稍后再回来读取结果」,可以在请求体中传入async: true。
传入 async: true 后,接口会立即返回一个 task_id,而不会阻塞等待:
task_id 查询 POST /captcha/tasks(建议每 3~5 秒一次)。本接口不会触发或推进任务处理;即使不查询、断网或退出客户端,服务器仍会继续处理:
status: processing;处理完成会返回 status: ready 和 token:
timeout,不计费。/captcha/tasks 不负责推进任务。
说明:Cloudflare Turnstile 暂不支持自带代理(Bring Your Own Proxy),因此本接口不接受proxy参数;如传入会返回400 invalid_proxy。
错误处理
在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:400 token_mismatched:Bad request, possibly due to missing or invalid parameters.400 invalid_proxy:Bad request, proxy is not supported for this captcha type.401 invalid_token:Unauthorized, invalid or missing authorization token.429 too_many_requests:Too many requests, you have exceeded the rate limit.500 api_error:Internal server error, something went wrong on the server.

