CaptchaAI plans are priced by concurrent thread count. More threads = more CAPTCHAs solved simultaneously. Picking the right number means you don't overpay for idle capacity or underpay and constantly hit ERROR_NO_SLOT_AVAILABLE.
This guide gives you the formula to calculate exactly what you need.
The core formula
Required threads = Peak solves per minute × Avg solve time (seconds) / 60
Or equivalently:
Required threads = Peak solves per second × Avg solve time (seconds)
Example: You need 120 reCAPTCHA v2 solves per minute at peak. reCAPTCHA v2 averages 15 seconds per solve.
Required threads = 120 solves/min × 15 seconds / 60 = 30 threads
The ADVANCE plan (50 threads, $90/month) would handle this comfortably, with 20 threads of headroom.
Average solve times by CAPTCHA type
Use these figures in your calculation:
| CAPTCHA type | Avg solve time | Use in formula |
|---|---|---|
| Image/OCR | 0.5 seconds | 0.5 |
| BLS CAPTCHA | 0.8 seconds | 0.8 |
| Grid Image | 0.9 seconds | 0.9 |
| reCAPTCHA v3 | 4 seconds | 4 |
| Cloudflare Turnstile | 7 seconds | 7 |
| Cloudflare Challenge | 12 seconds | 12 |
| reCAPTCHA v2 | 15 seconds | 15 |
| reCAPTCHA v2 Invisible | 20 seconds | 20 |
| reCAPTCHA Enterprise | 20 seconds | 20 |
| GeeTest v3 | 10 seconds | 10 |
Thread calculator in Python
def required_threads(peak_solves_per_minute, avg_solve_seconds, headroom_factor=1.25):
"""
Calculate required CaptchaAI threads.
Args:
peak_solves_per_minute: Maximum solves needed per minute at peak
avg_solve_seconds: Average solve time in seconds for your CAPTCHA type
headroom_factor: Safety margin (1.25 = 25% headroom, recommended)
Returns:
Minimum recommended thread count
"""
base_threads = (peak_solves_per_minute * avg_solve_seconds) / 60
return int(base_threads * headroom_factor) + 1
# Solve type → avg seconds
SOLVE_TIMES = {
"image_ocr": 0.5,
"bls": 0.8,
"grid_image": 0.9,
"recaptcha_v3": 4,
"cloudflare_turnstile": 7,
"cloudflare_challenge": 12,
"recaptcha_v2": 15,
"recaptcha_invisible": 20,
"recaptcha_enterprise": 20,
"geetest_v3": 10,
}
PLANS = [
("BASIC", 5, 15),
("STANDARD", 15, 30),
("ADVANCE", 50, 90),
("PREMIUM", 100, 170),
("CORPORATE", 150, 240),
("ENTERPRISE", 200, 300),
("VIP-1", 1000, 1500),
("VIP-2", 3000, 4500),
("VIP-3", 5000, 7500),
]
def recommend_plan(peak_per_minute, captcha_type):
solve_time = SOLVE_TIMES.get(captcha_type)
if not solve_time:
raise ValueError(f"Unknown CAPTCHA type: {captcha_type}")
threads_needed = required_threads(peak_per_minute, solve_time)
for plan_name, threads, price in PLANS:
if threads >= threads_needed:
effective_cost = price / (peak_per_minute * 60 * 16 * 30)
print(f"Recommended: {plan_name} ({threads} threads, ${price}/month)")
print(f" Threads needed: {threads_needed}")
print(f" Effective cost per solve at peak: ${effective_cost:.8f}")
return plan_name, threads, price
print(f"Needs {threads_needed} threads — contact CaptchaAI for custom plan")
# Examples
recommend_plan(peak_per_minute=10, captcha_type="recaptcha_v2")
# → BASIC (5 threads, $15/month)
recommend_plan(peak_per_minute=60, captcha_type="recaptcha_v2")
# → ADVANCE (50 threads, $90/month)
recommend_plan(peak_per_minute=200, captcha_type="cloudflare_turnstile")
# → ENTERPRISE (200 threads, $300/month)
recommend_plan(peak_per_minute=5000, captcha_type="image_ocr")
# → BASIC (5 threads, $15/month) — image is so fast, 5 threads handle enormous volume
Common workload examples
Small monitoring tool (price checker, job board watcher)
- 5 CAPTCHA checks every 30 minutes
- Peak: ~1 solve/minute
- CAPTCHA type: reCAPTCHA v2 (15s)
- Required threads: (1 × 15) / 60 = 0.25 → 1 thread (BASIC)
- Plan: BASIC at $15/month
Medium scraping pipeline (e-commerce data)
- 200 product pages/hour, each with a Cloudflare Turnstile
- Peak: 200/60 = 3.3 solves/minute
- CAPTCHA type: Cloudflare Turnstile (7s)
- Required threads: (3.3 × 7) / 60 = 0.39 × 1.25 = 0.49 → 1–2 threads (BASIC)
- Plan: BASIC at $15/month
Production scraping team (real estate, finance data)
- 1,000 pages/hour across 5 scrapers, reCAPTCHA v2
- Peak: 1,000/60 = 16.7 solves/minute
- Required threads: (16.7 × 15) / 60 × 1.25 = 5.2 → 6 threads (STANDARD)
- Plan: STANDARD at $30/month
High-volume pipeline (market research SaaS)
- 10,000 reCAPTCHA v2 solves/hour at peak
- Peak: 166.7 solves/minute
- Required threads: (166.7 × 15) / 60 × 1.25 = 52 → 55 threads (ADVANCE)
- Plan: ADVANCE at $90/month
Mixed CAPTCHA types
If your operation handles multiple types, calculate threads per type and sum them:
Mixed pipeline:
- 50 reCAPTCHA v2/min → (50 × 15) / 60 = 12.5 threads
- 100 Cloudflare Turnstile/min → (100 × 7) / 60 = 11.7 threads
- 500 image OCR/min → (500 × 0.5) / 60 = 4.2 threads
Total: 12.5 + 11.7 + 4.2 = 28.4 → 36 threads with 25% headroom
Plan: ADVANCE (50 threads, $90/month) — 39% headroom
Signs you've picked the wrong plan
Too many threads (overpaying):
ERROR_NO_SLOT_AVAILABLEnever appears- Thread utilization dashboard shows < 50% consistently
- Solution: Drop to the next tier down at renewal
Too few threads (bottlenecked):
ERROR_NO_SLOT_AVAILABLEappears frequently- Solve times in your pipeline exceed CaptchaAI's published averages (queue wait adding delay)
- Pipeline throughput is capped below what your other infrastructure can handle
FAQ
What if my workload is highly variable? Size for your peak load with 25% headroom. During low periods, unused threads just sit idle — you still pay the flat monthly fee, but there's no penalty for underutilization.
Can I add threads mid-month without switching plans? Subscribe to an additional plan. Threads stack. If you're on BASIC (5T) and need 8T temporarily, adding another BASIC gives 10T for $30 total.
Is there a way to monitor thread utilization? The CaptchaAI dashboard shows current and historical usage. Use this to validate your thread estimate after the first week of production.
Does reCAPTCHA v2 always take 15 seconds? No. The 15-second figure is an average. Solves range from a few seconds to 60 seconds. Plan for the average, size headroom for peaks.
Calculate and commit
Use the formula, pick your plan, and start solving. If you over- or underestimate, adjusting your plan is straightforward — no configuration changes to your code needed. See all plans at captchaai.com.
Discussions (0)
Join the conversation
Sign in to share your opinion.
Sign InNo comments yet.