Cloudflare Turnstile is becoming the dominant CAPTCHA type for high-traffic websites. It's faster and less intrusive than reCAPTCHA, but still requires a solver for automated workflows.
The cost to solve Turnstile at scale varies dramatically between providers — not just because of per-solve rates, but because of success rates. A 90% success rate means 10% of your automation fails silently.
CaptchaAI solves Cloudflare Turnstile at 100% success rate and under 10 seconds per solve, on an unlimited plan starting at $15/month.
Key stats: CaptchaAI vs alternatives on Turnstile
| Provider | Turnstile success rate | Avg speed | Pricing model | Rate |
|---|---|---|---|---|
| CaptchaAI | 100% | < 10s | Thread-based unlimited | From $15/month |
| 2Captcha | 80–90% | 15–40s | Per-solve | $2.99/1,000 |
| Anti-Captcha | 85–90% | 10–30s | Per-solve | $2.50/1,000 |
| CapSolver | 85–95% | 8–20s | Per-solve | $2.00/1,000 |
100% success rate is not a rounding artifact. Cloudflare Turnstile uses a widget-based solve that CaptchaAI's AI system handles without the variance that human-worker queues introduce.
Throughput: what one thread delivers on Turnstile
Cloudflare Turnstile averages 7 seconds per solve on CaptchaAI:
- Solves per thread per hour: 3,600 ÷ 7 = 514
- Solves per thread per day (16h): 8,229
- Solves per thread per month (30 days): 246,857
On the BASIC plan (5 threads):
- Monthly capacity: 5 × 246,857 = 1,234,285 Turnstile solves
- Cost: $15
- Effective cost: $0.000012 per solve
Compare: 2Captcha at $2.99/1,000 would cost $3,690 for the same volume.
Cost comparison at real-world volumes
10,000 Turnstile solves/month
| Provider | Cost | Success | Successful solves |
|---|---|---|---|
| 2Captcha | $29.90 | 85% | 8,500 |
| Anti-Captcha | $25.00 | 87% | 8,700 |
| CapSolver | $20.00 | 90% | 9,000 |
| CaptchaAI BASIC | $15.00 | 100% | 10,000 |
Even at this low volume, CaptchaAI delivers more successful solves for less money.
100,000 Turnstile solves/month
| Provider | Cost | Effective cost/success |
|---|---|---|
| 2Captcha | $299.00 | $0.00352 |
| Anti-Captcha | $250.00 | $0.00287 |
| CapSolver | $200.00 | $0.00222 |
| CaptchaAI BASIC | $15.00 | $0.000015 |
1,000,000 Turnstile solves/month
| Provider | Monthly cost | Annual cost |
|---|---|---|
| 2Captcha | $2,990 | $35,880 |
| Anti-Captcha | $2,500 | $30,000 |
| CapSolver | $2,000 | $24,000 |
| CaptchaAI BASIC | $15 | $180 |
Thread planning for Turnstile volume
Use this table to match your Turnstile volume to a CaptchaAI plan:
| Monthly Turnstile solves | Required threads | Recommended plan | Monthly cost |
|---|---|---|---|
| Up to 250,000 | 1 | BASIC | $15 |
| Up to 1,250,000 | 5 | BASIC | $15 |
| Up to 3,750,000 | 15 | STANDARD | $30 |
| Up to 12,500,000 | 50 | ADVANCE | $90 |
| Up to 50,000,000 | 200 | ENTERPRISE | $300 |
Assumes 16 hours of operation per day at 7s average solve time.
Solving Cloudflare Turnstile with CaptchaAI
import requests
import time
API_KEY = "YOUR_API_KEY"
def solve_turnstile(site_key, page_url):
"""Solve Cloudflare Turnstile and return the cf-turnstile-response token."""
# Submit task
resp = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "turnstile",
"sitekey": site_key,
"pageurl": page_url,
"json": 1,
})
result = resp.json()
if result["status"] != 1:
raise Exception(f"Submit error: {result['request']}")
task_id = result["request"]
print(f"Turnstile task submitted: {task_id}")
# Poll — Turnstile is fast, start checking after 3s
time.sleep(3)
for attempt in range(20):
res = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY,
"action": "get",
"id": task_id,
"json": 1,
}).json()
if res["status"] == 1:
return res["request"] # cf-turnstile-response token
if res["request"] != "CAPCHA_NOT_READY":
raise Exception(f"Solve error: {res['request']}")
time.sleep(3)
raise Exception("Timeout — Turnstile not solved in 60s")
def submit_form_with_turnstile(form_url, site_key, form_data):
"""Example: submit a form protected by Cloudflare Turnstile."""
token = solve_turnstile(site_key, form_url)
session = requests.Session()
payload = {**form_data, "cf-turnstile-response": token}
response = session.post(form_url, data=payload)
return response
# Usage
token = solve_turnstile(
site_key="0x4AAAAAAABUYP0XeMJF0xoy",
page_url="https://example.com/register"
)
print(f"Token: {token[:30]}...")
Node.js example
const axios = require('axios');
const API_KEY = 'YOUR_API_KEY';
async function solveTurnstile(siteKey, pageUrl) {
// Submit
const submitResp = await axios.post('https://ocr.captchaai.com/in.php', null, {
params: {
key: API_KEY,
method: 'turnstile',
sitekey: siteKey,
pageurl: pageUrl,
json: 1,
}
});
if (submitResp.data.status !== 1) {
throw new Error(`Submit error: ${submitResp.data.request}`);
}
const taskId = submitResp.data.request;
// Poll
await new Promise(r => setTimeout(r, 3000));
for (let i = 0; i < 20; i++) {
const pollResp = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: API_KEY, action: 'get', id: taskId, json: 1 }
});
if (pollResp.data.status === 1) return pollResp.data.request;
if (pollResp.data.request !== 'CAPCHA_NOT_READY') {
throw new Error(`Error: ${pollResp.data.request}`);
}
await new Promise(r => setTimeout(r, 3000));
}
throw new Error('Timeout');
}
// Usage
solveTurnstile('0x4AAAAAAABUYP0XeMJF0xoy', 'https://example.com')
.then(token => console.log('Token:', token.slice(0, 30) + '...'))
.catch(console.error);
FAQ
What does 100% Turnstile success rate mean in practice? Every correctly submitted Turnstile task returns a valid token. There is no partial success or random failure. This makes pipeline reliability predictable.
Is there a difference between Turnstile managed mode and invisible mode?
CaptchaAI handles both. Use the same method=turnstile endpoint for both variants — the solver identifies the mode automatically from the page context.
Can I solve Turnstile without providing a proxy? CaptchaAI handles Turnstile solving through its own infrastructure. You typically do not need to provide a proxy for Turnstile tasks.
What happens if Cloudflare updates Turnstile? CaptchaAI maintains its solver against Cloudflare's latest implementation. If you notice a drop in success rate, contact support — it may indicate a Cloudflare update requiring a solver update.
Solve Turnstile at scale
100% success, under 10 seconds, unlimited volume starting at $15/month. Start with CaptchaAI at captchaai.com.
Discussions (0)
Join the conversation
Sign in to share your opinion.
Sign InNo comments yet.