# Captcha solver > API service for CAPTCHA automation in automated testing, hypothesis-checking scripts, and parsers that comply with the target resource's terms of use. No company registration, no sales calls - just a token and balance. Captcha solver provides a simple HTTP API to solve CAPTCHAs (reCAPTCHA v2, reCAPTCHA v3, Cloudflare Turnstile) programmatically. It is built for automated testing (QA and E2E pipelines), captcha automation, quick scripts for validating hypotheses, and data parsers that respect the terms of use of the target resource. Get an API token right after registration (email confirmation required) and pay per solve. Last updated: 2026-07-12 API version: v1 Documentation version: 1.5.2 ## API Base URL: https://api.captcha-solver.com The API is compatible with the anti-captcha request/response format, so existing client libraries work by pointing them at this base URL. All endpoints are POST with a JSON body. Authentication: pass your API key as `clientKey` in the JSON body of every request. ### POST /createTask Submit a captcha task. Request: { "clientKey": "YOUR_API_KEY", "task": { "type": "RecaptchaV2TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "6Le-xxxxxxxxxxxxxxxxxxxxxxxxxxxx" } } Success response: { "errorId": 0, "taskId": 100 } Task types (all types require `websiteURL` - the page URL, and `websiteKey` - the captcha sitekey). reCAPTCHA v2 and Turnstile come in two variants: Proxyless (solved from the service's IPs) and with your own proxy. reCAPTCHA v3 is Proxyless only - no proxy is needed for v3. Proxy variants (types without the Proxyless suffix) additionally require `proxyType` ("http", "socks4" or "socks5"), `proxyAddress` (proxy IP or hostname) and `proxyPort` (integer, 1-65535); optional: `proxyLogin` and `proxyPassword` (for proxies with authentication), `userAgent` (browser User-Agent to solve the captcha with). reCAPTCHA v2 (optional `isInvisible`: true for invisible reCAPTCHA; solution key: `gRecaptchaResponse`). Example task objects: { "type": "RecaptchaV2TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "6Le-xxxx", "isInvisible": false } { "type": "RecaptchaV2Task", "websiteURL": "https://example.com/login", "websiteKey": "6Le-xxxx", "proxyType": "http", "proxyAddress": "1.2.3.4", "proxyPort": 8080, "proxyLogin": "user", "proxyPassword": "password" } reCAPTCHA v3 (required `minScore`: minimum acceptable score, e.g. 0.3; optional `pageAction`; solution key: `gRecaptchaResponse`). Example task objects: { "type": "RecaptchaV3TaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "6Le-xxxx", "minScore": 0.3, "pageAction": "login" } Cloudflare Turnstile (no extra fields; solution key: `token`). Example task objects: { "type": "TurnstileTaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "0x4AAAAAAAxxxx" } { "type": "TurnstileTask", "websiteURL": "https://example.com/login", "websiteKey": "0x4AAAAAAAxxxx", "proxyType": "http", "proxyAddress": "1.2.3.4", "proxyPort": 8080 } Where to find `websiteKey`: in the HTML of the target page - the `data-sitekey` attribute of the captcha widget element, or the `k=` parameter in the reCAPTCHA iframe URL. Turnstile also uses the `data-sitekey` attribute. ### POST /getTaskResult Poll for the solution by taskId. Request: { "clientKey": "YOUR_API_KEY", "taskId": 100 } While solving: { "errorId": 0, "status": "processing" } When solved (reCAPTCHA v2/v3): { "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "03AGdBq..." } } When solved (Turnstile): { "errorId": 0, "status": "ready", "solution": { "token": "0.zxcv..." } } The `solution` key is `gRecaptchaResponse` for reCAPTCHA v2/v3 and `token` for Turnstile. Polling: wait 5 seconds after createTask, then poll every 5 seconds while `status` is "processing". A task that is not solved within 5 minutes expires and the reserved amount is refunded to the balance. Rate limit: 120 requests per minute per clientKey. ### POST /getBalance Check account balance. Request: { "clientKey": "YOUR_API_KEY" } Response: { "errorId": 0, "balance": 12.34 } Balance and prices are in USD. Per-type prices: see the Pricing page. ### Errors Any error is returned with `errorId` greater than 0: { "errorId": 1, "errorCode": "ERROR_KEY_DOES_NOT_EXIST", "errorDescription": "Account authorization key not found in the system or has incorrect format" } Common codes: ERROR_KEY_DOES_NOT_EXIST (invalid clientKey), ERROR_ZERO_BALANCE (top up the balance), ERROR_TASK_NOT_SUPPORTED (unknown type or missing required fields), ERROR_NO_SUCH_CAPCHA_ID (unknown or expired taskId), ERROR_CAPTCHA_UNSOLVABLE (task failed, the reserved amount is refunded). ## Docs - [API Docs](/en/api-docs): API reference and integration guide with cURL, Python, and Node.js examples - [Pricing](/en/pricing): Pricing per captcha type ## Account - [Register](/en/register): Create an account and get an API token - [Login](/en/login) ## Company - [About](/en/about) - [Contacts](/en/contacts): Support emails and service operator details - [Careers](/en/careers) - [Terms of Service](/en/terms-of-service) - [Privacy Policy](/en/privacy-policy) - [Payment Policy](/en/payment-policy) - [Acceptable Use Policy](/en/acceptable-use-policy)