Тип задачи
reCAPTCHA v3 Enterprise
RecaptchaV3EnterpriseTaskProxylessбез прокси
У reCAPTCHA v3 нет виджета: сайт оценивает каждое действие от 0.0 до 1.0. API возвращает токен для нужного pageAction; minScore задаёт требуемую оценку.
Enterprise-вариант: сайт загружает enterprise.js и может передавать дополнительные данные в enterprisePayload — отправляйте их как есть.
Без прокси: решаем со своей инфраструктуры. Подходит, если сайт не привязывает токен к IP.
Живые метрики, 24 ч
Живые метрики этого типа появятся на статус-странице после запуска.
Параметры задачи
| Параметр | Тип | обязательный | Параметры задачи |
|---|---|---|---|
type | string | обязательный | RecaptchaV3EnterpriseTaskProxyless |
websiteURL | string | обязательный | Полный URL страницы с капчей. |
websiteKey | string | обязательный | Ключ сайта (data-sitekey или параметр k запроса anchor). |
minScore | number | необязательный | Нужная оценка от 0.1 до 0.9. Чем выше, тем дольше решение. |
pageAction | string | необязательный | Имя действия, которое страница передаёт в grecaptcha.execute. |
enterprisePayload | object | необязательный | Дополнительные параметры Enterprise, например s, — объектом. |
apiDomain | string | необязательный | Домен, с которого грузится виджет: google.com или recaptcha.net. |
userAgent | string | необязательный | User-Agent для решения; отправляйте токен с ним же. |
cookies | string | необязательный | Cookies целевого сайта в формате key1=value1; key2=value2. |
Пример
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