Skip to content
capzy
GeeTest v3/v4
GeeTestTaskProxyLess

GeeTest v3/v4 Solver, solved in 5.0s.

Solve GeeTest slider, click, and icon challenges. Supports both v3 (gt + challenge) and v4 (captchaId) formats.

Avg Speed~5.0s
Success99%+
Cost / 1k$2.00
Throughput12/m

GeeTest is a popular captcha used by many Chinese and international sites. It offers multiple challenge types: slider puzzles (drag to complete the image), click-in-order (click words/icons in sequence), and icon selection. GeeTest v3 uses a 'gt' key + server-generated 'challenge' value. GeeTest v4 uses a simpler 'captchaId' format.

Quick Integration

captchaId-based widgets. Send just the captchaId — we return the lot_number / pass_token / gen_time / captcha_output tuple.

solve.py
import requests, time

API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"

# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "GeeTestTaskProxyLess",
        "websiteURL": "https://example.com",
        "captchaId": "647f5ed2ed8acb4be36784e01556bb71"
    }
}).json()

task_id = task["taskId"]
print(f"Task created: {task_id}")

# Step 2: Poll for result
while True:
    result = requests.post(f"{API}/getTaskResult", json={
        "clientKey": KEY,
        "taskId": task_id
    }).json()

    if result["status"] == "ready":
        print("Solved!", result["solution"])
        break
    elif result["status"] == "failed":
        print("Failed:", result.get("errorDescription"))
        break

    time.sleep(1)

Using the result

captchaId-based widgets — submit these five fields; your backend forwards them to GeeTest's /validate.

use_result.py
# Step 3 — GeeTest v4: submit these to your site's form / endpoint
sol = result["solution"]
requests.post("https://target.example.com/verify", data={
    "captcha_id":     sol["captcha_id"],
    "lot_number":     sol["lot_number"],
    "pass_token":     sol["pass_token"],
    "gen_time":       sol["gen_time"],
    "captcha_output": sol["captcha_output"],
})

1. Send Payload

Dispatch your GeeTestTaskProxyLess to our processing cluster via the secure API endpoint.

2. Solving Engine

Capzy's proprietary solver handles slider and click variants and returns the validation token plus session cookies needed to submit the form.

3. Get Result

Poll getTaskResult for the validated token, then finalize your automated request.

Using your own proxy

Use GeeTestTask instead of GeeTestTaskProxyLess to route the solve through your own proxy — useful when the target site checks that the solving IP matches the submitting IP.

solve_proxy.py
import requests, time

API = "https://api.capzy.ai"
KEY = "capzy_your_key_here"

# Step 1: Create task
task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
        "type": "GeeTestTask",
        "websiteURL": "https://example.com",
        "captchaId": "647f5ed2ed8acb4be36784e01556bb71",
        "proxyType": "http",
        "proxyAddress": "123.45.67.89",
        "proxyPort": "8080",
        "proxyLogin": "user",
        "proxyPassword": "pass"
    }
}).json()

task_id = task["taskId"]
print(f"Task created: {task_id}")

# Step 2: Poll for result
while True:
    result = requests.post(f"{API}/getTaskResult", json={
        "clientKey": KEY,
        "taskId": task_id
    }).json()

    if result["status"] == "ready":
        print("Solved!", result["solution"])
        break
    elif result["status"] == "failed":
        print("Failed:", result.get("errorDescription"))
        break

    time.sleep(1)

Additional proxy parameters

proxyTypetypestringreqyesProxy protocol: http, https, socks4, or socks5
proxyAddresstypestringreqyesProxy IP address or hostname
proxyPorttypenumberreqyesProxy port number
proxyLogintypestringreqnoProxy username (if auth required)
proxyPasswordtypestringreqnoProxy password (if auth required)
userAgenttypestringreqnoUser-Agent string to use. Must match the UA you use when submitting the token

Task Parameters

API Spec
typetypestringreqyesGeeTestTaskProxyLess or GeeTestTask
websiteURLtypestringreqyesThe page URL
captchaIdtypestringreqnoGeeTest v4 captcha ID (use this OR gt+challenge)
gttypestringreqnoGeeTest v3 'gt' parameter
challengetypestringreqnoGeeTest v3 'challenge' parameter (server-generated, single-use)

Response Shape

captcha_idtypestringGeeTest v4: the captcha ID echoed back
lot_numbertypestringGeeTest v4: lot number
pass_tokentypestringGeeTest v4: pass token for server validation
gen_timetypestringGeeTest v4: generation timestamp
captcha_outputtypestringGeeTest v4: captcha output string

Example response

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "captcha_id": "647f5ed2ed8acb4be36784e01556bb71",
    "lot_number": "8a2c4e5b3f1d4567a9b8c0d2e3f4a5b6",
    "pass_token": "<long pass token from validation server>",
    "gen_time": "1735689600",
    "captcha_output": "<base64-encoded captcha output>"
  }
}

Error response

{
  "errorId": 1,
  "errorCode": "ERROR_CAPTCHA_UNSOLVABLE",
  "errorDescription": "Solver gave up."
}

Features

Supports GeeTest v3 and v4
Solves the slider puzzle reliably
Click-in-order challenge support
~8 second average solve time
Auto-detects v3 vs v4 from parameters
High-quality solves

Pricing & Stats

Per 1,000 solves$2.00
Avg solve time~5.0s
Success rate99%+
Throughput12/m

Start solving geetest v3/v4.

$0.10 in free credits — no card. ~250 free solves to test before you spend.

Frequently asked questions