Migration
Migrate From Anti-Captcha: TurnstileTask on ZeroCaptcha
Move Cloudflare Turnstile tasks from Anti-Captcha to ZeroCaptcha: the same task types, calls and field names, cData included, and what to check first.
3 min readPublished Updated
Anti-Captcha documents Turnstile with the task types TurnstileTaskProxyless and TurnstileTask
on its createTask and getTaskResult calls. ZeroCaptcha accepts those same types and calls.
For most clients, moving over means changing the API host and the key: the field names stay,
Anti-Captcha’s cData included. This guide shows the request and the checklist.
ZeroCaptcha is not affiliated with Anti-Captcha. Facts about Anti-Captcha below come from its public pages, checked 1 October 2026.
What Anti-Captcha’s request looks like
Anti-Captcha’s TurnstileTask documentation
posts to https://api.anti-captcha.com/createTask with clientKey and a task holding type,
websiteURL, websiteKey, an optional action, an optional cData, and, for TurnstileTask,
the proxy fields proxyType, proxyAddress, proxyPort, proxyLogin and proxyPassword.
The same request on ZeroCaptcha
{ "clientKey": "zc_live_…", "task": { "type": "TurnstileTask", "websiteURL": "https://shop.example.com/login", "websiteKey": "0x4AAAAAAAB1cD2eF3gH4iJ5", "action": "login", "cData": "sess_91f2c0", "proxyType": "http", "proxyAddress": "proxy.example.net", "proxyPort": 8080, "proxyLogin": "user", "proxyPassword": "secret" }}Post it to /createTask on your ZeroCaptcha API host, then poll /getTaskResult with the
taskId. Every field keeps its name.
The cData field
ZeroCaptcha reads the widget’s cData from the first of these fields that is present: cdata,
cData, data, turnstileCData, then metadata.cdata (or metadata.cData). Anti-Captcha’s
cData is one of them, so a client written for Anti-Captcha sends it unchanged. JSON keys are
case-sensitive, so a cData under any other name is ignored, and the site may then reject the token
on its server. See
Cloudflare Turnstile action and cData to find out
whether a widget sets one.
Checking the result
Poll getTaskResult every one or two seconds with clientKey and taskId. While the task runs,
the reply is {"errorId": 0, "taskId": "…", "status": "processing"}. When it is solved, status is ready and
the token is in solution.token:
result = requests.post(f"{API}/getTaskResult", timeout=15, json={"clientKey": KEY, "taskId": task_id}).json()if result["errorId"]: raise RuntimeError(result["errorCode"]) # such as ERROR_CAPTCHA_UNSOLVABLEif result["status"] == "ready": token = result["solution"]["token"] # use it within 300 secondsThe balance call is the same too: getBalance with clientKey answers
{"errorId": 0, "balance": 12.3456}, in US dollars.
Other differences to check
- Task IDs are UUIDs. A client that stores or parses them as integers needs to keep them as strings.
- Proxy types are
httpandhttps. SOCKS proxies are not supported yet: a task with one is refused before any money is held. Solve Cloudflare Turnstile with a proxy covers the formats. - The ready reply carries
solution.tokenandsolution.type, pluscost,createTime,endTime,solveCountandexpiresAt. A Turnstile token works once, for 300 seconds. - Extra fields are ignored. A
userAgentin the task, for example, is accepted and not used. - Reports are recorded, not refunded.
reportIncorrectRecaptchaandreportCorrectRecaptchaanswer as Anti-Captcha’s do, and our staff read them, but every charge is final. - Errors come as
errorId1 witherrorCodeanderrorDescription, always with HTTP 200. The errors reference lists every code and what it costs.
Prices
Anti-Captcha lists Cloudflare Turnstile at $2 per 1,000 on its pay-as-you-go price table on its home page (checked 1 October 2026). ZeroCaptcha’s current price per 1,000 solved tasks is on the pricing page. ZeroCaptcha holds the price when a task is created and charges it only when a token is ready.
Rolling it out
- Create an account, a key and a first top-up: the quickstart takes a few minutes.
- Point one worker at ZeroCaptcha’s API host and compare results on your pages.
- Move the rest once the numbers look right.
The Anti-Captcha alternative page compares the two services, and the Cloudflare Turnstile solver page has full samples in every supported language.