#
GeeTest v4
Solve GeeTest v4 invisible captcha challenges.
#
Overview
GeeTest v4 is an invisible captcha that works behind the scenes. CaptchaSolv returns the validation tokens needed to pass the challenge.
#
Task Types
#
Parameters
#
Finding the Captcha ID
Look for GeeTest initialization in page source:
initGeetest4({
captcha_id: "your_captcha_id_here",
product: "bind"
});
Or search for:
captcha_idgt4.geetest.cominitGeetest4
#
Example
import requests, json
response = requests.post("https://v1.captchasolv.com/solve", json={
"clientKey": "YOUR_API_KEY",
"task": {
"type": "GeeTestV4TaskProxyless",
"websiteURL": "https://example.com",
"websiteKey": "captcha_id_here"
}
}, timeout=130)
token_data = json.loads(response.json()["solution"]["token"])
# Use: token_data["lot_number"], token_data["captcha_output"], token_data["pass_token"]
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'
}
}, { timeout: 130000 });
const tokenData = JSON.parse(response.data.solution.token);
// Use: tokenData.lot_number, tokenData.captcha_output, tokenData.pass_token
#
Response
{
"errorId": 0,
"solution": {
"token": "{\"lot_number\":\"abc123\",\"captcha_output\":\"xyz789\",\"pass_token\":\"token123\",\"gen_time\":\"1706100000\"}"
},
"cost": "0.00200"
}
The token field contains JSON with these fields:
#
Using the Solution
import json
# After solving
geetest = solve_geetest_v4(url, captcha_id)
# Submit to verification endpoint
response = requests.post("https://example.com/api/verify", json={
"lot_number": geetest["lot_number"],
"captcha_output": geetest["captcha_output"],
"pass_token": geetest["pass_token"],
"gen_time": geetest["gen_time"],
# ... other form data
})
#
Tips
- Parse the token - The
tokenfield is JSON, parse it to get individual fields - Use immediately - GeeTest tokens expire quickly
- Check product type - Some sites use
bind, others usefloatorpopup