# Official Docs And Analysis This file summarizes official API documentation for 2Captcha, YesCaptcha, and Anti-Captcha and maps them into one operational workflow. ## Official Sources ### 2Captcha - API docs hub: https://2captcha.com/api-docs - `createTask`: https://2captcha.com/api-docs/create-task - `getTaskResult`: https://2captcha.com/api-docs/get-task-result - `getBalance`: https://2captcha.com/api-docs/get-balance ### YesCaptcha - Dashboard: https://yescaptcha.com/dashboard.html - `createTask`: https://yescaptcha.atlassian.net/wiki/spaces/YESCAPTCHA/pages/7930129/createTask+submit+a+captcha+task - `getTaskResult`: https://yescaptcha.atlassian.net/wiki/spaces/YESCAPTCHA/pages/7930006/getTaskResult+Task+Result+Method - `getBalance`: https://yescaptcha.atlassian.net/wiki/spaces/YESCAPTCHA/pages/7930094/getBalance+balance+Method ### Anti-Captcha - API docs hub: https://anti-captcha.com/apidoc - `createTask`: https://anti-captcha.com/apidoc/methods/createTask - `getTaskResult`: https://anti-captcha.com/apidoc/methods/getTaskResult - `getBalance`: https://anti-captcha.com/apidoc/methods/getBalance ## Endpoint Matrix All three providers use `POST` + JSON and share the same core method names. | Provider | createTask | getTaskResult | getBalance | |---|---|---|---| | 2Captcha | `https://api.2captcha.com/createTask` | `https://api.2captcha.com/getTaskResult` | `https://api.2captcha.com/getBalance` | | YesCaptcha | `https://api.yescaptcha.com/createTask` | `https://api.yescaptcha.com/getTaskResult` | `https://api.yescaptcha.com/getBalance` | | Anti-Captcha | `https://api.anti-captcha.com/createTask` | `https://api.anti-captcha.com/getTaskResult` | `https://api.anti-captcha.com/getBalance` | ## Shared Request Pattern ### createTask ```json { "clientKey": "YOUR_API_KEY", "task": { "type": "RecaptchaV2TaskProxyless", "websiteURL": "https://example.com", "websiteKey": "SITE_KEY" } } ``` ### getTaskResult ```json { "clientKey": "YOUR_API_KEY", "taskId": 123456789 } ``` ### getBalance ```json { "clientKey": "YOUR_API_KEY" } ``` ## Shared Response Pattern - `errorId = 0`: request accepted/successful. - `errorId != 0`: inspect `errorCode` and `errorDescription`. - `getTaskResult.status`: - `processing` - `ready` with `solution`. ## Practical Differences - **Domain and account pool differ**: task acceptance, queue depth, and solve latency vary by provider. - **Balance shape differs slightly**: - 2Captcha and Anti-Captcha commonly return `balance`. - YesCaptcha may also return additional balance fields (for example `softBalance` and invite-related fields). - **Task support overlap is high but not perfect**: always verify task type and required fields per provider docs before failover. ## Integration Recommendations 1. Keep one canonical `task` payload schema in your project. 2. Swap only provider domain + API key for failover. 3. Poll every 3-5 seconds; stop on timeout and switch provider. 4. Log provider, task type, taskId, latency, and errorCode for reliability tuning. 5. Never hardcode API keys into version-controlled files. ## Live Connectivity Check (2026-03-03) `getBalance` was successfully called for all three providers (`errorId: 0`) during skill implementation on March 3, 2026.