UNLOCK API
범용 작업 (Imperva, Temu 등)

범용 작업 (Imperva, Temu 등)

createTask나 in.php로 UNLOCK API에 범용 작업 (Imperva, Temu 등) 작업을 보내는 방법이에요. 작업 종류 이름, 모든 항목, solution 객체, 프록시 항목, 7개 언어 코드 예시를 담았어요.
가격
$0.90 1건당 $0.0009
보내는 것
class(Imperva, Temu, HUNT, tspd, Basilisk 등)와 metadata
받는 것
그 class가 돌려주는 값

소개와 가격

작업 종류 이름

이 종류는 이름이 하나예요.
CustomTask

task 객체

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 객체

status가 ready일 때 solution에 담겨 와요.
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