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