UNLOCK API
GeeTest v3 / v4

GeeTest v3 / v4

Як надіслати задачу GeeTest v3 / v4 до UNLOCK API через createTask або in.php: назви типів задач, усі параметри, об'єкт solution, поля проксі та приклади коду 7 мовами.
Ціна
$0.70 $0.0007 за задачу
Ви надсилаєте
URL сторінки з gt і challenge (v3) або captcha_id (v4)
Ви отримуєте
Значення, які надсилає форма GeeTest

Огляд і ціна

Назви типу задачі

Використовуйте першу назву, щоб розв'язувати без проксі. Використовуйте другу назву й додайте поля проксі, щоб розв'язувати через власний проксі. Ціна однакова.
GeeTestTaskProxylessБез проксі
GeeTestTaskЧерез ваш проксі

Об'єкт задачі

type
StringОбов'язковий
Назва типу задачі. Регістр літер не важливий. GeeTestTaskProxyless | GeeTestTask
websiteURL
StringОбов'язковий
Повна адреса сторінки, на якій показано капчу, що починається з http:// або https://.
gt
StringНеобов'язковий
GeeTest v3: значення gt зі сторінки.
challenge
StringНеобов'язковий
GeeTest v3: свіже значення challenge. Отримуйте нове для кожної задачі.
geetestApiServerSubdomain
StringНеобов'язковий
API-сервер GeeTest, якщо сторінка використовує власний.
version
IntegerНеобов'язковий
4 для GeeTest v4. За замовчуванням 3.
initParameters
ObjectНеобов'язковий
GeeTest v4: об'єкт із captcha_id.
userAgent
StringНеобов'язковий
User-Agent браузера для розв'язання. Надсилайте той самий, коли передаєте відповідь.

Поля, яких тут немає, передаються розв'язувачу без змін.

Поля проксі

Лише для назви типу з проксі. Надішліть або окремі поля, або один рядок proxy.
proxyType
StringОбов'язковий
http, https, socks4 або socks5.
proxyAddress
StringОбов'язковий
IP-адреса або ім'я хоста проксі.
proxyPort
IntegerОбов'язковий
Порт проксі.
proxyLogin
StringНеобов'язковий
Ім'я користувача проксі, якщо воно потрібне.
proxyPassword
StringНеобов'язковий
Пароль проксі, якщо він потрібен.
proxy
String
Усі поля проксі одним рядком, наприклад http://user:pass@1.2.3.4:8080.

Робота через проксі

Запит

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GeeTestTaskProxyless",
    "websiteURL": "https://example.com/login",
    "gt": "81388ea1fc187e0c335c0a8907ff2625",
    "challenge": "2e2f0f65240058b683cb6ea21c303eea"
  }
}

Об'єкт solution

Повертається в solution, коли status дорівнює ready.
challenge
String
challenge GeeTest v3 для надсилання.
validate
String
Значення validate GeeTest v3.
seccode
String
Значення seccode GeeTest v3.
captcha_id
String
captcha_id GeeTest v4.
lot_number
String
lot_number GeeTest v4.
pass_token
String
pass_token GeeTest v4.
gen_time
String
gen_time GeeTest v4.
captcha_output
String
captcha_output GeeTest v4.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "challenge": "1ad03db8aff920037fb8117827eab171gu",
    "validate": "0e0ab9f2fdbf7b8e2c3c1a2d4f2c9b07",
    "seccode": "0e0ab9f2fdbf7b8e2c3c1a2d4f2c9b07|jordan",
    "captcha_id": "(v4) e392e1d7fd421dc63325744d5a2b9c73",
    "lot_number": "(v4) e6c3bed2854f41f880662c48afff5dcb",
    "pass_token": "(v4) fad5eb52fc83bf7617f4...",
    "gen_time": "(v4) 1693924478",
    "captcha_output": "(v4) fN36ufW6cQN2SQ-I..."
  },
  "cost": "0.0007",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Приклади коду

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "GeeTestTaskProxyless",
      "websiteURL": "https://example.com/login",
      "gt": "81388ea1fc187e0c335c0a8907ff2625",
      "challenge": "2e2f0f65240058b683cb6ea21c303eea"
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

for _ in range(60):   # 60 x 5 s = the 5 minute task limit
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(f"{r['errorCode']}: {r.get('errorDescription', '')}")   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"])
        break
else:
    raise SystemExit("timed out")

Метод форми in.php

Та сама задача через класичний запит із формою. res.php повертає відповідь текстом.
in.php, res.php
curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=geetest&gt=GT&challenge=CHALLENGE&pageurl=https://example.com/login&json=1"
# {"status":1,"request":"1001"}

curl -s "https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001&json=1"
# {"status":0,"request":"CAPCHA_NOT_READY"}  then  {"status":1,"request":"ANSWER"}

API форм: in.php і res.php