Switch from 2Captcha to CaptchaAI by changing one URL.
Keep your existing code, methods, and response handling. Point your solver at CaptchaAI's drop-in endpoint and move to thread-based pricing with unlimited solves per thread — plus BLS, a type 2Captcha doesn't list, and a Cloudflare Challenge task that returns the cf_clearance cookie by API.
# Only the endpoint changes — same params, same response. - ENDPOINT = "https://2captcha.com" + ENDPOINT = "https://ocr.captchaai.com" import requests resp = requests.post(f"{ENDPOINT}/in.php", data={ "key": API_KEY, "method": "userrecaptcha", "googlekey": SITE_KEY, "pageurl": PAGE_URL, "json": 1, })
Same in.php / res.php flow you already use.
Supported CAPTCHA types
The wall you hit at scale
2Captcha gets you started. Volume is where per-solve pricing adds up.
2Captcha covers a very wide range of CAPTCHA types and is a fine place to begin. But as pipelines grow, you pay for every solve, and each CAPTCHA type has its own price per 1,000. Here's what changes when you move to thread-based pricing.
Why teams move
Five reasons developers switch
1. Concurrency you control
You buy concurrent threads, so your capacity is set by your plan rather than a per-solve balance. Each thread frees up the moment its CAPTCHA finishes, ready for the next one.
2. reCAPTCHA v3 included
Pass your action and get a v3 token back. Every v3
solve runs on your threads at no extra cost — 2Captcha prices v3 by the score you request
($1.45 per 1,000 up to 0.3, $2.99 above).
3. Cloudflare Challenge by API
Turnstile, plus Cloudflare Challenge and JS Challenge pages, with the
cf_clearance cookie returned by the API — 2Captcha documents challenge pages through a
Turnstile token you apply in your own browser.
4. BLS & government portals
BLS CAPTCHA support for visa-appointment and government automation workflows — a type 2Captcha doesn't list.
5. Drop-in API compatibility
2Captcha-compatible in.php / res.php
format. Switching is an endpoint and key change — your submit-and-poll flow and
CAPCHA_NOT_READY handling keep working.
Predictable thread-based cost
Pay per concurrent thread, not per solve. Unlimited solves per thread each month — no per-CAPTCHA fees and no type surcharges to forecast.
Migration
A drop-in change, not a rewrite
CaptchaAI mirrors the 2Captcha request/response format. Update two values — the endpoint and your API key — and your existing solve logic runs unchanged. Keep your remaining 2Captcha balance and cut projects over as credits run out.
- Map your current endpoint, method, and poll loop.
- Swap the base URL to
ocr.captchaai.comand drop in your CaptchaAI key. - Verify by running both services in parallel, then cut over.
import requests, time # Only these two lines change when moving from 2Captcha: API_KEY = "YOUR_CAPTCHAAI_KEY" API_URL = "https://ocr.captchaai.com" def solve_recaptcha(sitekey, pageurl): # Submit the challenge r = requests.post(f"{API_URL}/in.php", data={ "key": API_KEY, "method": "userrecaptcha", "googlekey": sitekey, "pageurl": pageurl, "json": 1, }) task_id = r.json()["request"] # Poll for the token (same as 2Captcha) 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") # Create your account at captchaai.com/register to get your API key
reCAPTCHA v3
Send the page's v3 action
Send the page action (and version / enterprise when
needed). Google scores the returned token and the site's own threshold decides, so check
acceptance on your real targets. There is no min_score parameter: drop it when you switch.
import requests resp = requests.post("https://ocr.captchaai.com/in.php", data={ "key": "YOUR_API_KEY", "method": "userrecaptcha", "version": "v3", "googlekey": "SITE_KEY", "pageurl": "https://example.com", "action": "login", "enterprise": 1, "json": 1, })
Side by side
CaptchaAI vs 2Captcha
Capability coverage, from each service's own documentation — see the evidence note.
| Feature | CaptchaAI | 2Captcha |
|---|---|---|
| reCAPTCHA v2 | ||
| reCAPTCHA v3 | ||
| reCAPTCHA Enterprise | ||
| Cloudflare Turnstile | ||
| Cloudflare Challenge / JS Challenge | cf_clearance via API | Turnstile token (your browser) |
| GeeTest v3 | ||
| BLS CAPTCHA | ||
| hCaptcha | Not in its API docs | |
| FunCaptcha (Arkose) | ||
| Image / OCR types | 27,500+ | Yes |
| API format | in.php / res.php | in.php / res.php |
| 2Captcha-compatible drop-in | — | |
| Billing model | Per thread (unlimited solves) | Per solve |
Where 2Captcha is strong: it covers many types CaptchaAI doesn't solve (GeeTest v4, FunCaptcha, DataDome, Amazon captcha and more), with human workers as a backup for unusual tasks. For high-volume pipelines where cost should follow concurrency rather than solve count, thread-based pricing is the more predictable fit.
Illustrative pipeline
What changes day to day
Representative example for a mid-volume scraping pipeline. Your numbers depend on target sites and proxy quality.
Before — 2Captcha (per-solve)
After — CaptchaAI (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 | 2Captcha (per-solve) | CaptchaAI plan | CaptchaAI cost | You save |
|---|---|---|---|---|
| 10,000 solves | $10–$30 | BASIC (5 threads) | $15 | Up to ~50% 2Captcha cheaper at $1.00 |
| 100,000 solves | $100–$299 | BASIC (5 threads) | $15 | ~85–95% |
| 1,000,000 solves | $1,000–$2,990 | ADVANCE (50 threads) | $90 | ~91–97% |
| 10,000,000 solves | $10,000–$29,900 | 2× ENTERPRISE (400 threads) | $600 | ~94–98% |
Illustrative. 2Captcha column uses its published reCAPTCHA v2 price range ($1.00–$2.99 / 1,000 solves, 2captcha.com/pricing, accessed September 2026); CaptchaAI plans are sized to peak concurrency, not total volume. Size threads to your peak in-flight solves — once paid for, extra solves run through them at no marginal cost. Confirm live numbers on captchaai.com/#pricing-plans.
FAQ
Frequently Asked Questions
No. CaptchaAI uses the same in.php / res.php request and response format. You change the endpoint URL and your API key — the rest of your solve logic and status checks keep working.
For API users it's usually a few minutes — swap the base URL and key. Wrapper-library users typically need no logic changes because the compatible format means the same method names and parameters.
Use it up. Point new projects at CaptchaAI and migrate existing ones as your 2Captcha credits run down. There's no forced cut-over.
Yes. Every new account can start a 3-day trial with 5 threads — start it here (then $15/month via PayPal unless you cancel) — or claim a free thread for 30 days. Run CaptchaAI and 2Captcha in parallel on the same workload, compare solve times and success on your real targets, then cut over when you're satisfied — your remaining 2Captcha balance stays usable.
No, but check two codes. CaptchaAI uses the same response format, including CAPCHA_NOT_READY while polling. A blank or malformed sitekey returns ERROR_WRONG_SITEKEY here (2Captcha returns ERROR_GOOGLEKEY, or ERROR_WRONG_GOOGLEKEY when the parameter is missing), and ERROR_ZERO_BALANCE can also mean you are at your thread limit, so back off and retry instead of stopping.
You pay for concurrent threads, and each thread does unlimited solves per month. For steady high-volume workloads that makes monthly cost predictable, since it scales with concurrency rather than total solve count. Compare your current monthly solve count against a thread tier on the pricing.
Need more help? Check CaptchaAI Help Center
Ready to switch? It starts with one URL.
Start a 3-day trial, change your endpoint to ocr.captchaai.com,
and run a real solve. Keep 2Captcha alongside until you're confident.
Evidence & method. Capability rows reflect CaptchaAI's published supported types (api-docs) and 2Captcha's own API docs (2captcha.com/api-docs), which list neither BLS nor hCaptcha and cover Cloudflare Challenge pages with a Turnstile token. The reCAPTCHA v2 solve time in “What changes day to day” comes from our own synthetic canary, which runs test solves on 14 CAPTCHA types every day. It is not a guarantee — real results vary by target site, CAPTCHA type, and proxy quality. Pricing reflects published CaptchaAI plans (captchaai.com/#pricing-plans) and 2Captcha's public per-solve model.
Last verified: 2026-09-29.