UNLOCK API
Cloudflare Turnstile

Cloudflare Turnstile

Cara menghantar tugas Cloudflare Turnstile ke UNLOCK API dengan createTask atau in.php: nama jenis tugas, setiap parameter, objek solution, medan proxy dan contoh kod dalam 7 bahasa.
Harga
$0.55 $0.00055 setiap tugas
Anda hantar
URL halaman dan site key, serta action dan cData jika widget mempunyainya
Anda terima
Token untuk cf-turnstile-response

Ringkasan dan harga

Nama jenis tugas

Gunakan nama pertama untuk menyelesaikan tanpa proxy. Gunakan nama kedua dan tambah medan proxy untuk menyelesaikan melalui proxy anda sendiri. Harganya sama.
TurnstileTaskProxylessTanpa proxy
TurnstileTaskMelalui proxy anda

Turut diterima: AntiTurnstileTaskProxyless

Objek task

type
StringWajib
Nama jenis tugas. Dipadankan tanpa mengira huruf besar atau kecil. TurnstileTaskProxyless | TurnstileTask
websiteURL
StringWajib
Alamat penuh halaman tempat CAPTCHA dipaparkan, bermula dengan http:// atau https://.
websiteKey
StringWajib
Site key widget CAPTCHA, terdapat dalam sumber halaman (contohnya data-sitekey).
action
StringPilihan
Nilai parameter action widget, jika halaman menetapkannya.
data
StringPilihan
Nilai parameter cData widget, jika halaman menetapkannya.
pagedata
StringPilihan
Nilai parameter chlPageData, jika halaman menetapkannya.
userAgent
StringPilihan
User-Agent pelayar yang digunakan semasa menyelesaikan. Hantar yang sama apabila anda menghantar jawapan.

Medan yang tidak disenaraikan di sini dihantar kepada penyelesai seperti yang dihantar.

Medan proxy

Hanya untuk nama jenis proxy. Hantar sama ada medan berasingan atau satu rentetan proxy.
proxyType
StringWajib
http, https, socks4 atau socks5.
proxyAddress
StringWajib
Alamat IP atau nama host proxy.
proxyPort
IntegerWajib
Port proxy.
proxyLogin
StringPilihan
Nama pengguna proxy, jika proxy memerlukannya.
proxyPassword
StringPilihan
Kata laluan proxy, jika proxy memerlukannya.
proxy
String
Semua medan proxy dalam satu rentetan, contohnya http://user:pass@1.2.3.4:8080.

Menggunakan proxy

Permintaan

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "TurnstileTaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
  }
}

Objek solution

Dipulangkan dalam solution apabila status ialah ready.
token
String
Token untuk dihantar bersama borang halaman.
userAgent
String
User-Agent yang digunakan semasa menyelesaikan. Gunakan yang sama apabila anda menghantar token.
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
}

Contoh kod

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")

Kaedah borang in.php

Tugas yang sama dengan permintaan borang klasik. res.php memulangkan jawapan sebagai teks.
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 borang: in.php dan res.php