UNLOCK API
createTask

createTask

Создаёт задачу и возвращает её id. Цена типа задачи списывается с баланса, когда задача принята, и возвращается, если задача не удалась.
POSThttps://unlock-api.com/createTask
Отправляйте POST с Content-Type: application/json. Поля задачи зависят от типа задачи; см. Типы задач.

Параметры запроса

clientKey
StringОбязательный
Ваш API-ключ, 32 символа, со страницы аккаунта.
task
ObjectОбязательный
Объект задачи. Его поле type определяет, какие ещё поля нужны. Типы задач
callbackUrl
StringНеобязательный
Публичный адрес http(s). Когда задача решена или не удалась, результат отправляется туда методом POST в JSON.
softId
IntegerНеобязательный
Id вашего приложения, сохраняется вместе с задачей. appId принимается как то же поле.

Запрос

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "TurnstileTaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
  }
}

Ответ

{
  "errorId": 0,
  "taskId": 1001
}

Поля ответа

errorId
Integer
0, если запрос выполнен, 1, если нет.
taskId
Integer
Id задачи.
errorCode
String
Название ошибки, когда errorId равен 1.
errorDescription
String
Краткое описание ошибки на английском.

Примеры кода

import time, requests

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

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "TurnstileTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
    }
}).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"]["token"])
        break
else:
    raise SystemExit("timed out")

Ошибки этого метода

  • Неверный ключ. Скопируйте его заново со страницы аккаунта. (in.php и res.php: ERROR_WRONG_USER_KEY)

  • Запрос пришёл с IP, которого нет в списке разрешённых для аккаунта. Добавьте этот IP на странице аккаунта.

  • Этот аккаунт заблокирован. Напишите в поддержку со страницы аккаунта.

  • Слишком много запросов. Проверяйте результат не чаще раза в 5 секунд.

  • На балансе не хватает денег для задачи. Пополните баланс; ничего не списано.

  • Сейчас слишком много запросов, поэтому задачу не удалось принять. Попробуйте снова через несколько секунд; ничего не списано.

  • Тип задачи неизвестен или отключён. Проверьте название типа.

  • Обязательное поле отсутствует или имеет неверный формат.

  • websiteURL или pageurl отсутствует или не является полным адресом http(s).

  • Задаче с прокси нужны proxyAddress и proxyPort.

  • Картинки нет или она слишком маленькая.

  • Картинка больше 100 КБ.

  • Картинка не является корректным base64.