Switch from CapSolver to CaptchaAI for a simpler API and lower per-solve cost at volume.
Same submit-then-poll pattern you already build around — but a plain REST API instead of JSON task objects, thread-based pricing with unlimited solves per thread, and BLS coverage CapSolver doesn't list.
# CapSolver: build a JSON task object - requests.post("https://api.capsolver.com/createTask", json={ - "clientKey": KEY, - "task": {"type": "ReCaptchaV2TaskProxyLess", - "websiteURL": url, "websiteKey": sitekey}}) # CaptchaAI: plain REST query params + requests.get("https://ocr.captchaai.com/in.php", params={ + "key": KEY, "method": "userrecaptcha", + "googlekey": sitekey, "pageurl": url})
A small field mapping — the submit-then-poll flow stays the same.
Supported CAPTCHA types
Two things developers reconsider
CapSolver works. At volume, two things start to matter.
CapSolver is a capable, fast solver. But its per-solve billing means the bill grows with every solve, and its JSON task-object API means more request plumbing than a simple REST call. If you run high volume or want a lighter integration, here's what changes on CaptchaAI.
Why teams move
Five reasons developers switch from CapSolver
1. Thread-based, not per-solve
Pay per concurrent thread with unlimited solves per thread each month. At steady volume the effective cost per solve keeps dropping as volume grows.
2. Plain REST API
Submit with GET/POST query parameters — no JSON task objects to
construct. You can even test a call straight from a browser or curl.
3. BLS & grid image
BLS multi-image CAPTCHA for visa-appointment portals — a type CapSolver doesn't list — plus grid-select challenges on the same thread plan.
4. Cloudflare on the thread plan
Cloudflare Turnstile and Challenge, with cf_clearance
cookie plus User-Agent returned for the Challenge flow, solved on your threads instead of billed per solve.
5. Same workflow to port
Submit a task, poll for the result — identical to CapSolver. You map a handful of fields and switch your response parsing; the control flow is unchanged.
No SDK required
The REST surface is simple enough that you rarely need a client library — fewer dependencies to keep current in your stack.
Migration
Map the fields, keep the workflow
CaptchaAI doesn't emulate CapSolver's JSON format — but the submit-then-poll flow is the same. Convert the task object to query parameters and switch your response parsing from JSON to CaptchaAI's REST response.
createTask→in.php,getTaskResult→res.php?action=get"type":"ReCaptchaV2TaskProxyLess"→method=userrecaptchawebsiteKey→googlekey,websiteURL→pageurl- Parse the REST response instead of
solution.gRecaptchaResponse
import requests, time API_KEY = "YOUR_CAPTCHAAI_KEY" API_URL = "https://ocr.captchaai.com" def solve_recaptcha(sitekey, pageurl): # Submit (was CapSolver createTask) r = requests.get(f"{API_URL}/in.php", params={ "key": API_KEY, "method": "userrecaptcha", "googlekey": sitekey, "pageurl": pageurl, "json": 1, }) task_id = r.json()["request"] # Poll (was CapSolver getTaskResult) for _ in range(60): time.sleep(5) res = requests.get(f"{API_URL}/res.php", params={ "key": API_KEY, "action": "get", "id": task_id, "json": 1, }).json() if res["request"] != "CAPCHA_NOT_READY": return res["request"] raise TimeoutError("Solve timeout") # Start a 3-day trial at captchaai.com/trial to get your API key
Side by side
CaptchaAI vs CapSolver
Capability coverage, from each service's own documentation — see the evidence note.
| Feature | CaptchaAI | CapSolver |
|---|---|---|
| reCAPTCHA v2 / v3 / Enterprise | ||
| Cloudflare Turnstile / Challenge | ||
| GeeTest v3 | ||
| Image / OCR types | 27,500+ | Yes |
| BLS CAPTCHA | ||
| Grid image CAPTCHA | ||
| AWS WAF | ||
| DataDome | ||
| API style | REST (query params) | JSON POST tasks |
| Billing model | Per thread (unlimited solves) | Per solve |
| Free way to test | Free thread (30 days) |
Where CapSolver is strong: it supports AWS WAF, DataDome, GeeTest v4, MTCaptcha and BotDeflector challenges that CaptchaAI doesn't cover. If those are core to your workflow, CapSolver may be the better fit. For reCAPTCHA, Cloudflare, GeeTest v3, grid and OCR work at volume, CaptchaAI's thread pricing is the stronger match, and it adds BLS.
Illustrative pipeline
What changes day to day
Representative example for a high-volume reCAPTCHA pipeline. Your numbers depend on target sites and proxy quality.
Before — CapSolver (per-solve, JSON)
After — CaptchaAI (REST, thread-based)
Pricing
Pay per thread. Unlimited solves.
A thread is one in-flight CAPTCHA. It frees up the moment it finishes — so you size by concurrency, not by solve count. No per-CAPTCHA fees, no type surcharges.
Larger plans — CORPORATE ($240/mo, 150 threads), ENTERPRISE ($300/mo, 200 threads), and VIP tiers up to 5,000 threads. See full pricing →
Where the gap widens at scale
| Monthly reCAPTCHA v2 volume | CapSolver (per-solve) | CaptchaAI plan | CaptchaAI cost | You save |
|---|---|---|---|---|
| 10,000 solves | ~$8 | BASIC (5 threads) | $15 | CapSolver cheaper |
| 100,000 solves | ~$80 | BASIC (5 threads) | $15 | ~81% |
| 1,000,000 solves | ~$800 | ADVANCE (50 threads) | $90 | ~89% |
| 10,000,000 solves | ~$8,000 | 2× ENTERPRISE (400 threads) | $600 | ~93% |
Illustrative. CapSolver column uses its published pay-per-use reCAPTCHA v2 rate (~$0.80 / 1,000 solves, docs.capsolver.com/en/pricing, accessed September 2026); CapSolver also sells discounted packages, which narrow the gap. CaptchaAI plans are sized to peak concurrency, not total volume. Against the pay-per-use rate, above ~20K solves/month the thread model is structurally cheaper. Confirm live numbers on captchaai.com/#pricing-plans.
FAQ
Frequently Asked Questions
No. CaptchaAI uses its own REST in.php / res.php format rather than CapSolver's JSON createTask API. But the workflow is identical (submit a task, poll for the result), so migration is a small field mapping, not a rewrite.
For a single integration point it is usually quick — convert the JSON task object to query parameters (type → method, websiteKey → googlekey, websiteURL → pageurl) and switch your response parsing. The submit-then-poll control flow stays the same.
Yes. Set up CaptchaAI as a parallel solver, verify it on your real targets, then move traffic over. You can keep CapSolver running as a fallback during the transition.
Yes. Every new account can start a 3-day trial with 5 threads — start it at captchaai.com/trial (then $15/month via PayPal unless you cancel) — or claim a free thread for 30 days. Run CaptchaAI and CapSolver in parallel on the same workload, compare solve times and success on your real targets, then cut over when you are satisfied.
CapSolver currently supports AWS WAF, DataDome, GeeTest v4, MTCaptcha and BotDeflector challenges that CaptchaAI does not cover. If those are central to your workflow, weigh that before switching. CaptchaAI in turn covers BLS, which CapSolver doesn't list.
At higher volume, the thread model is structurally cheaper because each thread does unlimited solves — so cost is driven by peak concurrency, not total solve count. Compare your monthly solve count against a thread tier on the pricing page.
Need more help? Check CaptchaAI Help Center
Ready to switch? Map the fields and run a solve.
Start a 3-day trial, point your solver at ocr.captchaai.com,
and run a real solve. Keep CapSolver alongside until you're confident.
Evidence & sources
Capability coverage is based on CaptchaAI's published supported CAPTCHA types (api-docs) and CapSolver's public documentation. CapSolver's task types (AWS WAF, DataDome, GeeTest v4, MTCaptcha, BotDeflector and grid classification; no BLS type) and its JSON createTask format are from its own documentation (docs.capsolver.com), accessed September 2026.
Cost examples use published CaptchaAI plans (captchaai.com/#pricing-plans) and CapSolver's published pay-per-use reCAPTCHA v2 rate (~$0.80 / 1,000), both accessed September 2026. Pricing and supported types change over time — confirm current numbers before relying on them. Solve times are representative, not guaranteed; results vary by target site and proxy quality.