Type de tâche
Cloudflare Turnstile
TurnstileTaskvotre proxy
Envoyez les paramètres de la page et recevez un token prêt à l’emploi, au même format de réponse que tous les autres types.
Avec votre proxy : la tâche est résolue via le proxy que vous transmettez, le token correspond donc à votre IP. Les identifiants du proxy sont supprimés après la résolution.
Métriques en direct, 24 h
Les métriques en direct de ce type apparaîtront sur la page de statut après le lancement.
Paramètres de la tâche
| Paramètre | Type | obligatoire | Paramètres de la tâche |
|---|---|---|---|
type | string | obligatoire | TurnstileTask |
websiteURL | string | obligatoire | URL complète de la page contenant le captcha. |
websiteKey | string | obligatoire | Clé du site (data-sitekey ou le paramètre k de la requête anchor). |
action | string | facultatif | action Turnstile (data-action), si le widget en définit une. |
turnstileCData | string | facultatif | cData Turnstile (data-cdata), si le widget en définit un. |
userAgent | string | facultatif | User-Agent utilisé pour la résolution ; utilisez le même lors de l’envoi du token. |
cookies | string | facultatif | Cookies du site cible au format key1=value1; key2=value2. |
proxyType | string | obligatoire | http, socks4 ou socks5. |
proxyAddress | string | obligatoire | Adresse IP ou hôte du proxy (adresses publiques uniquement). |
proxyPort | integer | obligatoire | Port du proxy. |
proxyLogin | string | facultatif | Identifiant du proxy, s’il exige une authentification. |
proxyPassword | string | facultatif | Mot de passe du proxy. Supprimé une fois la tâche résolue. |
Exemple
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
Autres types de tâches
- reCAPTCHA v2
RecaptchaV2TaskProxyless0,60 $US - reCAPTCHA v2
RecaptchaV2Task0,60 $US - reCAPTCHA v2 Enterprise
RecaptchaV2EnterpriseTaskProxyless1,50 $US - reCAPTCHA v2 Enterprise
RecaptchaV2EnterpriseTask1,50 $US - reCAPTCHA v3
RecaptchaV3TaskProxyless0,90 $US - reCAPTCHA v3 Enterprise
RecaptchaV3EnterpriseTaskProxyless2,00 $US - reCAPTCHA v3 Enterprise
RecaptchaV3EnterpriseTask2,00 $US - Cloudflare Turnstile
TurnstileTaskProxyless0,80 $US - Cloudflare Challenge
CloudflareChallengeTaskProxyless1,20 $US - Cloudflare Challenge
CloudflareChallengeTask1,20 $US - GeeTest v3
GeeTestTaskProxyless0,90 $US - GeeTest v3
GeeTestTask0,90 $US - GeeTest v4
GeeTestTaskProxylessV40,90 $US - GeeTest v4
GeeTestTaskV40,90 $US - Lemin
LeminTaskProxyless1,20 $US - Lemin
LeminTask1,20 $US - ARCaptcha
ARCaptchaTaskProxyless1,20 $US - ARCaptcha
ARCaptchaTask1,20 $US - ArvanCloud
ArvanCloudTaskProxyless1,20 $US - ArvanCloud
ArvanCloudTask1,20 $US