Skip to main content

reCAPTCHA V3

reCAPTCHA V3 is Google's latest CAPTCHA system. Unlike earlier versions, it requires no user interaction—no checkboxes or image challenges. Instead, it runs silently in the background and assigns a "humanity score" between 0.1 (likely bot) and 0.9 (likely human). Websites use this score to decide whether to allow or block a request.

Overview

reCAPTCHA V3 is fundamentally different from V2:

  • No visible challenge - Runs completely invisible to the user
  • Assigns a score - Not a binary pass/fail, but a probability score (0.1 to 0.9)
  • Must be submitted in backend - The token is sent to the server for verification
  • Action-based - Different actions (login, submit, etc.) can have different score thresholds
  • CaptchaAI provides score of 0.3 - Accepted by most websites
reCAPTCHA V3 Example

Example: reCAPTCHA V3 verification

How to Solve reCAPTCHA V3

Step 1: Extract Required Parameters

You need to find three parameters from the target webpage:

sitekey - Found in:

  • The URI of api.js as the value of render parameter: https://www.google.com/recaptcha/api.js?render=6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE
  • The grecaptcha.execute() JavaScript call
  • The ___grecaptcha_cfg configuration object

action - Found by inspecting JavaScript code for grecaptcha.execute function:

grecaptcha.execute('6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE', {action: 'do_something'})

If you can't find it, the default value is "verify".

pageurl - Full URL of the page where you see the reCAPTCHA V3

Step 2: Submit the Task to CaptchaAI

Send a GET request to https://ocr.captchaai.com/in.php with sitekey, action, and page URL:

import requests

# Submit the captcha task
params = {
'key': 'YOUR_API_KEY',
'method': 'userrecaptcha',
'version': 'v3',
'googlekey': '6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE',
'action': 'login',
'pageurl': 'https://example.com/page',
'json': '1'
}

response = requests.get('https://ocr.captchaai.com/in.php', params=params)
result = response.json()
task_id = result['request']
print(f"Task ID: {task_id}")

Step 3: Retrieve the Solution

Wait 15-20 seconds, then poll for the result using a GET request to https://ocr.captchaai.com/res.php:

import time

time.sleep(15) # Wait 15 seconds

params = {
'key': 'YOUR_API_KEY',
'action': 'get',
'id': task_id,
'json': '1'
}

response = requests.get('https://ocr.captchaai.com/res.php', params=params)
result = response.json()

if result['status'] == 1:
token = result['request']
print(f"Solution Token: {token}")

Step 4: Submit the Token to Backend

Important: Unlike V2, you do NOT inject the token into the DOM. Instead, send it in your backend request:

# Send token to the backend
import requests

data = {
'username': 'user@example.com',
'password': 'password123',
'g-recaptcha-response': token, # Include the token
'action': 'login' # Include the action
}

response = requests.post('https://example.com/api/login', data=data)
print(response.text)

Response Format

JSON Response (with json=1):

{
"status": 1,
"request": "03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo..."
}

Plain Text Response:

OK|03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo...

Common Errors

  • ERROR_WRONG_USER_KEY: API key is incorrect format. Check your API key (32 characters).
  • ERROR_KEY_DOES_NOT_EXIST: API key doesn't exist. Verify your API key.
  • ERROR_ZERO_BALANCE: Insufficient account balance. Top up your account to continue.
  • ERROR_PAGEURL: pageurl parameter is missing. Provide the full page URL.
  • ERROR_WRONG_GOOGLEKEY: sitekey is blank or malformed. Verify the sitekey extraction.
  • CAPCHA_NOT_READY: Solution not ready yet. Wait 5 seconds and poll again.

For complete error documentation, see the Error Handling Guide.

Tips & Best Practices

Tip: Always find the correct action name - it's crucial for matching the expected behavior.

Tip: Use json=1 parameter for structured responses that are easier to parse.

Tip: Send the token immediately after receiving it - tokens expire within minutes.

Tip: Include proxy and user-agent for better accuracy on protected sites.

API Reference

For complete API specifications and advanced options, visit the CaptchaAI API Documentation and select reCAPTCHA V3 from the sidebar.