Typ zadania
Cloudflare Turnstile
TurnstileTaskwłasne proxy
Wystarczy wysłać parametry strony, by otrzymać gotowy token w tym samym formacie odpowiedzi co dla pozostałych typów.
Z własnym proxy: zadanie jest rozwiązywane przez przekazane proxy, więc token pasuje do adresu IP tego proxy. Dane logowania do proxy są usuwane po rozwiązaniu.
Metryki na żywo, 24 h
Metryki na żywo dla tego typu pojawią się na stronie statusu po starcie.
Parametry zadania
| Parametr | Typ | wymagany | Parametry zadania |
|---|---|---|---|
type | string | wymagany | TurnstileTask |
websiteURL | string | wymagany | Pełny URL strony z captcha. |
websiteKey | string | wymagany | Klucz witryny (data-sitekey lub parametr k żądania anchor). |
action | string | opcjonalny | action Turnstile (data-action), jeśli widżet ją ustawia. |
turnstileCData | string | opcjonalny | cData Turnstile (data-cdata), jeśli widżet je ustawia. |
userAgent | string | opcjonalny | User-Agent używany do rozwiązania; przy wysyłaniu tokenu należy użyć tego samego. |
cookies | string | opcjonalny | Pliki cookie docelowej witryny w formacie key1=value1; key2=value2. |
proxyType | string | wymagany | http, socks4 lub socks5. |
proxyAddress | string | wymagany | Adres IP lub host proxy (tylko adresy publiczne). |
proxyPort | integer | wymagany | Port proxy. |
proxyLogin | string | opcjonalny | Login do proxy, jeśli wymaga ono uwierzytelnienia. |
proxyPassword | string | opcjonalny | Hasło do proxy. Usuwane po rozwiązaniu zadania. |
Przykład
import time
import requests
API = "https://"
KEY = "YOUR_API_KEY"
# 1. create a task: the price is held, not charged
task = requests.post(f"{API}/createTask", json={
"clientKey": KEY,
"task": {
"type": "TurnstileTask",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAA-SITE-KEY",
"proxyType": "http",
"proxyAddress": "203.0.113.10",
"proxyPort": 8080,
"proxyLogin": "user",
"proxyPassword": "pass",
},
}).json()
if task["errorId"]:
raise RuntimeError(task["errorCode"])
# 2. poll the result (or pass "callbackUrl" and get a signed webhook)
while True:
time.sleep(3)
res = requests.post(f"{API}/getTaskResult",
json={"clientKey": KEY, "taskId": task["taskId"]}).json()
if res["errorId"]:
raise RuntimeError(res["errorCode"])
if res["status"] == "ready":
print(res["solution"]["token"])
break
Inne typy zadań
- reCAPTCHA v2
RecaptchaV2TaskProxyless0,60 USD - reCAPTCHA v2
RecaptchaV2Task0,60 USD - reCAPTCHA v2 Enterprise
RecaptchaV2EnterpriseTaskProxyless1,50 USD - reCAPTCHA v2 Enterprise
RecaptchaV2EnterpriseTask1,50 USD - reCAPTCHA v3
RecaptchaV3TaskProxyless0,90 USD - reCAPTCHA v3 Enterprise
RecaptchaV3EnterpriseTaskProxyless2,00 USD - reCAPTCHA v3 Enterprise
RecaptchaV3EnterpriseTask2,00 USD - Cloudflare Turnstile
TurnstileTaskProxyless0,80 USD - Cloudflare Challenge
CloudflareChallengeTaskProxyless1,20 USD - Cloudflare Challenge
CloudflareChallengeTask1,20 USD - GeeTest v3
GeeTestTaskProxyless0,90 USD - GeeTest v3
GeeTestTask0,90 USD - GeeTest v4
GeeTestTaskProxylessV40,90 USD - GeeTest v4
GeeTestTaskV40,90 USD - Lemin
LeminTaskProxyless1,20 USD - Lemin
LeminTask1,20 USD - ARCaptcha
ARCaptchaTaskProxyless1,20 USD - ARCaptcha
ARCaptchaTask1,20 USD - ArvanCloud
ArvanCloudTaskProxyless1,20 USD - ArvanCloud
ArvanCloudTask1,20 USD