What is AnySolver
A unified CAPTCHA-solving API. One integration, every major provider, automatic routing.
What is a CAPTCHA?
A CAPTCHA is the puzzle a website shows to prove a visitor is human. It can be a checkbox, a grid of bicycles, a slider, or an invisible behavioural check. Bots fail it, the site blocks them.
What is a CAPTCHA solver?
A CAPTCHA solver is an API that solves those puzzles for you. You send the challenge, the solver returns a token, and your code submits the token like a human would. Every major solver runs its own pricing, schema, and reliability profile, so picking one and sticking with it is a lock-in problem.
How AnySolver fits in
AnySolver is a unified CAPTCHA-solving API and routing platform that lets developers access every major CAPTCHA solver (like CapSolver, 2Captcha, and EZCaptcha) through a single account. Instead of managing multiple provider accounts, you only need one API key and one balance to switch between solvers. Pick a routing strategy in the dashboard (cheapest, fastest, most reliable, or your own priority order) and AnySolver chooses a provider per task, runs it, and returns the solution.
Why AnySolver
How it works
Send a task. AnySolver picks a provider, runs it, and returns the token.

The same flow over the API. First, create the task:
{ "clientKey": "your-api-key-from-dashboard", "task": { "type": "ReCaptchaV2TokenProxyLess", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", "pageTitle": "reCAPTCHA demo" }}curl -X POST https://api.anysolver.com/createTask \ -H 'Content-Type: application/json' \ -d '{"clientKey":"your-api-key-from-dashboard","task":{"type":"ReCaptchaV2TokenProxyLess","websiteURL":"https://www.google.com/recaptcha/api2/demo","websiteKey":"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-","pageTitle":"reCAPTCHA demo"}}'const res = await fetch('https://api.anysolver.com/createTask', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ "clientKey": "your-api-key-from-dashboard", "task": { "type": "ReCaptchaV2TokenProxyLess", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", "pageTitle": "reCAPTCHA demo" }}),});const data = await res.json();import requestsres = requests.post( 'https://api.anysolver.com/createTask', json={ "clientKey": "your-api-key-from-dashboard", "task": { "type": "ReCaptchaV2TokenProxyLess", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", "pageTitle": "reCAPTCHA demo" }},).json()createTask responds immediately with a taskId:
{
"errorId": 0,
"taskId": "01KFNDF328KAN2AJ3BNHCQYE88"
}Then poll getTaskResult every two to three seconds until status is ready or failed:
{ "status": "processing", "taskId": "01KFNDF328KAN2AJ3BNHCQYE88", "errorId": 0, "taskType": "ReCaptchaV2TokenProxyLess", "provider": "Multibot", "solution": null}{ "status": "ready", "taskId": "01KFNDF328KAN2AJ3BNHCQYE88", "errorId": 0, "cost": 0.00013, "taskType": "ReCaptchaV2TokenProxyLess", "provider": "Multibot", "solution": { "token": "03AGdBq24PBCbwiDRaS_MJ7Z..." }}{ "status": "failed", "taskId": "01KFNDF328KAN2AJ3BNHCQYE88", "errorId": 1, "errorCode": "CAPTCHA_UNSOLVABLE", "errorDescription": "The captcha could not be solved.", "taskType": "ReCaptchaV2TokenProxyLess", "provider": "Multibot", "solution": null}The solution field is task-specific. ReCaptchaV2 returns a token; other task types return their own shape. See Tasks for per-task solution schemas.
See the Quick Start for the full flow with working code.
Routing strategies
Routing is configured per API key. Set it once and every task using that key follows the strategy.
Details: Routing strategies.
How pricing works
You are charged per task. AnySolver deducts an estimate when the task is created and reconciles to the actual cost when it completes. Failed tasks are refunded automatically.
Details: Pricing & Billing.