Configure Captcha Providers
December 23, 2025 (February 18, 2026)
Table of contents
Configure captcha provider API keys for image and video generation. Google Flow requires reCAPTCHA v3 Enterprise tokens for API calls - these third-party services solve the captcha automatically.
Supported Providers:
| Provider | Cost per 1K | Avg Solve Time | Reports Back | Website |
|---|---|---|---|---|
| CapSolver | ~$3.00 | ~8-12s | Yes | capsolver.com — use promo code useapi for 8% discount |
| AntiCaptcha | ~$2.00 | ~8-12s | Yes | anti-captcha.com |
| YesCaptcha | varies | ~8-12s | No | yescaptcha.com |
| SolveCaptcha | ~$0.80 | ~30-60s ⚠️ | Yes | solvecaptcha.com |
| 2Captcha | ~$2.99 | ~30-60s ⚠️ | Yes | 2captcha.com |
| EzCaptcha | ~$2.50 | ~8-12s | No | ez-captcha.com — currently not recommended due to low solve rate |
⚠️ SolveCaptcha and 2Captcha typically take 30-60 seconds per solve compared to ~8-12 seconds for other providers. They work well as low-cost fallbacks but may increase overall request latency when used as primary providers.
Reports Back — providers that support solve result reporting receive feedback (correct/incorrect) after each captcha use. This helps improve token quality over time as providers learn from the results.
Use GET /accounts/captcha-stats?anonymized=true to compare success rates across providers. Configure multiple providers for redundancy - the API will automatically retry with different providers if one fails or returns a rejected token.
Captcha Parameters
These parameters are available on all endpoints that require captcha: POST /images, POST /images/upscale, POST /videos, POST /videos/upscale, POST /videos/extend.
captchaToken— a user-provided reCAPTCHA v3 Enterprise token. When provided, the API uses this token directly instead of solving captcha through a provider. Single attempt, no retry. Must be a valid token string (minimum 20 characters).captchaRetry— number of captcha retry attempts (1-10, default: 3). Cycles through configured providers in priority order (see below). Each attempt uses the next provider in the sequence, wrapping around if needed.captchaOrder— explicit captcha provider sequence as comma-separated string (e.g.,"AntiCaptcha,AntiCaptcha,CapSolver"). Maximum 10 entries. Each provider must have an API key configured. Overrides the default provider order.
Note: captchaToken, captchaRetry, and captchaOrder are mutually exclusive - only one can be specified per request.
Default provider order: CapSolver → AntiCaptcha → YesCaptcha → CapMonster → SolveCaptcha → 2Captcha → EzCaptcha. The API prioritizes faster providers first. If CapSolver is configured, it is always used first. Remaining providers follow the order listed above.
https://api.useapi.net/v1/google-flow/accounts/captcha-providers
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
API tokenis required, see Setup useapi.net for details.
Request Body
{
"CapSolver": "<your CapSolver API key>",
"AntiCaptcha": "<your AntiCaptcha API key>",
"YesCaptcha": "<your YesCaptcha API key>",
"SolveCaptcha": "<your SolveCaptcha API key>",
"2Captcha": "<your 2Captcha API key>",
"EzCaptcha": "<your EzCaptcha API key>"
}
CapSolveris optional. API key from capsolver.com.AntiCaptchais optional. API key from anti-captcha.com.YesCaptchais optional. API key from yescaptcha.com.SolveCaptchais optional. API key from solvecaptcha.com.2Captchais optional. API key from 2captcha.com.EzCaptchais optional. API key from ez-captcha.com.
Notes:
- All fields are optional - only include providers you want to configure
- Set a field to empty string
""to remove that provider - Users receive 100 free captcha credits (powered by CapSolver) when adding their first Google Flow account. These credits are used automatically when no provider API keys are configured.
- Once free credits are exhausted, at least one provider must be configured to use POST /images, POST /images/upscale, or POST /videos
Responses
-
Captcha providers configured successfully. Returns masked keys for all configured providers.
With providers configured:
{ "CapSolver": "abc...***...xyz", "AntiCaptcha": "def...***...uvw" }All providers removed (shows free credits if available):
{ "freeCaptchaCredits": 100 } -
Invalid provider name specified.
{ "error": "Invalid captcha provider(s): InvalidProvider. Valid providers: CapSolver, AntiCaptcha, YesCaptcha, CapMonster, SolveCaptcha, 2Captcha, EzCaptcha" } -
Invalid API token.
{ "error": "Unauthorized" }
Model
{ // TypeScript, all fields are optional
CapSolver?: string // Masked API key or omitted if not configured
AntiCaptcha?: string // Masked API key or omitted if not configured
YesCaptcha?: string // Masked API key or omitted if not configured
CapMonster?: string // Masked API key or omitted if not configured
SolveCaptcha?: string // Masked API key or omitted if not configured
'2Captcha'?: string // Masked API key or omitted if not configured
EzCaptcha?: string // Masked API key or omitted if not configured
freeCaptchaCredits?: number // Remaining free credits (only shown when no providers configured)
}
Note: freeCaptchaCredits is only included in the response when:
- No captcha providers are configured (all removed), AND
- The user has remaining free credits (> 0)
Examples
-
curl -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -X POST "https://api.useapi.net/v1/google-flow/accounts/captcha-providers" \ -d '{ "AntiCaptcha": "<your AntiCaptcha API key>", "CapSolver": "<your CapSolver API key>" }' -
const apiUrl = 'https://api.useapi.net/v1/google-flow/accounts/captcha-providers'; const token = 'YOUR_API_TOKEN'; const response = await fetch(apiUrl, { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ AntiCaptcha: '<your AntiCaptcha API key>', CapSolver: '<your CapSolver API key>' }) }); const result = await response.json(); console.log('Captcha providers configured:', result); -
import requests apiUrl = 'https://api.useapi.net/v1/google-flow/accounts/captcha-providers' token = 'YOUR_API_TOKEN' headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {token}' } body = { 'AntiCaptcha': '<your AntiCaptcha API key>', 'CapSolver': '<your CapSolver API key>' } response = requests.post(apiUrl, headers=headers, json=body) print(response.status_code, response.json())