UNLOCK API
Custom task (Imperva, Temu at iba pa)

Custom task (Imperva, Temu at iba pa)

Paano magpadala ng Custom task (Imperva, Temu at iba pa) task sa UNLOCK API gamit ang createTask o in.php: mga pangalan ng task type, bawat parameter, ang solution object, mga proxy field at code sample sa 7 wika.
Presyo
$0.90 $0.0009 bawat task
Ipapadala mo
class (Imperva, Temu, HUNT, tspd, Basilisk at iba pa) at ang metadata nito
Matatanggap mo
Ang mga value na ibinabalik ng class na iyon

Overview at presyo

Mga pangalan ng task type

Isa lang ang pangalan ng type na ito.
CustomTask

Task object

type
StringRequired
Pangalan ng task type. Tumutugma kahit anong letter case. CustomTask
class
StringRequired
Kung aling proteksyon ang iso-solve, halimbawa Imperva o Temu.
websiteURL
StringOptional
Buong address ng page kung saan lumalabas ang CAPTCHA, nagsisimula sa http:// o https://.
metadata
ObjectOptional
Mga dagdag na value na kailangan ng napiling class, bilang object.
userAgent
StringOptional
Browser User-Agent na gagamitin habang nagso-solve. Ipadala ang pareho kapag isinumite mo ang sagot.

Ang mga field na wala sa listahang ito ay ipinapasa sa solver kung paano ipinadala.

Request

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 object

Ibinabalik sa solution kapag ready ang status.
data
Object
Mga value ng sagot para sa napiling class.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "data": {
      "...": "..."
    }
  },
  "cost": "0.0009",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Mga code sample

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 form method

Parehong task gamit ang classic na form request. Ibinabalik ng res.php ang sagot bilang text.
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"}

Form API: in.php at res.php