Решение reCAPTCHA v3 через API
reCAPTCHA v3 это невидимая версия Google reCAPTCHA. У неё нет ни чекбокса, ни картинок: скрипт на странице следит за поведением посетителя и ставит оценку от 0.0 до 1.0, где 1.0 означает «скорее всего человек». Сайт получает токен с этой оценкой и решает, пропускать ли запрос.
Кликать здесь не по чему, поэтому reCAPTCHA v3 решается токеном. Вы отправляете в API Cap.Guru sitekey и адрес страницы, получаете готовый токен и передаёте его сайту так же, как это сделал бы виджет.
Посмотреть, как работает reCAPTCHA v3, можно на демо-странице reCAPTCHA.
Что нужно
Как найти параметры (нажмите, чтобы раскрыть)
Нужны два значения со страницы, где стоит reCAPTCHA v3.
Адрес страницы. Полный адрес страницы, где работает reCAPTCHA v3, например https://test.cap.guru/demo/recap.
Sitekey. Откройте страницу, нажмите F12 и найдите ключ в одном из мест:
- параметр
renderв ссылке на скрипт:https://www.google.com/recaptcha/api.js?render=6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT; - вызов вида
grecaptcha.execute('6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT', {action: 'submit'})в скриптах страницы; - параметр
kв адресе iframe reCAPTCHA (вкладка Network, запрос кrecaptcha/api2/anchor).

Берите оба значения с той страницы, где вы реально проходите проверку, иначе токен не пройдёт.
Отправка задачи
http://api.cap.guru/in.php
| Параметр | Тип | Обязателен | Описание |
|---|---|---|---|
| key | Строка | Да | Ваш API-ключ. Его можно посмотреть в личном кабинете |
| method | Строка | Да | userrecaptcha: сообщает сервису, что вы решаете reCAPTCHA |
| googlekey | Строка | Да | Sitekey, который вы нашли на странице Например 6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT |
| pageurl | Строка | Да | Полный адрес страницы с reCAPTCHA v3 Например https://test.cap.guru/demo/recap |
| version | Строка | Да | v3: сообщает сервису, что это reCAPTCHA v3 |
| min_score | Число По умолчанию: 0.1 | Нет | Минимальная оценка токена, от 0.1 до 0.9. Если сайт отклоняет токены с низкой оценкой, укажите значение выше, например 0.7 |
| cookies | Строка | Нет | Ваши cookies, которые будут использованы при решении капчи |
| userAgent | Строка | Нет | Ваш User-Agent, который будет использован при решении капчи |
| softguru | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие своё ПО с нашим сервисом, получают 1% от стоимости каждого такого запроса |
| json | Число По умолчанию: 0 | Нет | 0: сервер вернёт ответ простым текстом 1: сервер вернёт ответ в формате JSON |
| proxy | Строка | Нет | Формат: логин:пароль@151.142.23.32:3128 Подробнее о прокси здесь |
| proxytype | Строка | Нет | Тип вашего прокси: HTTP, HTTPS, SOCKS4, SOCKS5 |
Пример запроса:
http://api.cap.guru/in.php?key=YOUR_APIKEY&method=userrecaptcha&version=v3&googlekey=6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT&pageurl=https://test.cap.guru/demo/recap
ИЛИ
Пример запроса и ответа
Пример запроса
POST http://api.cap.guru/in.php
Host: api.cap.guru
Content-Type: application/json{
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"version": "v3",
"googlekey": "6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT",
"pageurl": "https://test.cap.guru/demo/recap",
"min_score": 0.1,
"json": 1
}В случае успеха вы получите OK|65787087 или {"status":1,"request":"65787087"}. Если номер задачи не пришёл, посмотрите полный список возможных ошибок.
Пример ответа
{
"status": 1,
"request": "65787087"
}Получение ответа
| Параметр | Тип | Обязателен | Описание |
|---|---|---|---|
| key | Строка | Да | Ключ можно посмотреть тут |
| action | Строка | Да | get — получить ответ |
| id | Число | Да | ID капчи, полученный от in.php |
| json | Число По умолчанию: 0 | Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
Пример запроса/ответа
Пример запроса
POST http://api.cap.guru/res.php
Host: api.cap.guru
Content-Type: application/json{
"key": "YOUR_API_KEY",
"action": "get",
"id": "XXXXXXXXXXXXXXXXXX", // for example 65787087
"json": 1
}После отправки задания нам, вы должны получить в ответ 'OK|03AFY_a8W0B6yEBwfbmzp6OEUr...' или {"status":1,"request":"03AFY_a8W0B6yEBwfbmzp6OEUr..."} в случае успешного выполнения запроса. Пожалуйста ознакомтесь с полным списоком возможных ошибок в случае если вы не получили ответ.
Пример ответа
{
"status":1,
"request":"03AFY_a8W0B6yEBwfbmzp6OEUr4GYgdREy1DAFvvtyI6FUzf5qY_738XQ9lIFB7huVK9qia1f9z1GyGWRW3HVEzIGU5JrR-DY2xAkVvdH23lbpBqFAvH79Rr4Cs5dsxENk_zoTa1jn70ORvBVfBHA_Fb-s_kqQEpmaxSIwf0fe8FGJjhsBoygXnvrmCnBPTf5ua4LoYSi4f12XcZdyf5dBRYPq4pHBqk5Ic2cj8InwX9ima-v9UKA64ugnIiUNFOB_BCHJ1tieaB-td4_B4MC8gBCzPQwwO5I3IDDaT17JR3uIBKfc70w-2mtDnfPznyT4dHZapWtZizLkGs2BSUsfM4nR9OtjshuYB8lwJkSfz3ynaBYOCE7SBbtVHCsjGgO7YtSI-BArHxUcPQdFILmtnSCvPV5IWEF_NxurJ3QlUMkaNvC6kHCphZZoJXpt8Q5f-Uyi0-bhGd4wjtqRFglyzpn8lEmqkxF2ydlQO1Ketclutd-w5wuuxoDDHJE7d5msHPjXYtVvuFh8A2nyAU4i2I5KfcmdMd3F2g"
}Как использовать токен
Токен передаётся сайту так же, как его передал бы скрипт reCAPTCHA. В зависимости от сайта это одно из трёх:
- скрытое поле
g-recaptcha-responseв форме; - поле или параметр в запросе, который сайт отправляет на свой сервер после
grecaptcha.execute; - функция callback, которую сайт передаёт reCAPTCHA.
Куда сайт кладёт токен, видно в скриптах страницы или на вкладке Network. Запрашивайте токен непосредственно перед отправкой: токен reCAPTCHA действует около двух минут и подходит для одной проверки.
Советы
- Сайт отклоняет токен. Проверьте, что sitekey и адрес взяты с одной и той же страницы и что токен использован в течение двух минут.
- Сайту нужна высокая оценка. Некоторые сайты отсекают низкие оценки. Укажите
min_scoreвыше, например0.7, а также передайте своиuserAgentиcookiesи используйте качественный прокси, чтобы решение шло в окружении, похожем на ваше. - Невидимая reCAPTCHA v2 не то же самое, что v3. Если в адресе iframe есть
size=invisible, а в ссылке на скрипт нет параметраrender=, это невидимая reCAPTCHA v2. Решайте её как описано на странице reCAPTCHA v2.