Compare
A 2Captcha alternative for Cloudflare Turnstile
ZeroCaptcha takes 2Captcha's in.php and res.php for Turnstile, and the createTask format too, so a 2Captcha client can move over by changing its host and its key. Here is how the two compare, with every 2Captcha fact linked to where we read it.
ZeroCaptcha is not affiliated with 2Captcha. Their facts below were checked on 1 October 2026, at the pages linked beside each one; prices change, so check them before you decide.
ZeroCaptcha and 2Captcha side by side
| Provider | Turnstile price | How the API takes a Turnstile task |
|---|---|---|
| ZeroCaptcha | $0.70 per 1,000, with your proxy; $0.80 per 1,000, proxyless; $1.20 per 1,000, WAF and 5-second challenge, with your proxy. Charged only when solved.Pricing | createTask, getTaskResult and getBalance; 2Captcha's in.php and res.php; and REST, on one host. |
| 2Captcha | $1.45 per 1,000 Cloudflare Turnstile.Source, checked 1 October 2026 | createTask at api.2captcha.com with TurnstileTaskProxyless or TurnstileTask.Source, checked 1 October 2026 |
- Older API (2Captcha): API v1, in.php and res.php, still supported, with Cloudflare Turnstile since December 2022. Source, checked 1 October 2026
- Other CAPTCHA types (2Captcha): Many, including reCAPTCHA, Arkose Labs, GeeTest and Amazon captcha. Source, checked 1 October 2026
Switching from 2Captcha
Point the client's base URL at the ZeroCaptcha API host instead of 2captcha.com or api.2captcha.com.
Replace the 2Captcha key with your ZeroCaptcha key, which starts with zc_live_.
Keep method=turnstile, sitekey, pageurl, action and data (cData) in in.php, or TurnstileTaskProxyless and TurnstileTask in createTask.
Handle in.php's task IDs as you do now: they are numbers, as 2Captcha's are. Keep createTask's as text: they are IDs such as 0192f3a4-7b1c-7d2e-9f10-3c4d5e6f7a8b.
Where ZeroCaptcha differs
Only Cloudflare Turnstile and Cloudflare challenge pages: other CAPTCHA types are not offered, so stay with a multi-type provider if you need them.
pingback needs no registration, and every callback is signed with HMAC-SHA256 so you can check it came from us.
res.php's reportbad and reportgood are recorded for our staff to read, and nothing is refunded: every charge is final.
SOCKS proxies are not supported yet: HTTP and HTTPS proxies are.
Cloudflare challenge pages work too, through your own proxy: a challenge task returns cf_clearance with the user agent it was issued for.
Read next
- MigrationMigrate From 2Captcha: Cloudflare Turnstile in.php and createTaskMove Cloudflare Turnstile solving from 2Captcha to ZeroCaptcha: keep in.php and res.php or createTask, change the host and key, and check what differs.
- BillingCaptcha Solving Cost: Price per 1,000 and What You Really PayHow captcha solving is priced per 1,000, why the real cost differs from the list price, and how to estimate a month of Cloudflare Turnstile tasks.
- APICaptcha Solver Callbacks: pingback and callbackUrl, No PollingGet Cloudflare Turnstile results pushed to your server instead of polling: callbackUrl and pingback, what each call contains, retries, and how to answer.
Questions
Will my 2Captcha client work with ZeroCaptcha?
For Turnstile, usually after two changes: the base URL and the key. ZeroCaptcha takes in.php and res.php with method=turnstile, and createTask with TurnstileTaskProxyless or TurnstileTask. in.php answers numeric task IDs, as 2Captcha does; createTask answers IDs such as 0192f3a4-7b1c-7d2e-9f10-3c4d5e6f7a8b, which a client must keep as text.
Does ZeroCaptcha charge for unsolved tasks?
No. The price is held when a task is created and released at once if it fails or expires; only a task that returns a token is charged.
Is ZeroCaptcha affiliated with 2Captcha?
No. ZeroCaptcha is independent and is not affiliated with 2Captcha.