Captcha Solver Available

Geetest v3 Solver

High-accuracy solution for Geetest v3 captchas of any difficulty.

CaptchaAI is a powerful GeeTest v3 solver for developers and automation systems. Easily solve GeeTest v3 CAPTCHA challenges and bypass GeeTest v3 verification in protected workflows with our GeeTest v3 solving service, offering stable token generation and scalable concurrency.

  • > 100% success rate
  • Thread-based subscription
  • Unlimited solving
  • Per 1,000: Custom quote
  • No per-captcha billing
Geetest v3
Product
Success Rate
Speed
Subscription
Per 1,000
How to bypass
Geetest v3
High-accuracy solution for Geetest v3 captchas of any difficulty.
100%+
Success Rate
< 12 sec
Typical solving time
Custom plan
Unlimited solving
Custom quote
Per 1,000

How to Solve Geetest v3

CaptchaAI provides automated Geetest v3 solving for developers and automation systems. 
Our Geetest v3 solver allows you to solve Geetest v3 and bypass Geetest v3 verification using a simple API workflow.

Step 1: Extract Geetest Parameters

Find the dynamic Geetest parameters from the target site, typically in the initGeetest function:

Parameters to extract:

  • gt - Public site key (usually static)
  • challenge - Dynamic token loaded with the CAPTCHA (must be fresh)
  • pageurl - Full URL of the current page
  • api_server - Optional: API server location (e.g., api-na.geetest.com)

⚠️ CRITICAL: The challenge becomes invalid once loaded or after a timeout. Always get a fresh challenge immediately before solving.

Step 2: Submit the Task to CaptchaAI

Send a GET request to https://ocr.captchaai.com/in.php with the Geetest parameters:

PYTHON
import requests

# Submit the captcha task
params = {
    'key': 'YOUR_API_KEY',
    'method': 'geetest',
    'gt': 'f1ab2cdjja3456116012345b6c78d99e',
    'challenge': '12345678abc90123d45678ef90123a456b',
    'api_server': 'api-na.geetest.com',
    '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:

PYTHON
import time
import json

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:
    solution = json.loads(result['request'])
    print(f"Challenge: {solution['challenge']}")
    print(f"Validate: {solution['validate']}")
    print(f"Seccode: {solution['seccode']}")

Step 4: Submit the Solution

Submit the three values (challenge, validate, seccode) to the target website:

PYTHON
# Using requests to submit the form
data = {
    'username': 'user@example.com',
    'password': 'password123',
    'geetest_challenge': solution['challenge'],
    'geetest_validate': solution['validate'],
    'geetest_seccode': solution['seccode']
}

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

Developer Quick Start

Solve Geetest v3 Using CaptchaAI API

Integrate Geetest v3 solving easily using the CaptchaAI API.
Use ready-to-run examples to automate Geetest v3 verification flows quickly.


import requests
import time

API_KEY = "YOUR_API_KEY_HERE"
GT = "54088bb07d2df3c46b79f80300b0abbe"
CHALLENGE = "33f0ee8c2dd811f2b224ba4a39e85c55"
API_SERVER = "api.geetest.com"
PAGE_URL = "https://www.geetest.com/en/demo"

# Submit captcha
response = requests.post("https://ocr.captchaai.com/in.php", data={
    'key': API_KEY,
    'method': 'geetest',
    'gt': GT,
    'challenge': CHALLENGE,
    'api_server': API_SERVER,
    'pageurl': PAGE_URL,
    'json': 1
})

task_id = response.json()['request']
print(f"Task ID: {task_id}")

# Wait and get result
time.sleep(20)
while True:
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        'key': API_KEY,
        'action': 'get',
        'id': task_id,
        'json': 1
    }).json()
    
    if result['status'] == 1:
        print(f"Response: {result['request']}")
        break
    time.sleep(5)
const axios = require('axios');

const API_KEY = 'YOUR_API_KEY_HERE';
const GT = '54088bb07d2df3c46b79f80300b0abbe';
const CHALLENGE = '33f0ee8c2dd811f2b224ba4a39e85c55';
const API_SERVER = 'api.geetest.com';
const PAGE_URL = 'https://www.geetest.com/en/demo';

async function solveCaptcha() {
  // Submit captcha
  const formData = new URLSearchParams({
    key: API_KEY,
    method: 'geetest',
    gt: GT,
    challenge: CHALLENGE,
    api_server: API_SERVER,
    pageurl: PAGE_URL,
    json: 1
  });
  
  const submitRes = await axios.post('https://ocr.captchaai.com/in.php', formData);
  const taskId = submitRes.data.request;
  console.log(`Task ID: ${taskId}`);
  
  // Wait and get result
  await new Promise(resolve => setTimeout(resolve, 20000));
  
  while (true) {
    const result = await axios.get('https://ocr.captchaai.com/res.php', {
      params: { key: API_KEY, action: 'get', id: taskId, json: 1 }
    });
    
    if (result.data.status === 1) {
      console.log(`Response: ${result.data.request}`);
      break;
    }
    await new Promise(resolve => setTimeout(resolve, 5000));
  }
}

solveCaptcha();
<?php

$API_KEY = 'YOUR_API_KEY_HERE';
$GT = '54088bb07d2df3c46b79f80300b0abbe';
$CHALLENGE = '33f0ee8c2dd811f2b224ba4a39e85c55';
$API_SERVER = 'api.geetest.com';
$PAGE_URL = 'https://www.geetest.com/en/demo';

// Submit captcha
$ch = curl_init('https://ocr.captchaai.com/in.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
    'key' => $API_KEY,
    'method' => 'geetest',
    'gt' => $GT,
    'challenge' => $CHALLENGE,
    'api_server' => $API_SERVER,
    'pageurl' => $PAGE_URL,
    'json' => 1
]));

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

$taskId = $response['request'];
echo "Task ID: $taskId\n";

// Wait and get result
sleep(20);

while (true) {
    $ch = curl_init('https://ocr.captchaai.com/res.php?' . http_build_query([
        'key' => $API_KEY,
        'action' => 'get',
        'id' => $taskId,
        'json' => 1
    ]));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = json_decode(curl_exec($ch), true);
    curl_close($ch);
    
    if ($result['status'] == 1) {
        echo "Response: " . $result['request'] . "\n";
        break;
    }
    sleep(5);
}

?>

FAQ

Frequently Asked Questions

GeeTest v3 uses a behavioral challenge-response system that validates user interaction before granting access.

Submit the required challenge parameters and retrieve the validation token programmatically.

Verification may fail due to incorrect challenge values or expired session tokens.

GeeTest relies more heavily on interactive behavioral puzzles compared to Google’s risk-scoring models.

Need more help? Check CaptchaAI Help Center

channel avatar
CaptchaAI
online

Welcome 👋

Contact Us On Telegram!

Contact Team
Telegram