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 الخاصة بها
تستلم
القيم التي تعيدها تلك الفئة

نظرة عامة والسعر

أسماء نوع المهمة

لهذا النوع اسم واحد.
CustomTask

كائن المهمة

type
Stringمطلوب
اسم نوع المهمة. يُطابق بأي حالة أحرف. CustomTask
class
Stringمطلوب
الحماية المطلوب حلها، مثلًا Imperva أو Temu.
websiteURL
Stringاختياري
العنوان الكامل للصفحة التي تظهر فيها الكابتشا، يبدأ بـ http:// أو https://.
metadata
Objectاختياري
قيم إضافية يحتاجها الصنف المختار، ككائن.
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
قيم الإجابة للصنف المختار.
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