UNLOCK API
Cloudflare Turnstile

Cloudflare Turnstile

كيف ترسل مهمة Cloudflare Turnstile إلى UNLOCK API عبر createTask أو in.php: أسماء نوع المهمة، وكل معامل، وكائن solution، وحقول البروكسي، وأمثلة كود بـ 7 لغات.
السعر
$0.55 $0.00055 لكل مهمة
ترسل
رابط الصفحة ومفتاح الموقع، مع action وcData إن وُجدا في الأداة
تستلم
رمز لحقل cf-turnstile-response

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

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

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

يُقبل أيضًا: AntiTurnstileTaskProxyless

كائن المهمة

type
Stringمطلوب
اسم نوع المهمة. يُطابق بأي حالة أحرف. TurnstileTaskProxyless | TurnstileTask
websiteURL
Stringمطلوب
العنوان الكامل للصفحة التي تظهر فيها الكابتشا، يبدأ بـ http:// أو https://.
websiteKey
Stringمطلوب
مفتاح الموقع لأداة الكابتشا، تجده في مصدر الصفحة (مثلًا data-sitekey).
action
Stringاختياري
قيمة المعامل action في الأداة، إن حددته الصفحة.
data
Stringاختياري
قيمة المعامل cData في الأداة، إن حددته الصفحة.
pagedata
Stringاختياري
قيمة المعامل chlPageData، إن حددته الصفحة.
userAgent
Stringاختياري
قيمة User-Agent للمتصفح المستخدمة أثناء الحل. أرسل القيمة نفسها عند إرسال الإجابة.

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

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

لاسم النوع الذي يستخدم البروكسي فقط. أرسل الحقول المنفصلة أو سلسلة 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": "TurnstileTaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
  }
}

كائن solution

يُرجع في solution عندما تكون status هي ready.
token
String
الرمز المطلوب إرساله مع نموذج الصفحة.
userAgent
String
قيمة User-Agent المستخدمة أثناء الحل. استخدم القيمة نفسها عند إرسال الرمز.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "token": "0.zrSnRHO7h0HwSjSCU8oyzbjEtD8p...",
    "userAgent": "Mozilla/5.0 ..."
  },
  "cost": "0.00055",
  "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": "TurnstileTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
    }
}).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=turnstile&sitekey=SITE_KEY&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