Get Captcha Providers

December 23, 2025 (October 3, 2026)

Table of contents

  1. Request Headers
  2. Responses
  3. Model
  4. Examples
  5. Try It

Retrieve configured captcha provider API keys (masked for security), with each key’s status and remaining balance.

https://api.useapi.net/v1/google-flow/accounts/captcha-providers

Request Headers

Authorization: Bearer {API token}

Responses

  • 200 OK

    Returns masked keys for all configured providers.

    With providers configured:

    {
      "CapSolver": "abc12…",
      "AntiCaptcha": "def34…",
      "balances": {
        "CapSolver": { "status": "ok", "balance": 68.87, "checkedAt": "2026-10-03T22:11:17.173Z" },
        "AntiCaptcha": { "status": "empty", "balance": 0, "checkedAt": "2026-10-03T22:11:17.173Z" }
      }
    }
    

    balances shows, for each key you added, whether it works and how much money is left on it. We ask each provider directly, and keep the answer for 15 minutes, so a balance can be up to 15 minutes old. checkedAt says when we asked. Saving keys with POST checks them again (if the last check is more than a minute old), so you can see right away whether a key you just added or topped up works.

    status Meaning
    ok The key works and has money on it.
    empty The key has no money left. We skip it until it is topped up.
    invalid The provider does not accept this key. Check it in your provider account.
    unavailable The provider did not answer. Try again in a few minutes.

    balance is the amount the provider reports, in its own unit: US dollars for most providers, points for YesCaptcha. It is left out when the key is invalid or the provider is unavailable. error is the provider’s message, only for invalid and unavailable.

    No providers configured (shows free credits if available):

    {
      "freeCaptchaCredits": 300
    }
    
  • 401 Unauthorized

    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)
  balances?: Record<string, {  // Per configured key, see below. Omitted when no keys are configured
    status: 'ok' | 'empty' | 'invalid' | 'unavailable'
    balance?: number          // As the provider reports it (US dollars for most, points for YesCaptcha)
    error?: string            // Provider's message, for invalid and unavailable only
    checkedAt: string         // When we asked the provider (ISO 8601). Answers are kept for 15 minutes
  }>
}

Note: freeCaptchaCredits is only included in the response when:

  • No captcha providers are configured, AND
  • The user has remaining free credits (> 0)

Examples

  • curl -H "Accept: application/json" \
         -H "Authorization: Bearer YOUR_API_TOKEN" \
         "https://api.useapi.net/v1/google-flow/accounts/captcha-providers"
    
  • const apiUrl = 'https://api.useapi.net/v1/google-flow/accounts/captcha-providers';
    const token = 'YOUR_API_TOKEN';
    
    const response = await fetch(apiUrl, {
      headers: {
        'Authorization': `Bearer ${token}`
      }
    });
    
    const result = await response.json();
    console.log('Configured providers:', result);
    
  • import requests
    
    apiUrl = 'https://api.useapi.net/v1/google-flow/accounts/captcha-providers'
    token = 'YOUR_API_TOKEN'
    
    headers = {
        'Authorization': f'Bearer {token}'
    }
    
    response = requests.get(apiUrl, headers=headers)
    print(response.status_code, response.json())
    

Try It