申請流程
要使用 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:錯誤的請求,可能是因為缺少或無效的參數。400 invalid_proxy:錯誤的請求,該 captcha 類型不支持代理。401 invalid_token:未授權,授權令牌無效或缺失。429 too_many_requests:請求過多,您已超過速率限制。500 api_error:內部伺服器錯誤,伺服器出現問題。

