Jenis tugas
reCAPTCHA v3 Enterprise
RecaptchaV3EnterpriseTaskProxylesstanpa proxy
reCAPTCHA v3 tidak memiliki widget: situs memberi skor pada setiap tindakan dari 0.0 hingga 1.0. API mengembalikan token untuk pageAction yang diminta; minScore menentukan skor yang Anda butuhkan.
Varian Enterprise: situs memuat enterprise.js dan dapat meneruskan data tambahan di enterprisePayload — kirim apa adanya.
Tanpa proxy: kami menyelesaikan dari infrastruktur kami sendiri. Paling cocok jika situs target tidak mengikat token ke IP.
Metrik langsung, 24 jam
Metrik langsung untuk jenis ini akan muncul di halaman status setelah peluncuran.
Parameter tugas
| Parameter | Tipe | wajib | Parameter tugas |
|---|---|---|---|
type | string | wajib | RecaptchaV3EnterpriseTaskProxyless |
websiteURL | string | wajib | URL lengkap halaman yang berisi captcha. |
websiteKey | string | wajib | Kunci situs (data-sitekey atau parameter k dari permintaan anchor). |
minScore | number | opsional | Skor yang Anda butuhkan, dari 0.1 hingga 0.9. Skor yang lebih tinggi butuh waktu lebih lama. |
pageAction | string | opsional | Nama tindakan yang diteruskan ke grecaptcha.execute di halaman. |
enterprisePayload | object | opsional | Parameter Enterprise tambahan, misalnya s, dalam bentuk objek. |
apiDomain | string | opsional | Domain tempat widget dimuat: google.com atau recaptcha.net. |
userAgent | string | opsional | User-Agent yang dipakai untuk penyelesaian; gunakan yang sama saat mengirim token. |
cookies | string | opsional | Cookie untuk situs target dalam format key1=value1; key2=value2. |
Contoh
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": "RecaptchaV3EnterpriseTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "6Le-SITE-KEY",
"minScore": 0.7,
"pageAction": "login",
},
}).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"]["gRecaptchaResponse"])
break