UNLOCK API
KeyCaptcha

KeyCaptcha

كيف ترسل مهمة KeyCaptcha إلى UNLOCK API عبر createTask أو in.php: أسماء نوع المهمة، وكل معامل، وكائن solution، وحقول البروكسي، وأمثلة كود بـ 7 لغات.
السعر
$1.495 $0.001495 لكل مهمة
ترسل
رابط الصفحة وقيم s_s_c الأربع من الصفحة
تستلم
رمز لحقل KeyCaptcha

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

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

استخدم الاسم الأول للحل بدون بروكسي. استخدم الاسم الثاني وأضف حقول البروكسي للحل عبر البروكسي الخاص بك. السعر نفسه.
KeyCaptchaTaskProxylessبدون بروكسي
KeyCaptchaTaskعبر البروكسي الخاص بك

كائن المهمة

type
Stringمطلوب
اسم نوع المهمة. يُطابق بأي حالة أحرف. KeyCaptchaTaskProxyless | KeyCaptchaTask
websiteURL
Stringمطلوب
العنوان الكامل للصفحة التي تظهر فيها الكابتشا، يبدأ بـ http:// أو https://.
s_s_c_user_id
Stringمطلوب
قيمة s_s_c_user_id من الصفحة.
s_s_c_session_id
Stringمطلوب
قيمة s_s_c_session_id من الصفحة.
s_s_c_web_server_sign
Stringمطلوب
قيمة s_s_c_web_server_sign من الصفحة.
s_s_c_web_server_sign2
Stringمطلوب
قيمة s_s_c_web_server_sign2 من الصفحة.

الحقول غير المذكورة هنا تُمرر إلى الحلّال كما أُرسلت.

حقول البروكسي

لاسم النوع الذي يستخدم البروكسي فقط. أرسل الحقول المنفصلة أو سلسلة proxy واحدة.
proxyType
Stringمطلوب
http أو https أو socks4 أو socks5.
proxyAddress
Stringمطلوب
عنوان IP للبروكسي أو اسم المضيف.
proxyPort
Integerمطلوب
منفذ البروكسي.
proxyLogin
Stringاختياري
اسم مستخدم البروكسي، إن كان البروكسي يتطلبه.
proxyPassword
Stringاختياري
كلمة مرور البروكسي، إن كان البروكسي يتطلبها.
proxy
String
كل حقول البروكسي في سلسلة واحدة، مثلًا http://user:pass@1.2.3.4:8080.

استخدام البروكسي

الطلب

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "KeyCaptchaTaskProxyless",
    "websiteURL": "https://example.com/login",
    "s_s_c_user_id": "184015",
    "s_s_c_session_id": "9ff29e0176e78eb7ba59314f92dbac1b",
    "s_s_c_web_server_sign": "964635241a3e5e76980f2572e5f63452",
    "s_s_c_web_server_sign2": "3ca802a38ffc5831fa293ac2819b1204"
  }
}

كائن solution

يُرجع في solution عندما تكون status هي ready.
token
String
الرمز المطلوب إرساله مع نموذج الصفحة.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "token": "d58e5a5bb1e2f58a3b2e6c6d6f8a1b2c|..."
  },
  "cost": "0.001495",
  "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": "KeyCaptchaTaskProxyless",
      "websiteURL": "https://example.com/login",
      "s_s_c_user_id": "184015",
      "s_s_c_session_id": "9ff29e0176e78eb7ba59314f92dbac1b",
      "s_s_c_web_server_sign": "964635241a3e5e76980f2572e5f63452",
      "s_s_c_web_server_sign2": "3ca802a38ffc5831fa293ac2819b1204"
    }
}).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"]["token"])
        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=keycaptcha&s_s_c_user_id=ID&s_s_c_session_id=SID&s_s_c_web_server_sign=S1&s_s_c_web_server_sign2=S2&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