UNLOCK API
Своя задача (Imperva, Temu и другие)

Своя задача (Imperva, Temu и другие)

Как отправить задачу Своя задача (Imperva, Temu и другие) в UNLOCK API через createTask или in.php: названия типов задач, все параметры, объект solution, поля прокси и примеры кода на 7 языках.
Цена
$0.90 $0.0009 за задачу
Вы отправляете
class (Imperva, Temu, HUNT, tspd, Basilisk и другие) и его metadata
Вы получаете
Значения, которые возвращает этот class

Обзор и цена

Названия типов задачи

У этого типа одно название.
CustomTask

Объект задачи

type
StringОбязательный
Название типа задачи. Регистр букв не важен. CustomTask
class
StringОбязательный
Какую защиту решать, например Imperva или Temu.
websiteURL
StringНеобязательный
Полный адрес страницы, на которой показана капча, начиная с http:// или https://.
metadata
ObjectНеобязательный
Дополнительные значения, нужные выбранному class, в виде объекта.
userAgent
StringНеобязательный
User-Agent браузера для решения. Отправляйте тот же, когда передаёте ответ.

Поля, которых здесь нет, передаются решателю как есть.

Запрос

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "CustomTask",
    "class": "Imperva",
    "websiteURL": "https://example.com/login",
    "metadata": {
      "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=...",
      "incapsulaCookie": "incap_ses_..."
    }
  }
}

Объект solution

Возвращается в solution, когда status равен ready.
data
Object
Значения ответа для выбранного class.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "data": {
      "...": "..."
    }
  },
  "cost": "0.0009",
  "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": "CustomTask",
      "class": "Imperva",
      "websiteURL": "https://example.com/login",
      "metadata": {
        "incapsulaScriptUrl": "_Incapsula_Resource?SWJIYLWA=...",
        "incapsulaCookie": "incap_ses_..."
      }
    }
}).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=incapsula&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