# GeeTest v4

Solve GeeTest v4 challenges including icon click and slide. Task types, custom servers, and code examples.

Invisible captcha that returns validation tokens.


# Task Types

Task Type Description
GeeTestV4TaskProxyless Without proxy
GeeTestV4Task With your proxy

# Parameters

Parameter Type Required Description
websiteURL string Target URL with GeeTest
websiteKey string GeeTest captcha ID
captchaJs string GeeTest JS library URL (e.g. a specific version of gt4.js)
apiServers string Custom GeeTest API server URL
staticServers string Custom GeeTest static server URL

# Finding the Captcha ID

initGeetest4({
    captcha_id: "your_captcha_id_here",
    product: "bind"
});

Search for: captcha_id, gt4.geetest.com, or initGeetest4.

For custom servers, look for apiServers and staticServers in the initGeetest4 config.


# Example

response = requests.post("https://v1.captchasolv.com/solve", json={
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "GeeTestV4TaskProxyless",
        "websiteURL": "https://example.com",
        "websiteKey": "captcha_id_here",
        "captchaJs": "https://example.com/gt4.js",
        "apiServers": "https://captcha-api.example.com",
        "staticServers": "https://captcha-stat.example.com/www/js"
    }
}, timeout=130)

token_data = json.loads(response.json()["solution"]["token"])
# Use: token_data["lot_number"], token_data["captcha_output"], token_data["pass_token"], token_data["gen_time"]
const response = await axios.post('https://v1.captchasolv.com/solve', {
    clientKey: 'YOUR_API_KEY',
    task: {
        type: 'GeeTestV4TaskProxyless',
        websiteURL: 'https://example.com',
        websiteKey: 'captcha_id_here',
        captchaJs: 'https://example.com/gt4.js',
        apiServers: 'https://captcha-api.example.com',
        staticServers: 'https://captcha-stat.example.com/www/js'
    }
}, { timeout: 130000 });

const tokenData = JSON.parse(response.data.solution.token);

# Response

The token field contains JSON:

{
  "lot_number": "abc123",
  "captcha_output": "xyz789",
  "pass_token": "token123",
  "gen_time": "1706100000"
}

Parse the token and submit these fields to the site's verification endpoint.


# Tips

  • Parse the tokentoken is JSON string, parse it to get individual fields
  • Use immediately — GeeTest tokens expire quickly
  • Custom serversapiServers/staticServers are optional, only needed when the site uses non-default GeeTest infrastructure