2Captcha API v1
Попробуйте новый API. API v2 построен на JSON
Более ранний API v1 продолжает оставаться стабильным и поддерживаться. Если вы не планируете использовать новый API v2, никаких действий не требуется. Мы поддерживаем обе версии API.
Попробуйте API v22Captcha - это сервис для автоматического распознавания изображений. Сервис позволяет решать капчу, а также конвертировать в текст любые изображения, которые может распознать человек. API сервиса позволяет быстро и легко автоматизировать выполнение этих задач.
Введение
Мы предоставляем программный интерфейс (API), который позволяет интегрировать ваше программное обеспечение с нашим сервисом и автоматизировать процесс распознавания изображений и решения капчи.
Процесс распознавания изображений и решения капчи состоит из нескольких простых шагов:
- Вы отправляете изображение на наш сервер.
- Сервер возвращает вам уникальный идентификатор вашей задачи (Captcha ID).
- Вы запускаете цикл, который проверяет, выполнена ли задача.
- Сервер возвращает вам результат распознавания.
Последние изменения
22 апреля 2024
Добавлена поддержка Tencent
12 апреля 2024
Добавлена поддержка atbCAPTCHA
19 декабря 2023
Добавлена поддержка Frienly Captcha
14 ноября 2023
Добавлена поддержка Cutcaptcha
21 сентября 2023
Добавлена поддержка CyberSiAra, MTCaptcha и DataDome
16 мая 2023
Добавлена поддержка распознавания аудио
27 января 2023
Добавлена поддержка Amazon WAF Captcha
7 декабря 2022
Добавлена поддержка Cloudflare Turnstile
13 октября 2022
Временно убрана поддержка капчи TikTok
29 июля 2022
Добавлена поддержка Lemin Cropped Captcha
24 марта 2022
Добавлена поддержка Geetest v4
5 июля 2021
Добавлена поддержка домена recaptcha.net для reCAPTCHA
22 декабря 2020
Добавлена Демо страница
1 сентября 2020
Добавлен метод для решения reCAPTCHA Enterpise
27 июля 2020
Добавлен метод для решения капчи TikTok
1 июня 2020
Добавлена поддержка Capy Puzzle
29 мая 2020
Добавлена поддержка data-s, cookies и userAgent для reCAPTCHA V2
4 июля 2019
Добавлена поддержка параметра surl
для FunCaptcha
18 июня 2019
Добавлен интерфейс управления адресами pingback. Подробнее
31 мая 2019
Добавлен метод ReportGOOD и мы рекомендуем всем его использовать. Подробнее
11 февраля 2019
Добавлен метод для Geetest капчи. Подробнее
1 февраля 2019
Добавлен метод для отладки. Подробнее
14 декабря 2018
Добавили описание API для reCAPTCHA V3 Подробнее
21 сентября 2018
Обновили логику pingback. Теперь нужно регистрировать только домен/IP вместо полного URL. Подробнее
17 апреля 2018
Добавлен новый параметр для расширенной поддержки языков. Подробнее
18 января 2018
Добавлен новый параметр для невидимой reCAPTCHA. Подробнее
17 января 2018
Добавлен новый метод для FunCaptcha! Описание метода
25 декабря 2017
Метод KeyCaptcha снова доступен! Описание метода здесь.
12 декабря 2017
Метод AudioCaptha более не поддерживается.
27 февраля 2017
Добавлены рекомендации по решению невидимой reCAPTCHA. Больше информации здесь.
24 ноября 2016
Добавлены новые коды ошибок, связанные с ограничениями на запросы к сервису. Больше информации здесь.
9 ноября 2016
Добавлены новые примеры кода для решения reCAPTCHA V2. Вы можете найти их здесь.
9 ноября 2016
В настоящее время мы можем решить reCAPTCHA V2 на любом сайте. От вас требуется прислать полный URL страницы, на которой нужно решить reCAPTCHA (ранее это не требовалось). Отправка информации о прокси не обязательная, но мы рекомендуем это делать.
Тарифы
Наши тарифы доступны на странице Тарифы
Демо страница
Вы можете ознакомиться с примерами решения различных видов капчи на PHP, Java и Python на нашей Демо странице.
Решение капчи
Наш API построен на HTTP-запросах и поддерживает как протокол HTTP, так и HTTPS.
Адреса API:
http://2captcha.com/in.php
используется для отправки капчиhttp://2captcha.com/res.php
используется для получения ответа на капчу
Алгоритм решения капчи с помощью нашего сервиса достаточно прост и практически одинаков для всех видов капчи.
- Получите ваш персональный ключ API в настройках вашего аккаунта. Для каждого пользователя генерируется уникальный аутентификационный токен, мы называем "персональный ключ API". Это строка из 32 символов, которая выглядит примерно так:
1abc234de56fab7c89012d34e56fa7b8
Этот ключ используется для всех ваших запросов к серверу. - Отправьте запрос HTTP POST на URL нашего API:
http://2captcha.com/in.php
с персональным ключом API и параметрами, соответствующеми виду вашей капчи.
Сервер вернёт идентификатор вашей капчи или код ошибки, если что-то пошло не так. - Подождите 5 секунд (для reCAPTCHA — 20 секунд ).
- Отправьте запрос HTTP GET на URL нашего API:
http://2captcha.com/res.php
с персональным ключом API и полученным ранее идентификатором капчи, чтобы получить результат.
Если ваша капча уже решена, сервер вернёт ответ на неё в формате, соответстующем виду капчи.
По умолчанию сервер возвращает ответ как простой текст, например: OK|ТЕКСТ. Ответ также можно получить в формате JSON {"status":1,"request":"ТЕКСТ"}, для этого нужно использовать параметр json.
Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если с вашим запросом что-то не так, сервер вернёт код ошибки.
Обычные капчи
Обычная капча — это изображение, на котором размещён искажённый текст, который может быть прочитан человеком. Чтобы решить капчу, нужно ввести текст с изображения.
Чтобы решить нормальную капчу с помощью нашего сервиса, вам необходимо загрузить изображение с помощью HTTP POST запроса к URL нашего API:
http://2captcha.com/in.php
Сервер принимает изображения в формате multipart или base64.
Пример multipart-формы
<form method="post" action="http://2captcha.com/in.php" enctype="multipart/form-data">
<input type="hidden" name="method" value="post">
Ваш ключ:
<input type="text" name="key" value="YOUR_APIKEY">
Файл капчи:
<input type="file" name="file">
<input type="submit" value="Загрузить и получить ID">
</form>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
Пример base64-формы
<form method="post" action="http://2captcha.com/in.php">
<input type="hidden" name="method" value="base64">
Ваш ключ:
<input type="text" name="key" value="YOUR_APIKEY">
Тело файла капчи в формате base64:
<textarea name="body">BASE64_FILE</textarea>
<input type="submit" value="Загрузить и получить ID">
</form>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
BASE64_FILE — тело файла капчи в формате base64.
Вы можете указать дополнительные параметры в вашем запросе, чтобы определить, какой тип капчи вы решаете и помочь нашим работникам решить её правильно. Полный список параметров приведён в таблице ниже.
Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например:
OK|2122988149
или в формате JSON:
{"status":1,"request":"2122988149"}
если вы использовали параметр json в запросе.
Если что-то пошло не так, сервер вернёт ошибку. Описание ошибок приведено в главе Обработка ошибок.
Подождите 5 секунд и отправьте HTTP GET запрос к URL нашего API:
http://2captcha.com/res.php
с персональным ключом API и полученным ранее идентификатором капчи, чтобы получить результат. Список параметров для запроса приведен в таблице ниже.
Если ваша капча уже решена, сервер вернёт ответ на неё в виде простого текста, например:
OK|TEXT
или в формате JSON
{"status":1,"request":"TEXT"}
если вы использовали параметр json.
Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт ошибку, описание которой можно найти в главе Обработка ошибок.
POST параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | post — говорит о том, что вы отправляете изображение с помощью multipart-фомы base64 — говорит о том, что вы отправляете изображение в формате base64 |
file | Файл | Да* | Файл изображения. * - обязателен, если вы отправляете картинку как файл (method=post) |
body | Строка | Да* | Изображение, закодированное в формат Base64, * - обязателен, если вы отправляете картинку в Base64 (method=base64) |
phrase | Число По умолчанию: 0 |
Нет | 0 — капча состоит из одного слова 1 — капча состоит из двух или более слов |
regsense | Число По умолчанию: 0 |
Нет | 0 — капча не чувствительна к регистру 1 — капча чувствительна к регистру |
numeric | Число По умолчанию: 0 |
Нет | 0 — не определено 1 — капча состоит только из цифр 2 — капча состоит только из букв 3 — капча состоит либо только из букв, либо только из цифр 4 — в капче ДОЛЖНЫ быть и буквы, и цифры |
calc | Число По умолчанию: 0 |
Нет | 0 — не определено 1 — капча требует совершения математического действия (например: напишите результат 4 + 8 = ) |
min_len | Число По умолчанию: 0 |
Нет | 0 — не определено 1..20 — минимальное количетсво символов в ответе |
max_len | Число По умолчанию: 0 |
Нет | 0 — не определено 1..20 — максимальное количетсво символов в ответе |
language | Число По умолчанию: 0 |
Нет | 0 — не определено 1 — капча содержит только кириллицу 2 — капча содержит только латиницу |
lang | Строка | Нет | Код языка. См. список поддерживаемых языков. |
textinstructions | Строка Максимум 140 символов Кодировка: UTF-8 |
Нет | Текст будет показан работнику, чтобы помочь ему правильно решить капчу. Например: введите только красные буквы. |
imginstructions | Изображение Макс. 400x150px, 100 Кбайт |
Нет | Изображение будет показано работнику, чтобы помочь ему решить капчу правильно. Сервер принимает изображения в формате multipart или base64. |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Текстовые капчи
Текстовая капча — это капча, которая не содержит изображений и представлена в виде простого текста. Обычно для решения нужно ответить на какой-либо вопрос.
Например: "Если завтра суббота, то какой сегодня день?".
Чтобы решить этот вид капчи с помощью нашего сервиса, вам нужно передать текст в параметре textcaptcha в POST-запросе к нашему API:
http://2captcha.com/in.php
Пример формы для текстовой капчи
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form method="post" action="http://2captcha.com/in.php" enctype="multipart/form-data" accept-charset="UTF-8">
Ваш ключ API:
<input type="text" name="key" value="YOUR_APIKEY">
<input type="text" name="textcaptcha" value="Если завтра суббота, то какой сегодня день?">
<input type="submit" value="Отправить и получить ID">
</form>
</body>
</html>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
Вы можете испольовать дополнительные параметры в вашем запросе. Полный список параметров приведён в таблице ниже.
Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например:
OK|Пятница
или в формате JSON
{"status":1,"request":"Пятница"}
если вы использовали параметр json в запросе.
Если что-то пошло не так, сервер вернёт ошибку. Описание ошибок приведено в главе Обработка ошибок.
Подождите 5 секунд и отправьте HTTP GET запрос к URL нашего API:
http://2captcha.com/res.php
с персональным ключом API и полученным ранее идентификатором капчи, чтобы получить результат. Список параметров для запроса приведен в таблице ниже.
Если ваша капча уже решена, сервер вернёт ответ на неё в виде простого текста, например:
OK|TEXT
или в формате JSON
{"status":1,"request":"TEXT"}
если вы использовали параметр json.
Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт ошибку, описание которой можно найти в главе Обработка ошибок.
Список параметров POST-запроса к http://2captcha.com/in.php
POST параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | your API key |
language | Число По умолчанию: 0 |
Нет | 0 — не определено 1 — капча содержит только кириллицу 2 — капча содержит только латиницу |
lang | Строка | Нет | Код языка. См. список поддерживаемых языков. |
textcaptcha | Строка Максимум 140 символов Кодировка: UTF-8 |
Нет | Текст капчи. Например: Если завтра суббота, то какой сегодня день? |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
reCAPTCHA V2
reCAPTCHA V2, также известная как "Я не робот" reCAPTCHA, очень популярна и выглядит вот так:
Решить reCAPTCHA V2 с помощью нашего нового метода очень легко, это не требует эмуляции браузера:
-
Посмотрите исходный код элемента на странице, где вы встретили reCAPTCHA.
-
Найдите ссылку, которая начинается с www.google.com/recaptcha/api2/anchor или найдите параметр data-sitekey.
-
Скопируйте значение параметра k из ссылки или значение data-sitekey.
-
Отправьте запрос HTTP GET или POST к нашему API:
http://2captcha.com/in.php
с персональным ключом API и параметром method, соответствующим виду вашей капчи, в данном случае — userrecaptcha, а также укажите значение, которые вы скопировали ранее в параметре googlekey. Укажите полный URL страницы, на которой вы хотите решить reCAPTCHA в параметре pageurl.
Отправка данных прокси на текущий момент не обязательна, но мы всё же рекомендуем это делать.
Полный список параметров для запроса можно найти в таблице ниже.Пример URL запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=userrecaptcha&googlekey=6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-&pageurl=http://mysite.com/page/with/recaptcha
-
Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например: OK|2122988149 или в формате JSON {"status":1,"request":"2122988149"} если вы использовали параметр json в запросе.
Если что-то пошло не так, сервер вернёт ошибку. Описание ошибок приведено в главе Обработка ошибок.
-
Подождите 15-20 секунд и отправьте HTTP GET запрос к нашему API:
http://2captcha.com/res.php
чтобы получить результат.
Полный лист параметров для запроса можно найти в таблице ниже.Если ваша капча уже решена, то сервер вернёт ответ в виде простого текста или JSON. Ответ представляет собой токен, примерно такой:
03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo11i53epEraq-uBO5mVm2XRikL8iKOWr0aG50sCuej9bXx5qcviUGSm4iK4NC_Q88flavWhaTXSh0VxoihBwBjXxwXuJZ-WGN5Sy4dtUl2wbpMqAj8Zwup1vyCaQJWFvRjYGWJ_TQBKTXNB5CCOgncqLetmJ6B6Cos7qoQyaB8ZzBOTGf5KSP6e-K9niYs772f53Oof6aJeSUDNjiKG9gN3FTrdwKwdnAwEYX-F37sI_vLB1Zs8NQo0PObHYy0b0sf7WSLkzzcIgW9GR0FwcCCm1P8lB-50GQHPEBJUHNnhJyDzwRoRAkVzrf7UkV8wKCdTwrrWqiYDgbrzURfHc2ESsp020MicJTasSiXmNRgryt-gf50q5BMkiRH7osm4DoUgsjc_XyQiEmQmxl5sqZP7aKsaE-EM00x59XsPzD3m3YI6SRCFRUevSyumBd7KmXE8VuzIO9lgnnbka4-eZynZa6vbB9cO3QjLH0xSG3-egcplD1uLGh79wC34RF49Ui3eHwua4S9XHpH6YBe7gXzz6_mv-o-fxrOuphwfrtwvvi2FGfpTexWvxhqWICMFTTjFBCEGEgj7_IFWEKirXW2RTZCVF0Gid7EtIsoEeZkPbrcUISGmgtiJkJ_KojuKwImF0G0CsTlxYTOU2sPsd5o1JDt65wGniQR2IZufnPbbK76Yh_KI2DY4cUxMfcb2fAXcFMc9dcpHg6f9wBXhUtFYTu6pi5LhhGuhpkiGcv6vWYNxMrpWJW_pV7q8mPilwkAP-zw5MJxkgijl2wDMpM-UUQ_k37FVtf-ndbQAIPG7S469doZMmb5IZYgvcB4ojqCW3Vz6Q
Если ваша капча ещё не решена, то сервер вернёт код CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт код ошибки.
-
Найдите элемент с id g-recaptcha-response и сделайте его видимым, удалив параметр display:none.
Внимание: иногда содержимое страницы генерируется динамически и вы можете не найти данный элемент.
В таком случае вам нужно изучить скрипты, отвечающие за генерацию содержимого страницы. Опция "Inspect" в Google Chrome может помочь в этом. -
На странице отобразится текстовое поле. Всё что вам остается сделать — вставить полученный токен в это поле и отправить форму.
-
Поздравляем, вы решили reCAPTCHA!
reCAPTCHA Callback
Иногда вы не найдете кнопки, отправляющей форму. Вместо нее может использоваться callback-функция. Эта функция выполняется, когда задание рекапчи выполнено.
Обычно callback-функция определена в параметре data-callback
, например:
data-callback="myCallbackFunction"
Или иногда она указана как параметр callback
у функции grecaptcha.render
, например так:
grecaptcha.render('example', {
'sitekey' : 'someSitekey',
'callback' : myCallbackFunction,
'theme' : 'dark'
});
Кроме того, есть ещё один простой способ найти callback-функцию — это открыть javascript-консоль вашего браузера и изучить объект конфигурации reCAPTCHA:
___grecaptcha_cfg.clients[0].aa.l.callback
Имейте в виду, что часть aa.l меняется, а также, что на одном сайте может быть несколько имплементации reCAPTCHA, поэтому вам нужно посмотреть и на clients[1], clients[2] и т.д.
Или, еще проще - воспользуйтесь скриптом для поиска параметров reCAPTCHA
В конце концов вам нужно запустить callback-функцию:
myCallbackFunction();
Или даже так:
___grecaptcha_cfg.clients[0].aa.l.callback();
Иногда функция требует какой-либо агрумент на входе. В большинстве случаев нужно передать токен. Например:
myCallbackFunction('TOKEN');
Invisible reCAPTCHA V2
У reCAPTCHA V2 также есть невидимая версия.
Её образец можно увидеть по ссылке: https://www.google.com/recaptcha/api2/demo?invisible=true
Кроме того, недавно мы обнаружили некоторые изменения в алгоритме невидимой reCAPTCHA на нескольких сайтах. Мы добавили в API новый параметр invisible=1
который нужно использовать для невидимой reCAPTCHA.
Ниже мы расскажем больше о невидимой reCAPTCHA.
Невидимая рекапча размещена на слое DIV, который имеет z-index — 10 000 px, что делает его невидимым пользователю.
Капча активируется при загрузке страницы, или при каком-либо действии пользователя, например при нажатии на кнопку или отправке формы. Если куки пользователя хорошие, то он даже не заметит, что капча была. Если куки не очень хорошие, то при отправке формы он тут же получит по центру экрана стандартную рекапчу, где нужно выбрать несколько изображений.
В большинстве случаев, после того, как пользователь решил капчу, вызывается callback-функция. О ней вы можете прочитать здесь.
Если вы всё ещё не уверены, какая reCAPTCHA на сайте — обычная или невидимая — вот несколько способов это определить:
- Вы не видите чекбокс "Я не робот", но получаете капчу, когда делаете какое-либо действие на сайте
- Ссылка iframe рекапчи содержит параметр
size=invisible
- Конфигурационный объект рекапчи содержит параметр size, значение которого invisible, например
___grecaptcha_cfg.clients[0].aa.l.size
имеет значениеinvisible
Что делать, чтобы в браузере можно было пройти Invisible reCAPTCHA?
Метод 1: используем javascript:
-
Измените значение элемента g-recaptcha-response на токен, полученный от нашего сервера:
document.getElementById("g-recaptcha-response").innerHTML="TOKEN";
-
Выполните действие, которое должно выполняться на сайте после того, как вы решили reCAPTCHA.
Чаще всего на сайте нужно отправить форму. От вас потребуется идентифицировать эту форму по id, имени или какому-то ещё атррибуту и отправить форму. Вот несколько примеров:
document.getElementById("recaptcha-demo-form").submit(); //по id "recaptcha-demo-form"
document.getElementsByName("myFormName")[0].submit(); //по имени элемента "myFormName"
document.getElementsByClassName("example").submit(); //по имени класса "example"
А иногда после решения reCAPTCHA вызывается коллбек-функция.
Эта функция определяется в параметре data-callback
, например: data-callback="myCallbackFunction"
И все что вам нужно сделать — вызвать эту функцию:
myCallbackFunction();
- Ура! Вы сделали это всего двумя строчками кода.
Метод 2: изменяем содержимое страницы:
-
Вырежьте из тела документа div, содержащий саму рекапчу.
<div style="visibility: hidden; position: absolute; width:100%; top: -10000px; left: 0px; right: 0px; transition: visibility 0s linear 0.3s, opacity 0.3s linear; opacity: 0;"> <div style="width: 100%; height: 100%; position: fixed; top: 0px; left: 0px; z-index: 2000000000; background-color: #fff; opacity: 0.5; filter: alpha(opacity=50)"> </div> <div style="margin: 0 auto; top: 0px; left: 0px; right: 0px; position: absolute; border: 1px solid #ccc; z-index: 2000000000; background-color: #fff; overflow: hidden;"> <iframe src="https://www.google.com/recaptcha/api2/bframe?hl=en&v=r20170213115309&k=6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs#zglq3yifgkmj" title="recaptcha challenge" style="width: 100%; height: 100%;" scrolling="no" name="zglq3yifgkmj" frameborder="0"></iframe> </div> </div>
-
Вырежьте полностью блок:
<div class=""><!-- BEGIN: ReCAPTCHA implementation example. --> <div id="recaptcha-demo" class="g-recaptcha" data-sitekey="6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs" data-callback="onSuccess" data-bind="recaptcha-demo-submit"><div class="grecaptcha-badge" style="width: 256px; height: 60px; transition: right 0.3s ease 0s; position: fixed; bottom: 14px; right: -186px; box-shadow: 0px 0px 5px gray;"><div class="grecaptcha-logo"><iframe src="https://www.google.com/recaptcha/api2/anchor?k=6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs&co=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbTo0NDM.&hl=en&v=r20170213115309&size=invisible&cb=uror1hlow5a" title="recaptcha widget" scrolling="no" name="undefined" width="256" height="60" frameborder="0"></iframe></div><div class="grecaptcha-error"></div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none; display: none; "></textarea></div></div> <script> var onSuccess = function (response) { var errorDivs = document.getElementsByClassName("recaptcha-error"); if (errorDivs.length) { errorDivs[0].className = ""; } var errorMsgs = document.getElementsByClassName("recaptcha-error-message"); if (errorMsgs.length) { errorMsgs[0].parentNode.removeChild(errorMsgs[0]); } document.getElementById("recaptcha-demo-form").submit(); }; </script><!-- Optional noscript fallback. --><!-- END: ReCAPTCHA implementation example. --></div>
-
На место вырезанного блока поставьте следующий код:
<input type="submit"> <textarea name="g-recaptcha-response">%g-recaptcha-response%</textarea>
В котором %g-recaptcha-response% — токен, который вы получили от нашего сервера.8. У вас появится кнопка “Submit query”, при нажатии на неё вы отправите на сайт, где установлена капча, все данные формы и g-recaptcha-response.
Список параметров для GET/POST запросов к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | userrecaptcha — определяет, что вы решаете reCAPTCHA V2 с помощью нового метода |
googlekey | Строка | Да | Значение параметра k или data-sitekey, которое вы нашли в коде страницы |
pageurl | Строка | Да | Полный URL страницы, на которой вы решаете reCAPTCHA V2 |
domain | Строка По умолчанию: google.com |
Нет | Домен, с которого загружается reCAPTCHA: recaptcha.net или google.com |
invisible | Число По умолчанию: 0 |
Нет | 1 — говорит нам, что на сайте невидимая reCAPTCHA. 0 — обычная reCAPTCHA. |
data-s | Строка | Нет | Значение параметра data-s найденное на странице. Актуально для поиска в Google и других сервисов Google. |
cookies | Строка | Нет | Ваши cookies которые будут использованы работником для решения капчи. В ответе на капчу мы вернем cookies работника, но только при использовании json=1 . Формат: КЛЮЧ:Значение, разделитель - точка с запятой, например: KEY1:Value1;KEY2:Value2; |
userAgent | Строка | Нет | Подставляем у работника ваш userAgent |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
proxy | Строка | Нет | Формат: логин:пароль@123.123.123.123:3128 Больше информации о прокси здесь. |
proxytype | Строка | Нет | Тип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример URL запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
reCAPTCHA V3
reCAPTCHA V3 - это новейший вид капчи от Google, который основан на рейтинге "человечности" пользователя и не требует от пользователя выполнения каких-либо заданий.
Во многом новый вид капчи похож на reCAPTCHA V2, т.е. основной принцип остался тем же - пользователь получает от API reCAPTCHA токен, который отправляется в POST-запросе к сайту, а сайт верифицирует токен через API reCAPTCHA.
НО при верификации токена API reCAPTCHA теперь возвращает рейтинг "человечности" пользователя - score - число от 0.1 до 0.9. Получив это значение, сайт решает, как обрабатывать запрос.
Кроме того, появился новый параметр action, который позволяет по разному обрабатывать различные действия пользователя на сайте. При верификации токена API reCAPTCHA вернет имя действия, которое выполнил пользователь.
Наш подход к решению reCAPTCHA V3
Мы провели серию экспериментов и выяснили, что если пользователь на каком-либо сайте получает рейтинг 0.1, то с довольно высокой вероятностью он получит такой же рейтинг и на остальных сайтах.
Мы определяем рейтинг каждого работника нашего сервиса. Затем, когда получаем запрос на решение reCAPTCHA V3 с указанием минимального рейтинга min_score мы отдаем капчу работнику, имеющему рейтинг не ниже запрошенного. Абсолютное большинство решений в результате имеют требуемый рейтинг на том сайте, где нужно решить reCAPTCHA V3.
Как решать reCAPTCHA V3 с помощью нашего сервиса:
-
В первую очередь нужно убедиться, что на сайте действительно используется reCAPTCHA V3.
Основные признаки V3:
- не видна пользователю, не требует кликать по картинкам;
- скрипт api.js загружается с параметром render=sitekey, например:
https://www.google.com/recaptcha/api.js?render=6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE - в массиве clients конфигурационного объекта ___grecaptcha_cfg используется индекс 100000: ___grecaptcha_cfg.clients[100000]
-
Для решения V3 через наш API необходимо найти значения трех параметров:
sitekey - его можно найти в html в значении параметра render при загрузке api.js, в параметре k в URI iframe, в который подгружается reCAPTCHA, либо в javscript, в вызове функции grecaptcha.execute или в конфигурационном объекте ___grecaptcha_cfg.
action - это значение нужно искать в javascript коде сайта в вызове функции grecaptcha.execute. Пример: grecaptcha.execute('6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE', {action: do_something}).
Иногда найти его достаточно сложно и требуется перевернуть вверх дном все js-файлы, подгружаемые сайтом. Кроме того, можно попробовать найти значение action в конфигурационном объекте ___grecaptcha_cfg, но очень часто оно может быть не задано там, а передаваться только при вызове grecaptcha.execute - поэтому наиболее эффективный метод - просмотр javascript кода.pageurl - полный URL страницы, где вы хотите решить reCAPTCHA V3.
Кроме того, нужно понять, какое значение score вам требуется. Определить извне, при каком score сайт решит, что вы человек и пропустит ваш запрос, можно только экспериментально. Самый низкий рейгинг 0.1 - робот, а самый высокий 0.9 - человек. Но, многие сайты ставят пороговые значения от 0.2 до 0.5, т.к. обычный человек зачастую получает довольно низкий рейтинг. С наибольшей вероятностью от нашего API можно получить score 0.3, более высокие значения score у работников встречаются довольно редко.
-
Имея все необходимые параметры, можно отправлять запрос к нашему API.
-
Отправьте запрос HTTP GET или POST к нашему API:
http://2captcha.com/in.php
с персональным ключом API и параметром method, соответствующим виду капчи, в данном случае — userrecaptcha, в параметре version нужно указать v3, в параметре min_score - требуемое значение score. Также укажите значения, найденные на предыдущем шаге: sitekey укажите в параметре googlekey, полный URL страницы, на которой вы хотите решить reCAPTCHA в параметре pageurl, значение action - в одноименном параметре action, если его не указать мы будем использовать значение по умолчанию - verify.Пример URL запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=userrecaptcha&version=v3&action=verify&min_score=0.3 &googlekey=6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE&pageurl=http://mysite.com/page/
-
Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например: OK|2122988149 или в формате JSON {"status":1,"request":"2122988149"} если вы использовали параметр json в запросе.
Если что-то пошло не так, сервер вернёт ошибку. Описание ошибок приведено в главе Обработка ошибок.
-
Подождите 10-15 секунд и отправьте HTTP GET запрос к нашему API:
http://2captcha.com/res.php
с чтобы получить результат по ID вашей капчи.
Полный список параметров запроса можно найти в таблице ниже.Если ваша капча уже решена, то сервер вернёт ответ в виде простого текста или JSON. Ответ представляет собой токен, примерно такой:
03AHJ_Vuve5Asa4koK3KSMyUkCq0vUFCR5Im4CwB7PzO3dCxIo11i53epEraq-uBO5mVm2XRikL8iKOWr0aG50sCuej9bXx5qcviUGSm4iK4NC_Q88flavWhaTXSh0VxoihBwBjXxwXuJZ-WGN5Sy4dtUl2wbpMqAj8Zwup1vyCaQJWFvRjYGWJ_TQBKTXNB5CCOgncqLetmJ6B6Cos7qoQyaB8ZzBOTGf5KSP6e-K9niYs772f53Oof6aJeSUDNjiKG9gN3FTrdwKwdnAwEYX-F37sI_vLB1Zs8NQo0PObHYy0b0sf7WSLkzzcIgW9GR0FwcCCm1P8lB--gf50q5BMkiRH7osm4DoUgsjc_XyQiEmQmxl5sqZP7aKsaE-EM00x59XsPzD3m3YI6SRCFRUevSyumBd7KmXE8VuzIO9lgnnbka4-eZynZa6vbB9cO3QjLH0xSG3--o-fxrOuphwfrtwvvi2FGfpTexWvxhqWICMFTTjFBCEGEgj7_IFWEKirXW2RTZCVF0Gid7EtIsoEeZkPbrcUISGmgtiJkJ_KojuKwImF0G0CsTlxYTOU2sPsd5o1JDt65wGniQR2IZufnPbbK76Yh_KI2DY4cUxMfcb2fAXcFMc9dcpHg6f9wBXhUtFYTu6pi5LhhGuhpkiGcv6vWYNxMrpWJW_pV7q8mPilwkAP-zw5MJxkgijl2wDMpM-UUQ_k37FVtf-ndbQAIPG7S469doZMmb5IZYgvcB4ojqCW3Vz6Q
Если ваша капча ещё не решена, то сервер вернёт код CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт код ошибки.
Пример URL запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&json=1&id=2122988149
-
После получения токена от нашего API, нужно корректно использовать его на сайте. Лучший метод понять, как это сделать - посмотреть на то, какие запросы отправляются на сайт, когда вы работаете с ним как обычный посетитель. Большинство браузеров позволяют легко это сделать в консоли разработчика, нужная вкладка обычно называется "Network".
Токен обычно отправляется в параметрах POST-запроса, это может быть g-recaptcha-response как у reCAPTCHA V2, g-recaptcha-response-100000 или какой-либо другой параметр. Поэтому нужно внимательно просмотреть параметры запроса и найти, как именно передается токен, а затем сформировать аналогичный запрос.
-
После того, как вы использовали токен на сайте и стало понятно, сработал он или нет - вы можете сообщить нам об этом. В случае, если токен не был принят - мы вернем деньги за капчу на ваш баланс. А в случае, если токен был принят - мы поставим работника, который его получил в приоритет для ваших запросов. Кроме того, это позволяет нам копить и анализировать статистику по этому виду капч для последующей оптимизации алгоритмов ее решения.
Чтобы сообщить о том, сработал токен или нет - отправьте запрос к
http://2captcha.com/res.php
с вашим ключем API в параметре key, id капчи в одноименном параметре id и указав в параметре action, в зависимости от результата: reportgood - токен сработал или reportbad - токен не сработал.Примеры запросов:
ReportBAD
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=reportbad&id=2122988149
ReportGOOD
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=reportgood&id=2122988149
Важное замечание: в интерфейсе на сайте не отображаются жалобы на любые виды капч с токеном, в том числе reCAPTCHA V3. Мы обрабатываем каждый такой запрос, но пока не придумали адекватный интерфейс для подобных жалоб. В будущем постараемся это сделать.
Список параметров для GET/POST запросов к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | userrecaptcha — определяет, что вы решаете reCAPTCHA |
version | Строка | Да | v3 — указывает на то, что это reCAPTCHA V3 |
googlekey | Строка | Да | Значение параметра sitekey, которое вы нашли в коде сайта |
pageurl | Строка | Да | Полный URL страницы, на которой вы решаете reCAPTCHA V2 |
domain | Строка По умолчанию: google.com |
Нет | Домен, с которого загружается reCAPTCHA: recaptcha.net или google.com |
action | Строка По умолчанию: verify |
Нет | Значение параметра action, которые вы нашли в коде сайта |
min_score | Число По умолчанию: 0.4 |
Нет | Требуемое значение рейтинга (score). На текущий момент сложно получить токен со score выше 0.3 |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу reportgood — - сообщить о том, что токен сработал reportbad — - сообщить о том, что токен не сработал |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
reCAPTCHA Enterpise
reCAPTCHA Enterpise - это новейший вид капчи от Google, который сочетает в себе возможности V2 и V3, а также позволяет администраторам сайта сообщать Google, о том, кто по их мнению взаимодействовал с сайтом после решения капчи - робот или человек.
Как решать reCAPTCHA Enterpise с помощью нашего сервиса:
-
Найти sitekey и остальные параметры, в зависимости от того, как капча настроена на сайте, у нее может быть action как у V3, а так же min_score.
-
Отправьте запрос HTTP GET или POST к нашему API:
http://2captcha.com/in.php
Пример URL запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=userrecaptcha&enterprise=1&action=verify&min_score=0.3 &googlekey=6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE&pageurl=http://mysite.com/page/
-
Получаете ID вашей капчи.
-
Запрашиваете ответ у
http://2captcha.com/res.php
Пример URL запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&json=1&id=2122988149
-
После получения токена от нашего API, нужно корректно использовать его на сайте. Для этого следует изучить код сайта и запросы, которые делаются к его бекенду. Универсального решения нет.
-
После того, как вы использовали токен на сайте и стало понятно, сработал он или нет - вы можете сообщить нам об этом. В случае, если токен не был принят - мы вернем деньги за капчу на ваш баланс. А в случае, если токен был принят - мы поставим работника, который его получил в приоритет для ваших запросов. Кроме того, это позволяет нам копить и анализировать статистику по этому виду капч для последующей оптимизации алгоритмов ее решения.
Чтобы сообщить о том, сработал токен или нет - отправьте запрос к
http://2captcha.com/res.php
с вашим ключем API в параметре key, id капчи в одноименном параметре id и указав в параметре action, в зависимости от результата: reportgood - токен сработал или reportbad - токен не сработал.Примеры запросов:
ReportBAD
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=reportbad&id=2122988149
ReportGOOD
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=reportgood&id=2122988149
Список параметров для GET/POST запросов к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | userrecaptcha — определяет, что вы решаете reCAPTCHA |
version | Строка По умолчанию: v2 |
Нет | Версия reCAPTCHA: v2 или v3 |
enterprise | Число По умолчанию: 0 |
Нет | 1 — указывает на то, что это reCAPTCHA Enterpise |
googlekey | Строка | Да | Значение параметра sitekey, которое вы нашли в коде сайта |
pageurl | Строка | Да | Полный URL страницы, на которой вы решаете reCAPTCHA V2 |
action | Строка По умолчанию: verify |
Нет | Значение параметра action, которые вы нашли в коде сайта |
min_score | Число По умолчанию: 0.4 |
Нет | Требуемое значение рейтинга (score). На текущий момент сложно получить токен со score выше 0.3 |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
proxy | Строка | Нет | Формат: логин:пароль@123.123.123.123:3128 Больше информации о прокси здесь. |
proxytype | Строка | Нет | Тип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу reportgood — - сообщить о том, что токен сработал reportbad — - сообщить о том, что токен не сработал |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Сетка (Grid)
Этот метод подходит для решения капч, на которых на изображение наложена сетка: reCAPTCHA, некоторые виды ArkoseLabs FunCaptcha.
Мы можем решать reCAPTCHA с различными сетками: 3x3, 2x4, 4x4.
И, конечно же, мы поддерживаем задания, в которых нужно обвести объект или несколько объектов. Подробнее тут.
Чтобы решить капчу вам нужно:
-
Получить набор изображений и инструкцию. Обычно для этого нужно поставить галочку внутри виджета капчи, по которым нужно кликать. галочку. В зависимости от вида капчи - вы получите либо одно изобрание с наложенной сеткой, либо набор отдельных - в таком случае может быть удобнее сделать скриншот области, в которой они выводятся.
-
Определить размер сетки и указать её размеры в параметрах:
recaptchacols — количество колонок,
recaptcharows — количество строк.
Если размер сетки не определён, мы проверим размер изображения, и в случае, если размер 300х300 пикселей, мы наложим сетку 3x3. Если изображение имеет другой размер, мы наложим на него сетку 4x4. -
Отправить запрос HTTP POST к нашему API:
http://2captcha.com/in.php
установив значение параметра recaptcha равным 1.Сервер принимает изображения в формате multipart или base64. Вам неоходимо отправлять только набор изображений без сетки и синего блока.
Также необходимо передать инструкцию, какие изображения нужно выбрать. Это можно сделать с помощью параметра textinstructions или imginstructions. Полный список параметров предоставлен в таблице ниже.
-
Сервер вернёт ID вашей капчи или код ошибки, если что-то пошло не так.
-
Подождите 5 секунд и отправьте запрос HTTP GET к нашему API:
http://2captcha.com/res.php
чтобы получить результат.Если ваша капча решена, то сервер вернёт ответ с номерами клеток сетки, на которые нужно кликать, например: OK|click:3/8/9.
Нумерация клеток идет от 1 слева направо и сверху вниз.
Если капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. Повторите ваш запрос через 5 секунд.
Если возникла проблема с обработкой вашей капчи, сервер вернёт код ошибки.
-
Вы кликаете на клетки, номера которых получили в ответе.
-
В случае, если reCAPTCHA обновляет набор картинок для того же задания, вы можете отправить новый запрос включающий дополнительный параметр previousID указав в нем ID предыдущего запроса. Тогда наш работник будет проверять только обновленные изображения с учетом предыдущего ответа.
-
Кроме того, вы можете отправлять еще один дополнительный параметр can_no_answer в случае, если в наборе изображений не остается подходящих и мы покажем работнику кнопку "нет подходящих изображений", а API вернет овтет No_matching_images.
В случае, если задание reCAPTCHA требует обвести объект вы можете передать параметр canvas со значением 1.
Сервер вернёт ответ в формате: canvas:x,y,x,y,x,y;x,y,x,y,x,y;
Где каждая пара x и y — это координаты точек, на которые нужно поочередно кликать, чтобы обвести зону, в которой находится объект. Если таких зон несколько, то их координаты будут разделены точкой с запятой.
Например:
canvas:5,5,3,91,93,90,90,7,8,6; — одна зона
canvas:5,5,3,91,93,90,90,7,8,6;208,211,208,287,294,294,293,209,207,210; — две зоны
Точка 0,0 — это левый верхний угол изображения.
Чтобы пройти задание, вам нужно поочередно кликать на полученные точки.
Пример формы для reCAPTCHA V2 (устаревший метод) в формате multipart
<form method="post" action="http://2captcha.com/in.php" enctype="multipart/form-data">
<input type="hidden" name="method" value="post">
<input type="hidden" name="recaptcha" value="1"><br>
<input type="hidden" name="canvas" value="0"><br>
Ваш ключ API:
<input type="text" name="key" value="YOUR_APIKEY">
Файл изображения reCAPTCHA:
<input type="file" name="file">
Файл изображения с инструкцией:
<input type="file" name="imginstructions">
<input type="submit" value="Загрузить и получить ID">
</form>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
Пример формы для отправки reCAPTCHA V2 (устаревший метод) в формате base64
<form method="post" action="http://2captcha.com/in.php">
<input type="hidden" name="method" value="base64">
<input type="hidden" name="recaptcha" value="1"><br>
<input type="hidden" name="canvas" value="0"><br>
Ваш ключ API:
<input type="text" name="key" value="YOUR_APIKEY">
Тело файла изображения reCAPTCHA в формате base64:
<textarea name="body">BASE64_RECAPTCHA_FILE</textarea>
Тело файла изображения с инструкцией в формате base64:
<textarea name="imginstructions">BASE64_INSTRUCTION_FILE</textarea>
<input type="submit" value="Загрузить и получить ID">
</form>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
BASE64_RECAPTCHA_FILE — закодированное в формате base64 тело изображения reCAPTCHA V2.
BASE64_INSTRUCTION_FILE — закодированное в формате base64 тело изображения с инструкцией.
Список параметров POST-запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | post — говорит о том, что вы отправляете изображение с помощью multipart-фомы base64 — говорит о том, что вы отправляете изображение в формате base64 |
recaptcha | Число | Да | 1 — говорит о том, что вы отправляете reCAPTCHA в виде изображения |
canvas | Число По умолчанию: 0 |
Нет | 1 — говорит о том, что вы хотите использовать метод canvas |
file | Файл | Да* | Файл изображения. * - обязателен, если вы отправляете картинку как файл (method=post) |
body | Строка | Да* | Изображение, закодированное в формат Base64, * - обязателен, если вы отправляете картинку в Base64 (method=base64) |
textinstructions | Строка Максимум 140 символов Кодировка: UTF-8 |
Да | Текст с инструкцией, какие изображения выбирать. Например: выберите все изображения с деревьями. Не обязателен если вы отправляете инструкцию в виде изображения с помощью параметра imginstructions. |
imginstructions | Изображение Макс. 400x150px, 100 Кбайт |
Нет | Изображение будет показано работнику, чтобы помочь ему решить капчу правильно. Сервер принимает изображения в формате multipart или base64. |
img_type | Строка | Нет | Изображение будет распознано с помощью Computer Vision, что позволяет значительно сократить время решения капчи. Поддерживаемые варианты значений: funcaptcha - отправка FunCaptcha, версия в которой необходимо кликнуть по квадрату соответствующему требованиям. Больше информации здесь.funcaptcha_compare - отправка FunCaptcha, версия в которой при помощи стрелок нужно выбрать необходимый квадрат. Больше информации здесь.recaptcha - отправка reCAPTCHA. Больше информации здесь.Важно: при использовании параметра img_type обязательно передавать параметр textinstructions содержащий исходную инструкцию к капче на Английском языке, также вам необходимо отправлять исходые файлы изображений а не скриншоты. |
recaptcharows | Число | Нет | Количество строк в сетке. |
recaptchacols | Число | Нет | Количество колонок в сетке. |
previousID | Строка | Нет | Id вашего предыдущего запроса в рамках того же задания reCAPTCHA |
can_no_answer | Число По умолчанию: 0 |
Нет | 0 — не определено 1 — возможно, что изображение не содержит картинок, которые удовлетворяют инструкции. Устанавливайте значение 1 только если на изображении может не быть картинок с правильным ответом. Мы покажем работнику кнопку "Нет подходящих картинок", а вы получите в ответе No_matching_images. |
language | Число По умолчанию: 0 |
Нет | 0 — не определено 1 — капча содержит только кириллицу 2 — капча содержит только латиницу |
lang | Строка | Нет | Код языка. См. список поддерживаемых языков. |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
Внимание: вам необходимо отправлять само изображение, а не скриншот. Не пытайтесь комбинировать изображение с чем-либо ещё, отправляйте его как есть.
Максимальный размер изображения для reCAPTCHA 600 Кбайт.
Максимальный размер изображения для imginstructions 100 Кбайт.
Список параметров для GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Координаты (coordinates)
Этот метод позволяет решать любую капчу, которая требует кликать по изображениям, например Ghost Captcha в SnapChat, reCAPTCHA V2, ASIRRA и т.п.
Чтобы решить капчу нужно:
-
Получить изображение и инструкцию, по каким картинкам кликать.
-
Отправить запрос HTTP POST к нашему API:
http://2captcha.com/in.php
указав 1 в качестве значениея параметра coordinatescaptcha.
Сервер принимает изображения в формате multipart или base64.Вы можете передать дополнительные инструкции в виде текста с помощью параметра textinstructions, но это необязательно, если инструкция уже содержится на изображении.
Полный список параметров приведён в таблице ниже.
-
Сервер вернёт ID капчи или код ошибки, если что-то пошло не так.
-
Подождите 5 секунд и отправьте HTTP GET запрос к нашему API:
http://2captcha.com/res.php
чтобы получить результат.Если ваша капча уже решена, сервер вернёт координаты точек, по которым нужно кликнуть, например: OK|coordinate:x=39,y=59;x=252,y=72. Точка с координатами x=0,y=0 — верхний левый угол изображения.
Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт код ошибки.
-
Чтобы пройти задание, вам нужно поочередно кликать по полученным координатам.
Пример multipart-формы для Coordinates
<form method="post" action="http://2captcha.com/in.php" enctype="multipart/form-data">
<input type="hidden" name="method" value="post">
<input type="hidden" name="coordinatescaptcha" value="1">
Ваш ключ API:
<input type="text" name="key" value="YOUR_APIKEY">
Файл изображения ClickCaptcha:
<input type="file" name="file">
Инструкция:
<input type="text" name="textinstructions" value="Выберите всех привидений">
<input type="submit" value="Загрузить и получить ID">
</form>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
Пример формы для загрузки ClickCaptcha в формате base64
<form method="post" action="http://2captcha.com/in.php">
<input type="hidden" name="method" value="base64">
<input type="hidden" name="coordinatescaptcha" value="1">
Ваш ключ API:
<input type="text" name="key" value="YOUR_APIKEY">
Тело изображения ClickCaptcha в формате base64:
<textarea name="body">BASE64_CLICKCAPTCHA_FILE</textarea>
Инструкция:
<input type="text" name="textinstructions" value="Click on ghosts">
<input type="submit" value="Загрузить и получить ID">
</form>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
BASE64_CLICKCAPTCHA_FILE — тело файла изображения, закодированное в формате base64.
Список параметров POST-запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | post — говорит о том, что вы отправляете изображение с помощью multipart-фомы base64 — говорит о том, что вы отправляете изображение в формате base64 |
coordinatescaptcha | Число | Да | 1 — указывает, что вы отправляете ClickCaptcha |
file | Файл | Да* | Файл изображения. * - обязателен, если вы отправляете картинку как файл (method=post) |
body | Строка | Да* | Изображение, закодированное в формат Base64, * - обязателен, если вы отправляете картинку в Base64 (method=base64) |
textinstructions | Строка Максимум 140 символов Кодировка: UTF-8 |
Да | Текст с инструкцией по решению ClickCaptcha. Например: выберите всех привидений Необязателен, если инструкция уже есть на изображении. |
imginstructions | Изображение Макс. 400x150px, 100 Кбайт |
Нет | Изображение будет показано работнику, чтобы помочь ему решить капчу правильно. Сервер принимает изображения в формате multipart или base64. |
min_clicks | Число По умолчанию: 1 |
Нет | Минимальное количество кликов, которое нужно сделать |
max_clicks | Число | Нет | Максимальное количество кликов, которое можно сделать |
language | Число По умолчанию: 0 |
Нет | 0 — не определено 1 — капча содержит только кириллицу 2 — капча содержит только латиницу |
lang | Строка | Нет | Код языка. См. список поддерживаемых языков. |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
Список параметров для GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
RotateCaptcha
RotateCaptcha — это вид капчи, для решения которой нужно поворачивать изображение. Наиболее популярная реализация — FunCaptcha.
Для решения RotateCaptcha требуется:
-
Получить изображение или несколько изображений, которые требуется повернуть.
-
Не обязательно: определить угол поворота в градусах для одного шага и передать его в параметре angle.
Если не указан — мы используем значение по умолчанию для FunCaptcha: 40 градусов.Полный список параметров приведен в таблице ниже.
-
Отправить изображения на наш сервер с помощью запроса HTTP POST к нашему API:
http://2captcha.com/in.php
указав значение rotatecaptcha для параметра method. Сервер принимает изображения в формате multipart или base64.Сервер вернёт ID вашей капчи или код ошибки.
-
Подождите 5 секунд и отправьте запрос HTTP GET к нашему API:
http://2captcha.com/res.php
чтобы получить результат.Если ваша капча решена, сервер вернёт ответ, содержащий углы поворота для каждого изображения, например: OK|40|200|-120.
Положительные значение означают что изображение нужно повернуть по часовой стрелке, отрицательные — против часовой стрелки.Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт ошибку, описание которой можно найти в главе Обработка ошибок.
-
Для решения вашей RotateCaptcha поверните изображения на соответствующий угол.
Пример multipart-формы для отправки RotateCaptcha файлом
<form method="post" action="http://2captcha.com/in.php" enctype="multipart/form-data">
Ключ API:<br>
<input name="key" value="YOUR_APIKEY"><br>
Тип:<br>
<input name="method" value="rotatecaptcha"><br>
Угол:<br>
<input name="angle" value="40"><br>
Файл:<br>
<input type="file" name="file"><br>
<input type="submit" value="Загрузить и получить ID">
</form>
Пример формы для отправки RotateCaptcha в формате base64
<form method="post" action="http://2captcha.com/in.php">
Ключ API:<br>
<input name="key" value="YOUR_APIKEY"><br>
Тип:<br>
<input name="method" value="rotatecaptcha"><br>
Угол:<br>
<input name="angle" value="40"><br>
Файл:<br>
<textarea name="body">BASE64_FILE</textarea>
<input type="submit" value="Загрузить и получить ID">
</form>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
Список параметров POST-запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | Метод решения капчи. rotatecaptcha — указывает на то, что вы отправляете RotateCaptcha |
angle | Число По умолчанию: 40 |
Нет | Угол поворота за один шаг в градусах. Если не указано, используется значение по умолчанию для FunCaptcha: 40 градусов. |
file | Изображение | Да* | Файл изображения. * - обязателен, если вы отправляете картинку как файл (method=post) |
body | Строка | Да* | Изображение, закодированное в формат Base64. * - обязателен, если вы отправляете картинку в Base64 (method=base64) |
lang | Строка | Нет | Код языка. См. список поддерживаемых языков. |
imginstructions | Строка | Нет | Изображение с инструкцией, будет показано работнику, чтобы помочь ему правильно выполнить задание. |
textinstructions | Строка | Нет | Текст с инструкцией. Будет показан работнику, чтобы помочь ему правильно выполнить задание. |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
Список параметров для GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Arkose Labs FunCaptcha
Теперь мы предоставляем метод для решения Arkose Labs FunCaptcha с помощью токена.
Этот метод очень прост:
-
Вам нужно найти публичный ключ FunCaptcha и сервисный URL (surl).
Публичный ключ можно найти в значении параметраdata-pkey
у div с FunCaptcha или же найти элемент с именем (name)fc-token
, а из его значения вырезать ключ, который указан послеpk
.Сервисный URL можно найти в том же элементе с именем
fc-token
- это значение послеsurl
. Этот параметр не обязателен и если вы его не указали - мы используе значение по умолчанию, которое работает в большинстве случаев. Но все же мы рекомендуем его указывать на случай, если на сайте используется нестандартный вариант. -
Отправьте HTTP GET или POST запрос к нашему API:
http://2captcha.com/in.php
, указав значение параметра method равным funcaptcha, найденный ранее публичный ключ укажите в параметре publickey, а surl в одноименном параметре запроса. Полный URL страницы укажите в параметре pageurl.
Полный список параметров для запроса можно найти в таблице ниже.Пример URL запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=funcaptcha&publickey=12AB34CD-56F7-AB8C-9D01-2EF3456789A0&surl=https://client-api.arkoselabs.com&pageurl=http://mysite.com/page/with/funcaptcha/
-
Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например: OK|2122988149 или в формате JSON {"status":1,"request":"2122988149"}, если вы использовали параметр json в запросе.
Если что-то пошло не так, сервер вернёт ошибку. Описание ошибок приведено в главе Обработка ошибок.
-
Подождите 15-20 секунд и отправьте HTTP GET запрос к нашему API:
http://2captcha.com/res.php
, чтобы получить результат.
Полный список параметров для запроса можно найти в таблице ниже.Если ваша капча уже решена, сервер вернёт ответ в виде простого текста или JSON. Ответ представляет собой токен, примерно такой:
3084f4a302b176cd7.96368058|r=ap-southeast-1|guitextcolor=%23FDD531|metabgclr=%23FFFFFF|metaiconclr=%23202122|meta=3|lang=en|pk=12AB34CD-56F7-AB8C-9D01-2EF3456789A0|cdn_url=https://cdn.funcaptcha.com/fc|surl=https://funcaptcha.com
Если ваша капча ещё не решена, сервер вернёт код CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт код ошибки.
-
Найдите элемент с id fc-token и измените его значение (value) на полученый токен.
-
Осталось лишь сделать то, что вы хотели сделать на сайте: отправить форму, кликнуть на кнопку или что-то ещё.
Список параметров для GET/POST запросов к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | funcaptcha — указывает, что вы решаете FunCaptcha с помощью токена |
publickey | Строка | Да | Значение параметра pk или data-pkey которое вы нашли в коде страницы |
surl | Строка | Нет | Значение параметра surl которое вы нашли в коде страницы |
data[key] | Строка | Нет | Дополнительные данные передаваемые при загрузке FunCaptcha. Пример: data[blob]=stringValue |
pageurl | Строка | Да | Полный URL страницы, на которой вы решаете FunCaptcha |
userAgent | Строка | Нет | Говорит нам использовать ваш user-agent. |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
proxy | Строка | Нет | Формат: логин:пароль@123.123.123.123:3128 Больше информации о прокси здесь. |
proxytype | Строка | Нет | Тип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример URL запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
KeyCaptcha
KeyCaptcha — это такой вид капчи, для решения которой нужно собрать небольшой пазл.
Чтобы решить KeyCaptcha с помощью нашего сервиса, нужно:
-
Найти следующие параметры KeyCaptcha в исходном коде страницы:
s_s_c_user_id s_s_c_session_id s_s_c_web_server_sign s_s_c_web_server_sign2
-
Отправить HTTP GET или POST запрос к нашему API:
http://2captcha.com/in.php
указав method равным keycaptcha и передать в запросе соответствующие значения параметров, найденные на предыдущем шаге, а также указать в параметре pageurl полный URL страницы с KeyCaptcha.
Полный список параметров приведен в таблице ниже.Пример запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&s_s_c_user_id=10&s_s_c_session_id=493e52c37c10c2bcdf4a00cbc9ccd1e8&s_s_c_web_server_sign=9006dc725760858e4c0715b835472f22-pz-&s_s_c_web_server_sign2=2ca3abe86d90c6142d5571db98af6714&method=keycaptcha&pageurl=https://www.keycaptcha.ru/demo-magnetic/
-
Если запрос был составлен верно, то сервер вернёт ID капчи в виде простого текста, например: OK|2122988149 или в виде JSON {"status":1,"request":"2122988149"}, если вы использовали параметр_json_.
В противном случае сервер вернёт код ошибки. -
Подождите 15-20 секунд и отправьте запрос HTTP GET к нашему API:
http://2captcha.com/res.php
чтобы получить результат.
Полный список параметров доступен в таблице ниже.Если капча уже решена, сервер вернёт ответ в виде простого текста или JSON. Ответ выглядит примерно так:
ebdb5a6bf76da6887db60ef2041ab946|9006dc725760858e4c0715b835472f22|http://back10.keycaptcha.com/swfs/ckc/5bded85426de3c57a7529a84bd0d4d08-|493e52c37c10c2bcdf4a00cbc9ccd1e8|1
Если капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт код ошибки.
-
Найдите и удалите следующий блок, который подключает javascript-файл:
<script language="JavaScript" src="http://backs.keycaptcha.com/swfs/cap.js"></script>
Найдите и удалите элемент div с id="div_for_keycaptcha":
<div id="div_for_keycaptcha"...>...</div>
Внимание: иногда содержимое страницы генерируется динамически и вы можете не найти нужные элементы или они могут немного отличаться.
В таком случае вам нужно хорошенько разобраться в коде страницы и используемых на ней скриптов. -
Найдите элемент с id="capcode" и измените его значение на ответ, полученный от нашего сервера.
<input name="capcode" id="capcode" value="1|2|3|4|5" type="hidden">
-
Нажмите на кнопку, отправляющую форму.
-
Ура, вы прошли KeyCaptcha!
Весь этот процесс может быть легко автоматизирован. Посмотрите пример javascript кода, который делает это прямо в консоли браузера.
Пример формы multipart для отправки KeyCaptcha
<form method="post" action="http://2captcha.com/in.php" enctype="multipart/form-data">
Ваш ключ API:
<input name="key" value="YOUR_APIKEY"><br>
s_s_c_user_id:<br>
<input name="s_s_c_user_id" value=""><br>
s_s_c_session_id:<br>
<input name="s_s_c_session_id" value=""><br>
s_s_c_web_server_sign:<br>
<input name="s_s_c_web_server_sign" value=""><br>
s_s_c_web_server_sign2:<br>
<input name="s_s_c_web_server_sign2" value=""><br>
pageurl:<br>
<input name="pageurl" value=""><br>
It's keycaptcha:<br>
<input type="text" value="keycaptcha" name="method"><br>
<input type="submit" value="UPLOAD AND GET ID">
</form>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
Список параметров GET/POST запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | keycaptcha — говорит о том, что вы отправляете KeyCaptcha |
s_s_c_user_id | Строка | Да | Значение параметра s_s_c_user_id, найденное на странице |
s_s_c_session_id | Строка | Да | Значение параметра s_s_c_session_id, найденное на странице |
s_s_c_web_server_sign | Строка | Да | Значение параметра s_s_c_web_server_sign, найденное на странице |
s_s_c_web_server_sign2 | Строка | Да | Значение параметра s_s_c_web_server_sign2, найденное на странице |
pageurl | Строка | Да | Полный URL страницы с KeyCaptcha |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
proxy | Строка | Нет | Формат: логин:пароль@123.123.123.123:3128 Больше информации о прокси здесь. |
proxytype | Строка | Нет | Тип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример URL запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Geetest
Geetest - это такой вид капчи, где требуется передвинуть кусок пазла или выбрать несколько объектов в нужном порядке.
Чтобы решить Geetest-капчу через наш API необходимо:
-
Найти следующие параметры на странице сайта с капчей (обычно их можно найти внутри функции initGeetest):
gt
- публичный ключ сайта (статический)challenge
- динамический ключ заданияapi_server
- домен API (обязателен для некоторых сайтов)
Важно: для каждого запроса к нашему API необходимо получать новое значение challenge. Если капча уже была загружена на странице, то значение challenge является недействительным. Вам необходимо изучить запросы, которые выполняются при загрузке страницы и найти тот, в котором возвращается значение challenge. Затем, для получения нового challenge вам нужно каждый раз выполнять данный запрос и парсить его.
-
Отправьте запрос HTTP GET или POST к нашему API:
http://2captcha.com/in.php
указав в значении параметраmethod
значение geetest, а также передайте значения, найденные на предыдущем шаге в соответствующих параметрах и полный URL страницы с капчей в pageurl.
Полный список параметров можно найти в таблице ниже.Пример запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=geetest>=f1ab2cdefa3456789012345b6c78d90e&challenge=12345678abc90123d45678ef90123a456b&api_server=api-na.geetest.com&pageurl=https://www.site.com/page/
-
Если запрос был составлен верно, то сервер вернёт ID капчи в виде простого текста, например: OK|2122988149 или в виде JSON {"status":1,"request":"2122988149"}, если вы использовали параметр_json_.
В противном случае сервер вернёт код ошибки. -
Подождите 15-20 секунд и отправьте запрос HTTP GET к нашему API:
http://2captcha.com/res.php
чтобы получить результат.
Полный список параметров доступен в таблице ниже.Если капча уже решена, сервер вернёт ответ в формате JSON. Ответ содержит три параметра:
challenge
,validate
иseccode
:{ "challenge":"1a2b3456cd67890e12345fab678901c2de", "validate":"09fe8d7c6ba54f32e1dcb0a9fedc8765", "seccode":"12fe3d4c56789ba01f2e345d6789c012|jordan" }
Если капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт код ошибки.
-
Используйте значения, полученные в ответе от нашего API в запросе к сайту, передавая их в соотстветствующих полях запроса:
geetest_challenge
geetest_validate
geetest_seccode
Список параметров GET/POST запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | geetest - указывает, что вы отправляете капчу Geetest |
gt | Строка | Да | Значение параметра gt найденное на сайте |
challenge | Строка | Да | Значение параметра challenge найденное на сайте |
api_server | Строка | Нет | Значение параметра api_server найденное на сайте |
offline | Число По умолчанию: 0 |
Нет | В редких случаях initGeetest может вызываться с дополнительным параметром offline. Если offline: true, то нужно передать значение 1. |
new_captcha | Число По умолчанию: 0 |
Нет | В редких случаях initGeetest может вызываться с дополнительным параметром new_captcha. Если new_captcha: true, то нужно передать значение 1. Чаще всего используется совместно с offline. |
pageurl | Строка | Да | Полный URL страницы с капчей Geetest |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
proxy | Строка | Нет | Формат: логин:пароль@123.123.123.123:3128 Больше информации о прокси здесь. |
proxytype | Строка | Нет | Тип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 1 |
Нет | Для Geetest ответ всегда возвращается в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример URL запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Geetest v4
Geetest v4 - это новая версия капчи от Geetest, где вам всё еще нужно двигать кусочек пазла, чтобы пройти ее.
Чтобы решить Geetest-капчу через наш API необходимо:
-
Найти на странице сайта с капчей значение
captcha_id
- обычно его можно найти внутри тегаscript
, который подключает javascript код Geetest v4 на странице. -
Отправьте запрос HTTP GET или POST к нашему API:
http://2captcha.com/in.php
указавmethod=geetest_v4
, значениеcaptcha_id
, найденное на странице а также полный URL страницы с капчей вpageurl
.Пример запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=geetest_v4&captcha_id=f1ab2cdefa3456789012345b6c78d90e&pageurl=https://www.site.com/page/
-
Если запрос был составлен верно, то сервер вернёт ID капчи в виде простого текста, например: OK|2122988149 или в виде JSON {"status":1,"request":"2122988149"}, если вы использовали параметр_json_.
В противном случае сервер вернёт код ошибки. -
Подождите 15-20 секунд и отправьте запрос HTTP GET к нашему API:
http://2captcha.com/res.php
чтобы получить результат.Если капча уже решена, сервер вернёт ответ в формате JSON. Пример ответа:
{ "captcha_id": "e392e1d7fd421dc63325744d5a2b9c73", "lot_number": "7fafac97a43d4701aee908afa49c73ba", "pass_token": "6f1c27bd15777d5e9e6e1ba94604c28e7b13b94eed3f7c8b79ceaf4660da6320", "gen_time": "1648112802", "captcha_output": "FEB0Fyp2UEcHdeFQ0PEN-BHenkuCzlpmfX_OLXuf49iF_rPvbjYc9whxQg-sYOCPSzX_19HF0gCPgSoAZ-JPxE46ddE7L6y0J-D_5CcMnT0IYKHFK-NdcBo_m6nISKrpSH3QE9l5r53UTChJdR-bOJPO20gA0bgPEMvDCew7UkQ=" }
Если капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт код ошибки.
-
Используйте значения, полученные в ответе от нашего API в запросе к сайту, передавая их аналогично тому, как они передаются, если вы решаете капчу вручную.
Список параметров GET/POST запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | geetest_v4 - указывает, что вы отправляете капчу Geetest v4 |
captcha_id | Строка | Да | Значение параметра captcha_id которое вы нашли на странице |
pageurl | Строка | Да | Полный URL страницы с капчей Geetest |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
proxy | Строка | Нет | Формат: логин:пароль@123.123.123.123:3128 Больше информации о прокси здесь. |
proxytype | Строка | Нет | Тип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 1 |
Нет | Для Geetest ответ всегда возвращается в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример URL запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Capy Puzzle
Capy - это капча в виде пазла
Принцип решения капчи предельно прост:
-
Найдите в исходном коде страницы ключ капчи. Его можно найти в поле с именем (аттрибут name) capy_captchakey, либо в ссылке на скрипт https://www.capy.me/puzzle/get_js/?k=PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v .
Также, возьмите часть URL скрипта, указывающую на root-директорию сервера, например https://www.capy.me/ и передайте ее в параметре
api_server
-
Отправьте запрос HTTP GET или POST к нашему API:
http://2captcha.com/in.php
с персональным ключом API и параметром method, соответствующим виду вашей капчи, в данном случае — capy, а также укажите найденный ключ капчи в параметре captchakey. Укажите полный URL страницы, на которой вы хотите решить Capy в параметре pageurl.
Полный список параметров для запроса можно найти в таблице ниже.Пример URL запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=capy&captchakey=PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v&pageurl=http://mysite.com/
-
Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например: OK|2122988149 или в формате JSON {"status":1,"request":"2122988149"} если вы использовали параметр json в запросе.
Если что-то пошло не так, сервер вернёт ошибку. Описание ошибок приведено в главе Обработка ошибок.
-
Подождите 15-20 секунд и отправьте HTTP GET запрос к нашему API:
http://2captcha.com/res.php
чтобы получить результат.
Полный список параметров для запроса можно найти в таблице ниже.Если капча уже решена, сервер вернёт ответ в формате JSON. Ответ содержит три параметра:
captchakey
,challengekey
иanswer
:{ "captchakey": "PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v", "challengekey": "y1Pu234nCwq56WnqB7y8TSZq0Qzp0ltK", "answer": "0xax8ex0xax84x0xkx7qx0xux7qx0xux7gx0x18x7gx0x1sx76x0x26x6ix0x2qx6ix0x3ex68x0" }
Если капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт код ошибки.
-
Используйте значения, полученные в ответе от нашего API в запросе к сайту, передавая их в соотстветствующих полях запроса:
capy_captchakey
capy_challengekey
capy_answer
Список параметров для GET/POST запросов к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | capy — указывает, что вы решаете Capy Puzzle |
captchakey | Строка | Да | Значение параметра captchakey, которое вы нашли в коде страницы |
pageurl | Строка | Да | Полный URL страницы, на которой вы решаете Capy Puzzle |
api_server | Строка | Нет | URL сервера, с которого подгружается капча. По умолчанию: https://jp.api.capy.me/ |
version | Строка По умолчанию: puzzle |
Нет | Вид задания: puzzle (собрать пазл) или avatar (перетянуть предмет) |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 1 |
Нет | Для Capy Puzzle сервер всегда вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример URL запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
TikTok
Данный метод временно не поддерживается.
Lemin Cropped Captcha
Lemin - один из видов капчи, использующей пазлы
Для решения капчи нужно:
-
Найти значение captcha_id в исходном коде страницы или в ссылке на скрипт капчи, которая выглядит следующим образом: https://api.leminnow.com/captcha/v1/cropped/CROPPED_1abcd2f_a1234b567c890d12ef3a456bc78d901d/js.
Также, нужно взять основную часть URL вида: https://api.leminnow.com/ - это будет значением параметра
api_server
.И, наконец, нужно определить id родительского div элемента капчи - это значение нужно будет передать в параметре
div_id
. -
Оправьте запрос HTTP GET or POST к нашему API:
http://2captcha.com/in.php
устанавив значение параметра method в lemin, а также передайте значение параметров captcha_id, div_id и api_server и полный URL страницы с капчей в параметре pageurl.
Описание всех параметров доступно в таблице ниже.Пример запроса:
{ "key": "1abc234de56fab7c89012d34e56fa7b8", "method": "lemin", "captcha_id": "CROPPED_3dfdd5c_d1872b526b794d83ba3b365eb15a200b", "div_id": "lemin-cropped-captcha", "api_server": "https://api.leminnow.com/", "pageurl": "https://2captcha.com/demo/lemin", "json":1 }
-
API вернет вам ID капчи:
{ "status": 1, "request": "2122988149" }
Если запрос был некорректным - вы получит код ошибки.
-
Подождите 10-15 секунд и запрашивайте ответ_HTTP GET_ у API:
http://2captcha.com/res.php
.
Полный список параметров в таблице ниже.Если капча решена, вы получите в ответе значения
answer
иchallenge_id
{ "answer":"0x0xcgx0x0xbsx0xaxb8x0xkxakx0xux92x0x1sx76x0x2gx5ux0x34x4mx0x3ox3ex0x42x34x0x4cx2qx0x4mx2gx0x50x26x0x5ax26x0x5ax1sx0x50x1sx0x50x1ix0x50x18x0x50xux0x5axux0x5axkx0x5axax0x5ax0x_?_gAAAAABi4-Efd-oTDcTyTsnv7vbHGJW_ucw7GmoYCUxjfbvfMChlne2EIKYrVNV_TfBDN68WX_TDAEQ90xbWjatuYGkaUHsC1lzf7pM7dS8J-WhKQK1rBYaSOgAzGuNVhYX_zrNWHFFr", "challenge_id":"a33515c5-9095-4c2a-b2eb-c86214d62f98" }
Если капча не решена - получите_CAPCHA_NOT_READY_. Повторите запрос через 5 секунд.
Если возникла ошибка, API вернет соотвествующий код ошибки.
-
Используйте полученные значения для запроса к сайту, где обходите капчу:
answer
challenge_id
Список параметров GET/POST запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | вш ключ API |
method | Строка | Да | lemin - указывает что вы решаете капчу Lemin |
captcha_id | Строка | Да | Значение параметра captcha_id найденное на странице |
div_id | Строка | Нет | id родительского div, внутри которого находится капча |
api_server | Строка | Нет | Основная часть URL, откуда подгружаются скрипты капчи. По умолчанию: https://api.leminnow.com/ |
pageurl | Строка | Да | Полный URL страницы с капчей |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
Список параметров GET запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 1 |
Нет | Для Lemin сервер всегда вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Request URL example:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Cloudflare Turnstile
Cloudflare Turnstile - капча от Cloudflare
Для решения капчи нужно:
-
Найти значение sitekey в исходном коде страницы или JS-коде сайта. В API капчи это значение передается либо в аттрибуте
data-sitekey
у div-элемента капчи, либо в свойствеsitekey
в JavaScript коде. Также, его можно найти в URL iframe капчи. Формат значения: 0x1AAAAAAAAkg0s2VIOD34y5.Кроме того капча может иметь еще два дополнительных строковых параметра:
action
(аттрибут data-action) иdata
(аттрибут data-cdata). -
Оправьте запрос HTTP GET or POST к нашему API:
http://2captcha.com/in.php
устанавив значение параметра method в turnstile, а также передайте sitekey и полный URL страницы с капчей в параметре pageurl.
Описание всех параметров доступно в таблице ниже.Пример запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=turnstile&sitekey=0x1AAAAAAAAkg0s2VIOD34y5&pageurl=http://mysite.com/
-
API вернет вам ID капчи: Текстом OK|2122988149 или в JSON {"status":1,"request":"2122988149"}. Если запрос был некорректным - вы получит код ошибки.
-
Подождите 10-15 секунд и запрашивайте ответ_HTTP GET_ у API:
http://2captcha.com/res.php
.
Полный список параметров в таблице ниже.Если капча решена, вы получите в ответе токен следующего вида:
0.YLeK-x3KEpV7itsgBxdZcs5yzIagQ8w8sWHCHsQXH66Mx-V8dN7fRCoydys8BZjt-QUR4KZ2kUxcGi_ZXGjyp1N4iWOEQo4jsa_6kX6-E243Dt3KMxnv36p_jgyclFAdEXriaZQVcEMLjunJJrmpim-5CGuWktjAxyG7zDIJuNNDsZrq9WMLjSxHddOcly2f3iIcqLAhWAkoGASz27VZa6hFw6OfP3Uf984zKZnPWVa1K91ms9jtJe2xRBwnonCR3dpPJC_C7OPDCYY3IR-e78Q6pJvLNdh0qx-f5YU7UZPAC74scs3NZPyyNusy95cK.ZUyj-S_XefnHH_sbOiF2jQ.57975f115dfb9e22aaa6e2055314758a0c5b05bc5e64951f6fe585c23aeff028
Если капча не решена - получите_CAPCHA_NOT_READY_. Повторите запрос через 5 секунд.
Если возникла ошибка, API вернет соотвествующий код ошибки.
-
Используйте полученный токен при работе с сайтом, где обходите капчу. Токен чаще всего передается через элекмент
input
с аттрибутомname="cf-turnstile-response"
, а если используется режим совместимости с reCAPTCHA, то еще и черезinput
с аттрибутомname="g-recaptcha-response"
. Или же через коллбек-функцию, которая задается при вызовеturnstile.render
в свойствеcallback
или через аттрибутdata-callback
.
Капча Turnstile на страницах Cloudflare Challenge
Если вам нужно обойти капчу Turnstile на странице Cloudflare Challenge вы ДОЛЖНЫ передать ряд дополнильных параметров:
- action
- data
- pagedata
- useragent
Для случаев, когда Turnstile используется как самостоятельная капча, размещенная на самом сайте, эти параметры не являются обязательными.
Как перехватить параметры вызова метода turnstile.render
Для перехвата параметров вы можете переопределить метод turnstile.rended. Например, вы можете сделать инъекцию JavaScript на странице. Важно: код должен выполниться до того, как загрузится капча.
const i = setInterval(()=>{
if (window.turnstile) {
clearInterval(i)
window.turnstile.render = (a,b) => {
let p = {
method: "turnstile",
key: "YOUR_API_KEY",
sitekey: b.sitekey,
pageurl: window.location.href,
data: b.cData,
pagedata: b.chlPageData,
action: b.action,
userAgent: navigator.userAgent,
json: 1
}
console.log(JSON.stringify(p))
window.tsCallback = b.callback
return 'foo'
}
}
},50)
Список параметров GET/POST запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | вш ключ API |
method | Строка | Да | turnstile - указывает что вы решаете капчу turnstile |
sitekey | Строка | Да | Значение параметра sitekey найденное на странице |
action | Строка | Нет* | Значение дополнительного параметра action, найденного на странице |
data | Строка | Нет* | Значение дополнительного параметра data, найденного на странице |
pagedata | Строка | Нет* | Значение параметра chlPageData при вызове turnstile.render |
useragent | Строка | Да | User-Agent вашего браузера. Должен совпадать с User-Agent который вы используете для доступа к сайту. Используйте только современные браузеры, выпущенные в последние 6 месяцев. |
pageurl | Строка | Да | Полный URL страницы с капчей |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
* - параметры, обязательные для обхода Turnstile на страницах Cloudflare Challenge
Список параметров GET запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 1 |
Нет | 1 - вернуть ответ в JSON, 0 - в виде текста |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Request URL example:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Amazon WAF
Amazon WAF Captcha также известная как AWS WAF Captcha - это часть системы интеллектуальной защиты от угроз от Amazon AWS
Для обхода Amazon WAF Captcha вам потребуются следующие параметры:
sitekey
- значение параметраkey
из исходного кода страницыiv
- значение параметраiv
из исходного кода страницыcontext
- значение параметраcontext
из исходного кода страницыchallenge_script
- URL скриптаchallenge.js
captcha_script
- URL скриптаcaptcha.js
pageurl
- полный URL страницы, на которой вы получили капчу
Пример тела запроса к http://2captcha.com/res.php
{
"key":"1abc234de56fab7c89012d34e56fa7b8",
"method":"amazon_waf",
"sitekey":"AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AHMDLodoefdvyOnsHMRtEKQAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMUX+ZqwwuANRnZujSAgEQgDvHSxUQmVBuyUtumoW2n4ccTG7xQN1r3X/zz41qmQaYv9SSSvQrjIoDXKaUQ23tVb4ii8+uljuRdz/HPA==",
"pageurl":"https://non-existent-example.execute-api.us-east-1.amazonaws.com/latest",
"context":"9BUgmlm48F92WUoqv97a49ZuEJJ50TCk9MVr3C7WMtQ0X6flVbufM4n8mjFLmbLVAPgaQ1Jydeaja94iAS49ljb+sUNLoukWedAQZKrlY4RdbOOzvcFqmD/ZepQFS9N5w15Exr4VwnVq+HIxTsDJwRviElWCdzKDebN/mk8/eX2n7qJi5G3Riq0tdQw9+C4diFZU5E97RSeahejOAAJTDqduqW6uLw9NsjJBkDRBlRjxjn5CaMMo5pYOxYbGrM8Un1JH5DMOLeXbq1xWbC17YSEoM1cRFfTgOoc+VpCe36Ai9Kc=",
"iv":"CgAHbCe2GgAAAAAj",
"challenge_script":"https://41bcdd4fb3cb.610cd090.us-east-1.token.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/challenge.js",
"captcha_script":"https://41bcdd4fb3cb.610cd090.us-east-1.captcha.awswaf.com/41bcdd4fb3cb/0d21de737ccb/cd77baa6c832/captcha.js",
"json":1
}
Если все ОК, в ответ вы получите ID капчи{"status":1,"request":"2122988149"}
или код ошибки если ваш запрос составлен некорректно.
Подождите 15-20 секунд и сделайте GET запрос к http://2captcha.com/res.php
для получения ответа на капчу.
Полный список параметров запроса есть в таблице.
Если ваша капча решена, то в ответ вы получете токен следующего вида:
{
"status": 1,
"request": {
"captcha_voucher":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0aW1lc3RhbXAiOiIyMDIzLTAzLTIwVDEzOjM2OjM3Ljg1Nzk5MjEyMFoiLCJjbGllbnRfaWQiOiIxOTI4NTIzMi1jMTRiLTRlMDUtYjQ2OC02ODBiYjE3ZWNhM2MiLCJkb21haW4iOiJlZnc0N2ZwYWQ5LmV4ZWN1dGUtYXBpLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiZXhwIjoxNjc5MzE5Mzk3LCJwcm9ibGVtIjoiYmlmdXJjYXRlZHpvbyIsInByb2JsZW1fb3ZlcnJpZGUiOmZhbHNlLCJudW1fc29sdXRpb25zX3Byb3ZpZGVkIjoxfQ.qgSX4tZqZQwXNzVQgVe3OsUMR3vf7-fLWNzZKIHXN-4",
"existing_token":"25b7ee41-2d4e-46f7-a52e-2d53d10c199a:EQoAf2Zd5kEWAAAA:qGp2oQxLMEny1L7qBP6uRYJ/DRDRL2v50309/M/O7Gul+k1zh6ZqDVGNbrG6LYmUD+4dSYJMNM2IuxgQYbVHp83OwF8p/BgolBwp45CulWxzCjyEGy1/degDo5ivZ8AjFVymUJI/vCq0BOhD4GGZqR8oveOYcUN7OIJy5mtE2reNI92qCiRCqEr8ccZo02DsBDBDQEQOR+q17gQn2vn0Hp3Ss7A="
}
}
Если капча еще не решена - получите CAPCHA_NOT_READY. Просто повторяйте запрос с интервалом не менее 5 секунд пока не получите ответ или код ошибки.
Используйте полученные значения для взаимодействия с сайтом, обычно они отправляются в соответвующих полях POST-запроса к бекенду сайта, но вам обязательно нужно найти, как именно уходит токен в вашем случае и подставлять его соответствующим образом.
Список параметров запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | amazon_waf - указывает на то, что вы решаете Amazon WAF Captcha |
sitekey | Строка | Да | Значение key со страницы |
iv | Строка | Да | Значение iv со страницы |
context | Строка | Да | Значение context со страницы |
pageurl | Строка | Да | Полный URL страницы с капчей |
challenge_script | Строка | Нет | Ссылка на скрипт challenge.js на странице |
captcha_script | Строка | Нет | Ссылка на скрипт captcha.js на странице |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
proxy | Строка | Нет | Формат: логин:пароль@123.123.123.123:3128 Больше информации о прокси здесь. |
proxytype | Строка | Нет | Тип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5. |
Список параметров GET-запроса к http://2captcha.com/res.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу reportgood — - сообщить о том, что токен сработал reportbad — - сообщить о том, что токен не сработал |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
CyberSiARA
Основанный на токенах метод автоматического решения капчи CyberSiARA.
Спецификация метода
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | cybersiara |
master_url_id | Строка | Да | Значение параметра MasterUrlId из запроса к API/CyberSiara/GetCyberSiara |
pageurl | Строка | Да | Полный URL страницы с капчей |
userAgent | Строка | Да | User-Agent вашего браузера |
proxy | Строка | Нет | Ваш прокси в формате: login:password@123.123.123.123:3128 Подробнее |
proxytype | Строка | Нет | Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5 |
json | Число | Нет | Передайте 1 чтобы получить ответ в формате JSON. По умолчанию: 0 |
Пример запроса
Эндпоинт: https://2captcha.com/in.php
Метод: POST
{
"key": "YOUR_API_KEY",
"method": "cybersiara",
"master_url_id": "tpjOCKjjpdzv3d8Ub2E9COEWKt1vl1Mv",
"pageurl": "https://demo.mycybersiara.com/",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36",
"json": 1
}
Запрос вернет id вашей капчи, используйте его для запроса результата.
Запрос результата
Пример запроса
Эндпоинт: https://2captcha.com/res.php
Method: POST
{
"key": "YOUR_API_KEY",
"action": "get",
"id": 2122988149,
"json": 1
}
Пример ответа
{
"status": 1,
"request": "eyJhbGciOiJIUzUxMi..MjEzODYwMjE="
}
MTCaptcha
Основанный на токенах метод автоматического решения капчи MTCaptcha.
Спецификация метода
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | mt_captcha |
sitekey | Строка | Да | Значение параметра sitekey найденное на странице |
pageurl | Строка | Да | Полный URL страницы с капчей |
proxy | Строка | Нет | Ваш прокси в формате: login:password@123.123.123.123:3128 Подробнее |
proxytype | Строка | Нет | Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5 |
json | Число | Нет | Передайте 1 чтобы получить ответ в формате JSON. По умолчанию: 0 |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
Пример запроса
Эндпоинт: https://2captcha.com/in.php
Метод: POST
{
"key":"YOUR_API_KEY",
"method":"mt_captcha",
"sitekey":"MTPublic-KzqLY1cKH",
"pageurl":"https://2captcha.com/demo/mtcaptcha",
"json": 1
}
Запрос вернет id вашей капчи, используйте его для запроса результата.
Запрос результата
Пример запроса
Эндпоинт: https://2captcha.com/res.php
Method: POST
{
"key": "YOUR_API_KEY",
"action": "get",
"id": 2122988149,
"json": 1
}
Пример ответа
{
"status": 1,
"request": "v1(fa78e9fe,c64ca2f..8e476cd94a6a,Hx3jMg3)"
}
Cutcaptcha
Основанный на токенах метод автоматического решения капчи Cutcaptcha.
Полученный токен необходимо установить в качестве атрибута value
для элемента input#cap_token
и/или передать функции обратного вызова.
Спецификация метода
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | cutcaptcha |
misery_key | Строка | Да | Значение переменной CUTCAPTCHA_MISERY_KEY определенное на странице |
api_key | Строка | Да | Значение аттрибута data-apikey у тега body внутри iframe капчи. Также, имя javascript файла капчи, подключаемого на странице |
pageurl | Строка | Да | Полный URL страницы с капчей |
proxy | Строка | Нет | Ваш прокси в формате: login:password@123.123.123.123:3128 Подробнее |
proxytype | Строка | Нет | Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5 |
json | Число | Нет | Передайте 1 чтобы получить ответ в формате JSON. По умолчанию: 0 |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
Пример запроса
Эндпоинт: https://2captcha.com/in.php
Метод: POST
{
"key": "YOUR_API_KEY",
"method": "cutcaptcha",
"misery_key": "a1488b66da00bf332a1488993a5443c79047e752",
"api_key": "SAb83IIB",
"pageurl": "https://example.cc/foo/bar.html",
"json": 1
}
Запрос вернет id вашей капчи, используйте его для запроса результата.
Запрос результата
Пример запроса
Эндпоинт: https://2captcha.com/res.php
Method: POST
{
"key": "YOUR_API_KEY",
"action": "get",
"id": 2122988149,
"json": 1
}
Пример ответа
{
"status": 1,
"request": "BazM23cpFUUyAAAdqPwNEDZx0REtH3ss"
}
Использование токена
Полученный токен поместите в значение тега input
с id = cap_token
, затем отправьте форму, внутри которой находится этот input
, например:
document.querySelector('input#cap_token').value='BazM23cpFUUyAAAdqPwNEDZx0REtH3ss'
document.querySelector('form').submit()
Если на странице задана коллбек-функция, то можно отправить токен через нее:
capResponseCallback('BazM23cpFUUyAAAdqPwNEDZx0REtH3ss')
Friendly Captcha
Основанный на токенах метод автоматического решения капчи Friendly Captcha.
Полученный токен необходимо установить в качестве атрибута value
для элемента input#cap_token
и/или передать функции обратного вызова.
Важно: Для успешного использования полученного токена, виджет капчи не должен быть загружен на странице. Для этого вам необходимо прерывать запросы к
/friendlycaptcha/...module.min.js
на странице. Когда виджет капчи уже загружен на странице, большая вероятность что полученный токен не сработает.
Спецификация метода
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | friendly_captcha |
sitekey | Строка | Да | Значение аттрибута data-apikey элемента div капчи |
pageurl | Строка | Да | Полный URL страницы с капчей |
proxy | Строка | Нет | Ваш прокси в формате: login:password@123.123.123.123:3128 Подробнее |
proxytype | Строка | Нет | Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5 |
json | Число | Нет | Передайте 1 чтобы получить ответ в формате JSON. По умолчанию: 0 |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
Пример запроса
Эндпоинт: https://2captcha.com/in.php
Метод: POST
{
"key": "YOUR_API_KEY",
"method": "friendly_captcha",
"sitekey": "2FZFEVS1FZCGQ9",
"pageurl": "https://example.com",
"json": 1
}
Запрос вернет id вашей капчи, используйте его для запроса результата.
Запрос результата
Пример запроса
Эндпоинт: https://2captcha.com/res.php
Method: POST
{
"key": "YOUR_API_KEY",
"action": "get",
"id": 2122988149,
"json": 1
}
Пример ответа
{
"status": 1,
"request": "f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD"
}
Полученный токен поместите в значение тега input
с name = frc-captcha-solution
, затем отправьте форму, внутри которой находится этот input
, например:
document.querySelector('input.frc-captcha-solution').value='f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD'
document.querySelector('form').submit()
Имейте в виду, что имя для input
может быть кастомизировано с помощью аттрибута data-solution-field-name
и в этом случае нужно использовать значение этого аттрибута, как имя.
Если на странице задана коллбек-функция, то можно отправить токен через нее. Например, если data-callback="doneCallback"
то вы должны выполнить:
doneCallback('f8b10f4ad796484bae963b1ebe3ce2bb.ZXL8Z...AAAAAA.AgAD')
atbCAPTCHA
Основанный на токенах метод автоматического решения капчи atbCAPTCHA.
Спецификация метода
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | atb_captcha |
app_id | Строка | Да | Значение параметра appId в исходном коде сайта |
api_server | Строка | Да | Значение параметра apiServer в исходном коде сайта |
pageurl | Строка | Да | Полный URL страницы с капчей |
proxy | Строка | Нет | Ваш прокси в формате: login:password@123.123.123.123:3128 Подробнее |
proxytype | Строка | Нет | Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5 |
json | Число | Нет | Передайте 1 чтобы получить ответ в формате JSON. По умолчанию: 0 |
Пример запроса
Эндпоинт: https://2captcha.com/in.php
Метод: POST
{
"key": "YOUR_API_KEY",
"method": "atb_captcha",
"app_id": "af23e041b22d000a11e22a230fa8991c",
"api_server": "https://cap.aisecurius.com",
"pageurl": "https://www.example.com/",
"json": 1
}
Запрос вернет id вашей капчи, используйте его для запроса результата.
Запрос результата
Пример запроса
Эндпоинт: https://2captcha.com/res.php
Method: POST
{
"key": "YOUR_API_KEY",
"action": "get",
"id": 2122988149,
"json": 1
}
Пример ответа
{
"status": 1,
"request": "sl191suxzluwxxh6f:"
}
Использование токена
Полученный при решении токен передается в callback-функцию, определенную в свойстве success
при инициализации капчи. Эта функция обычно используется для выполнения запроса к бекенду сайта и верификации токена. Вы можете либо выполнить callback-функцию, передавая токен в качестве аргумента, либо составить запрос к сайту, подставив в него токен.
const myCallbackFunction = (token) {
// верификация токена
}
var myCaptcha = as.Captcha(document.getElementById('demo'), {
appId: 'af23e041b22d000a11e22a230fa8991c',
success: myCallbackFunction
})
Tencent
Основанный на токенах метод автоматического решения капчи Tencent.
Спецификация метода
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | tencent |
app_id | Строка | Да | Значение параметра appId в исходном коде сайта |
pageurl | Строка | Да | Полный URL страницы с капчей |
captcha_script | Строка | Нет | URL скрипта капчи, найденный в коде страницы. По умолчанию: https://turing.captcha.qcloud.com/TCaptcha.js |
proxy | Строка | Нет | Ваш прокси в формате: login:password@123.123.123.123:3128 Подробнее |
proxytype | Строка | Нет | Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5 |
json | Число | Нет | Передайте 1 чтобы получить ответ в формате JSON. По умолчанию: 0 |
Пример запроса
Эндпоинт: https://2captcha.com/in.php
Метод: POST
{
"key": "YOUR_API_KEY",
"method": "tencent",
"app_id": "190014885",
"pageurl": "https://www.example.com/",
"json": 1
}
Запрос вернет id вашей капчи, используйте его для запроса результата.
Запрос результата
Пример запроса
Эндпоинт: https://2captcha.com/res.php
Method: POST
{
"key": "YOUR_API_KEY",
"action": "get",
"id": 2122988149,
"json": 1
}
Пример ответа
{
"status": 1,
"request": {
"appid": "190014885",
"ret": 0,
"ticket": "tr0344YjJASGmJGtohyWS_y6tJKiqVPIdFgl87vWlVaQoueR8D6DH28go-i-VjeassM31SXO7D0*",
"randstr": "@KVN"
}
}
Использование токена
Полученный при решении токен передается в callback-функцию, определенную во втором аргументе вызова конструктора TencentCaptcha
при инициализации капчи.
new TencentCaptcha(CaptchaAppId, callback, options);
Эта функция обычно используется для выполнения запроса к бекенду сайта и верификации токена. Вы можете либо выполнить callback-функцию, передавая токен в качестве аргумента, либо составить запрос к сайту, подставив в него токен.
Например, если капча инициализурована следующим образом:
const myCallbackFunction = (token) {
// verify the token
}
var captcha = new TencentCaptcha('190014885', myCallbackFunction, {});
captcha.show();
То вам нужно вызвать:
let data = JSON.parse(res)
myCallbackFunction(res.request)
Где res
- это ответ API в формате JSON.
DataDome
Основанный на Cookies метод автоматического решения капчи DataDome.
Установите полученные куки в вашем браузере для обхода капчи.
Для решения капчи DataDome
обязательно использовать прокcи.
Внимание, вам необходимо следить за значением параметра
t
вcaptcha_url
при его наличии. Значениеt
должно быть равноfe
.
Еслиt=bv
, это значит что ваш ip забанен капчей и вам необходимо сменить ip адресс.
Внимание, вам необходимо следить за качеством используемого прокси. Если ваш прокси заблокирован капчей
DataDome
, то при решении капчи вы будете получать ошибкиERROR_PROXY_CONNECTION_FAILED
илиERROR_CAPTCHA_UNSOLVABLE
, в таком случае вам необходимо сменить используемый прокси сервер.
Внимание, в запросе необходимо присылать User-Agent, который используется при доступе к сайту, мы используем его при загрузке и решении капчи. Всегда используйте User-Agent современных браузеров.
Спецификация метода
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | datadome |
captcha_url | Строка | Да | Значение параметра src для элемента iframe содержащего капчу на странице. |
pageurl | Строка | Да | Полный URL страницы, при переходе на которую триггерится капча |
userAgent | Строка | Да | User-Agent браузера, который будет использован работником при загрузке капчи. |
proxy | Строка | Да | Ваш прокси в формате: login:password@123.123.123.123:3128 Подробнее |
proxytype | Строка | Да | Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5 |
json | Число | Нет | Передайте 1 чтобы получить ответ в формате JSON. По умолчанию: 0 |
Пример запроса
Эндпоинт: https://2captcha.com/in.php
Метод: POST
{
"key": "YOUR_API_KEY",
"method": "datadome",
"captcha_url": "https://geo.captcha-delivery.com/captcha/?initialCid=AHrlqAAA...P~XFrBVptk&t=fe&referer=https%3A%2F%2Fhexample.com&s=45239&e=c538be..c510a00ea",
"pageurl": "https://example.com/",
"proxy":"username:password@1.2.3.4:5678",
"proxytype":"http",
"userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.3",
"json": 1
}
Запрос вернет id вашей капчи, используйте его для запроса результата.
Запрос результата
Пример запроса
Эндпоинт: https://2captcha.com/res.php
Method: POST
{
"key": "YOUR_API_KEY",
"action": "get",
"id": 2122988149,
"json": 1
}
Пример результата
{
"status": 1,
"request": "datadome=G4TdaXfDqz0B..OJDxGGtKDktILJQEDxM; Max-Age=31536000; Domain=.example.com; Path=/; Secure; SameSite=Lax"
}
Распознавание аудио
Мы предоставляем сервис по распознаванию речи, который позволяет конвертировать аудиозапись в текст. Метод может быть использован как для решения аудио капчи, так и для распознавания любой аудиозаписи. Метод имеет следующие ограничения:
- Максимальный размер файла: 1 МБ
- Длительность записи: без ограничения
- Поддерживаемый формат аудио: только mp3
- Поддерживаемые языки: Русский, Английский, Французский, Немецкий, Греческий, Португальский
Процесс распознавания речи полностью автоматизирован и выполняется нейросетью, обученной для конвертации речи в текст.
Для распознавания аудио вам нужно:
- Закодировать mp3 файл в base64
- Отправить запрос к нашему API, подставив в него полученную base64-строку и указав язык
Пример тела запроса к http://2captcha.com/in.php
{
"key":"1abc234de56fab7c89012d34e56fa7b8",
"method":"audio",
"body":"",
"lang":"pt",
"json":1
}
Если все ОК, в ответ вы получите ID своего запроса{"status":1,"request":"2122988149"}
или код ошибки если ваш запрос составлен некорректно.
Подождите 15-20 секунд и сделайте GET запрос к http://2captcha.com/res.php
для получения результата распознавания.
Полный список параметров запроса есть в таблице.
Если запись успешно распознана, вы получите результат в виде текста
{
"status": 1,
"request": "Привет!"
}
Если распознавание еще не завершено - вы получите CAPCHA_NOT_READY. Просто повторяйте запрос с интервалом не менее 5 секунд пока не получите ответ или код ошибки.
Используйте полученные текст так, как вам это нужно.
Список параметров запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | audio - указывает на то, что вы отправляете аудиозапись на распознавание |
body | Строка | Да | Аудиозапись в формате mp3 закодированноя в base64 |
lang | Строка | Да | Язык аудио. Поддерживаемые языки: en, fr, de, el, pt, ru . |
Список параметров GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get - получить ответ на капчу |
id | Число | Да | ID запроса, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
Пример запроса:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149
Метод Bounding Box
Этот метод можно использовать для решения задач, в которых вам необходимо выбрать определенный объект или нарисовать рамку вокруг объекта, показанного на изображении, а также для разметки данных.
Метод имеет следующие ограничения:
- Поддерживаемые форматы изображений: JPEG, PNG, GIF
- Максимальный размер файла: 600 kB
- Максимальный размер изображения: 1000px с любой стороны
Чтобы воспользоваться методом Bounding Box необходимо:
-
Получить изображение и инструкцию, какие объекты необходимо выбрать на изображении.
-
Отправить запрос HTTP POST к нашему API:
http://2captcha.com/in.php
указав bounding_box в качестве значения параметра method.
Сервер принимает изображения в формате base64.Вам необходимо обязательно передать дополнительные инструкции в виде текста или изображения. В виде текста с помощью параметра textinstructions, или в виде изображения с помощью параметра imginstructions.
Полный список параметров приведён в таблице ниже.
-
Сервер вернёт ID капчи или код ошибки, если что-то пошло не так.
-
Подождите 5 секунд и отправьте HTTP GET запрос к нашему API:
http://2captcha.com/res.php
чтобы получить результат.Если задание выполненно, то сервер вернёт координаты рамки, в которой находится указанный в описаниии объект, например: OK|[{"xMin":559,"xMax":797,"yMin":164,"yMax":430}]. В ответе содержатся координаты двух точек прямоугольника, расположенных по диагонали. Отсчёт координат от верхнего левого угла изображения.
Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
Если что-то пошло не так, сервер вернёт код ошибки.
Пример формы для загрузки изображения с помощью метода bounding_box в формате base64
<form method="post" action="http://2captcha.com/in.php">
<input type="hidden" name="method" value="bounding_box">
Ваш ключ API:
<input type="text" name="key" value="YOUR_APIKEY">
Тело изображения bounding_box в формате base64:
<textarea name="image">BASE64_IMAGE</textarea>
Инструкция:
<input type="textinstructions" name="textinstructions" value="Обведи машину на изображении">
<input type="submit" value="Загрузить и получить ID">
</form>
Параметр YOUR_APIKEY нужно заменить на ваш ключ API.
BASE64_IMAGE — тело файла изображения, закодированное в формате base64.
Список параметров POST-запроса к http://2captcha.com/in.php
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
method | Строка | Да | bounding_box |
image | Строка | Да | Изображение, закодированное в формате Base64 |
textinstructions | Строка | Да* | Текст с инструкцией по разметке данных. Будет показан работнику, чтобы помочь ему правильно выполнить задание. Необязателен, если инструкция уже есть в виде параметра imginstructions . |
imginstructions | Строка | Да* | Изображение с инструкцией по разметке данных, будет показано работнику, чтобы помочь ему правильно выполнить задание. Изображение должно быть закодированно в формате Base64. Необязателен, если инструкция уже есть в виде параметра textinstructions . |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
soft_id | Число | Нет | ID разработчика ПО. Разработчики, интегрировавшие свое ПО с нашим сервисом, получают 10% от стоимости каждого такого запроса. |
lang | Строка | Нет | Код языка. См. список поддерживаемых языков. |
can_no_answer | Число По умолчанию: 0 |
Нет | 0 — не определено 1 — возможно, что изображение не содержит объектов, которые удовлетворяют инструкции. Устанавливайте значение 1 только если на изображении может не быть картинок с нужным объектом. Мы покажем работнику кнопку "Нет подходящих картинок", а вы получите в ответе No_matching_images. |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
pingback | Строка | Нет | URL для автоматической отправки ответа на капчу (callback). URL должен быть зарегистрирован на сервере. Больше информации здесь. |
Список параметров для GET-запроса к http://2captcha.com/res.php
GET параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу |
id | Число | Да | ID капчи, полученный от in.php. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
header_acao | Число По умолчанию: 0 |
Нет | 0 — выключен 1 — включен Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ. Используется для кроссдоменных AJAX-запросов из веб-приложений. |
Пример запроса
Эндпоинт: https://2captcha.com/in.php
Метод: POST
{
"key": "YOUR_API_KEY",
"method": "bounding_box",
"image": "/9j/4AAQSkZJRgABAQEAYABgAAD//gA7Q1JFQVRPUjogZ2Q...",
"textinstructions": "Обведите всех людей на изображении",
"json": 1
}
Запрос вернет id вашей капчи, используйте его для запроса результата.
Запрос результата
Пример запроса
Эндпоинт: https://2captcha.com/res.php
Method: POST
{
"key": "YOUR_API_KEY",
"action": "get",
"id": 2122988149,
"json": 1
}
Пример ответа
{
"status": 1,
"request": "[{\"xMin\":100,\"xMax\":316,\"yMin\":66,\"yMax\":210}]"
}
Язык капчи
Наш API позволяет указать язык капчи с помощью параметра lang
.
Каждый работник нашего сервиса может рассказать нам, какими языками он владеет. Когда вы отправляете нам капчу с указанием языка в параметре lang
мы распределяем вашу капчу работникам, которые говорят на этом языке. Это позволяет решать капчи на разных языках, например китайском или вьетнамском.
Список поддерживаемых языков приведен в таблице.
Код языка (значение lang ) |
Язык |
---|---|
en | Английский |
ru | Русский |
es | Испанский |
pt | Португальский |
uk | Украинский |
vi | Вьетнамский |
fr | Французский |
id | Индонезийский |
ar | Арабский |
ja | Японский |
tr | Турецкий |
de | Немецкий |
zh | Китайский |
fil | Филиппинский |
pl | Польский |
th | Тайский |
it | Итальянский |
nl | Нидерландский |
sk | Словацкий |
bg | Болгарский |
ro | Румынский |
hu | Венгерский |
ko | Корейский |
cs | Чешский |
az | Азербайджанский |
fa | Персидский (Фарси) |
bn | Бенгальский |
el | Греческий |
lt | Литовский |
lv | Латышский |
sv | Шведский |
sr | Сербский |
hr | Хорватский |
he | Иврит |
hi | Хинди |
nb | Норвежский |
sl | Словенский |
da | Датский |
uz | Узбекский |
fi | Финский |
ca | Каталонский |
ka | Грузинский |
ms | Малайский |
te | Телугу |
et | Эстонский |
ml | Малаялам |
be | Белорусский |
kk | Казахский |
mr | Маратхи |
ne | Непальский |
my | Бирманский |
bs | Боснийский |
hy | Армянский |
mk | Македонский |
pa | Панджаби |
Обработка ошибок
Очень важно правильно обрабатывать ошибки в вашем коде, чтобы избежать блокировки вашего аккаунта и остановки предоставления сервиса.
Посмотрите отладочный метод доступный в нашем API. Он может помочь вам определить причину возникновения ошибки.
Обычно, если при обработке вашего запроса возникла ошибка или запрос сформирован некорректно, сервер вернёт код ошибки.
Ниже вы найдете таблицы со списком возможных кодов ошибки:
Ошибки, как и ответы на капчи, возвращаются в виде простого текста, либо в формате JSON, если вы используете параметр json=1.
Вы можете получить список всех ошибок, которые возвращает in.php, отправив вот такой запрос.
В очень редких случаях сервер может вернуть HTML-страницу с ошибкой 500 или 502 — пожалуйста, имейте это в виду и обрабатывайте эту ситуацию корректно.
Если вы получили что-либо, не похожее на ответ ли код ошибки, подождите 5 секунд и отправьте запрос повторно.
Ошибки in.php
Код ошибки | Описание | Действие |
---|---|---|
ERROR_WRONG_USER_KEY | Вы указали значение параметра key в неверном формате, ключ должен содержать 32 символа. | Прекратите отправку запросов и проверьте ваш ключ API. |
ERROR_KEY_DOES_NOT_EXIST | Ключ, который вы указали, не существует. | Прекратите отправку запросов и проверьте ваш ключ API. |
ERROR_ZERO_BALANCE | На вашем счету недостаточно средств. | Прекратите отправку запросов. Пополните баланс вашего счета, чтобы продолжить работу с сервисом. |
ERROR_PAGEURL | Параметр pageurl не задан в запросе. | Остановите отправку запросов и измените ваш код, чтобы передавать правильное значение параметра pageurl. Подробнее. |
ERROR_NO_SLOT_AVAILABLE | Вы можете получить данную ошибку в двух случаях: 1. Если решаете обычные капчи или ArkoseLabs FunCaptcha: Максимальная ставка, которую вы указали в настройках вашего аккаунта, ниже текущей ставки на сервере. Вам нужно скорректировать максимальную ставку. 2. Если решаете капчи с токенами: Очередь ваших капч, которые ещё не распределены на работников, слишком длинная. Длина очереди зависит от общего числа капч, которые ждут распределения, и может составлять от 50 до 100 капч. |
Если вы получили данную ошибку, не отправляйте ваш запрос повторно сразу же после её получения. 1. Скорректируйте максимальную ставку в настройках вашего аккаунта. 2. Сделайте паузу в 2-3 секунды и попробуйте повторить ваш запрос. |
ERROR_ZERO_CAPTCHA_FILESIZE | Размер вашего изображения менее 100 байт. | Проверьте файл изображения. |
ERROR_TOO_BIG_CAPTCHA_FILESIZE | Размер вашего изображения более 600 Кбайт либо более 1000 пикселей по любой из сторон. | Проверьте файл изображения. |
ERROR_WRONG_FILE_EXTENSION | Файл имеет неподдерживаемое расширение. Допустимые расширения: jpg, jpeg, gif, png. | Проверьте файл изображения. |
ERROR_IMAGE_TYPE_NOT_SUPPORTED | Сервер не может опознать тип вашего файла. | Проверьте файл изображения. |
ERROR_UPLOAD | Сервер не может прочитать файл из вашего POST-запроса. Это происходит, если POST-запрос некорректно сформирован в части отправки файла, либо содержит невалидный base64. |
Вам нужно исправить ошибку в коде, осуществляющем загрузку файла. |
ERROR_IP_NOT_ALLOWED | Запрос отправлен с IP-адреса, который не добавлен в список разрешённых вами IP-адресов. | Проверьте список разрешённых IP-адресов. |
IP_BANNED | Ваш IP-адрес заблокирован за чрезмерное количество попыток авторизации с неверным ключем авторизации. | Бан будет автоматически снят через 5 минут. |
ERROR_BAD_TOKEN_OR_PAGEURL | Вы можете получить эту ошибку, если отправляете нам reCAPTCHA V2. Ошибка возвращается если вы прислали невалидную пару значений googlekey и pageurl. Обычно так бывает, если reCAPTCHA подгружается в iframe с другого домена или поддомена. | Внимательно посмотрите на код страницы и найдите правильные значения googlekey и pageurl. |
ERROR_GOOGLEKEY | Вы можете получить эту ошибку, если отправляете нам reCAPTCHA V2. Ошибка возвращается если sitekey в вашем запросе пустой или имеет некорректный формат. | Проверьте ваш код, отвечающий за поиск sitekey и отправку запроса к нашему API. |
ERROR_PROXY_FORMAT | Вы используете некорректный формат прокси при отправке запроса к in.php |
Скорректируйте формат прокси в соответствии с описанием в разделе Работа с прокси. |
ERROR_WRONG_GOOGLEKEY | Параметр googlekey отсутствует в вашем запросе. |
Проверьте ваш код, отвечающий за поиск sitekey и отправку запроса к нашему API. |
ERROR_CAPTCHAIMAGE_BLOCKED | Вы отправили изображение, которые помечено в нашей базе данных как нераспознаваемое. Обычно это происходит, если сайт, на котором вы решаете капчу, прекратил отдавать вам капчу и вместо этого выдает изображение с информацией о блокировке. |
Попробуйте обойти ограничения этого сайта. |
TOO_MANY_BAD_IMAGES | Вы присылаете слишком много изображений, которые невозможно распознать | Убедитесь что ваши последние капчи отображатся и читаемы, а также проверьте нераспознаваемые капчи которые мы для вас сохранили. Исправьте ваш софт для того чтобы отправлять изображения правильно. |
MAX_USER_TURN | Вы делаете больше 60 обращений к in.php в течение 3 секунд. Ваш ключ API заблокирован на 10 секунд. Блокировка будет снята автоматически. |
Увеличьте тайм-аут между запросами к in.php до 100 мс. |
ERROR: NNNN | Где NNNN — номер ошибки. Вы превысили лимит запросов и ваш аккаунт временно заблокирован. |
Вам необходимо установить правильные тайм-ауты. Больше информации в главе Лимиты запросов. |
ERROR_BAD_PARAMETERS | Код ошибки возвращается если в вашем запросе отсутствуют обязательные параметры или значения параметров имеют некорректный формат. А также, если у вас одновременно включен режим SandBox и режим 100% распознавания. Например, вы присылаете reCAPTCHA в виде картинок без инструкции для работников. Или же присылаете некорректные cookies при решении reCAPTCHA V2 или TikTok |
Проверьте что ваш запрос содержит все необходимые параметры и они имеют правильный формат. Используйте режим отладки для проверки параметров, которые нам отправляете. |
ERROR_BAD_PROXY | Вы можете получить эту ошибку, если ваш прокси-сервер был помечен ПЛОХИМ, т.к. нам не удалось к нему подключиться. | Используйте другой прокси-сервер в своих запросах. |
Ошибки res.php
Код ошибки | Описание | Действие |
---|---|---|
CAPCHA_NOT_READY | Ваша капча ещё не решена. | Подождите 5 секунд и повторите ваш запрос. |
ERROR_CAPTCHA_UNSOLVABLE | Мы не можем решить вашу капчу — три наших работника не смогли её решить, либо мы не получили ответ в течение 90 секунд. Мы не спишем с вас деньги за этот запрос. |
Вы можете попробовать отправить капчу ещё раз. |
ERROR_WRONG_USER_KEY | Вы указали значение параметра key в неверном формате, ключ должен содержать 32 символа. | Прекратите отправку запросов и проверьте ваш ключ API. |
ERROR_KEY_DOES_NOT_EXIST | Ключ, который вы указали, не существует. | Прекратите отправку запросов и проверьте ваш ключ API. |
ERROR_WRONG_ID_FORMAT | Вы отправили ID капчи в неправильном формате. ID состоит только из цифр. | Проверьте ID вашей капчи или код, который отвечает за получение и отправку ID. |
ERROR_WRONG_CAPTCHA_ID | Вы отправили неверный ID капчи. | Проверьте ID вашей капчи или код, который отвечает за получение и отправку ID. |
ERROR_BAD_DUPLICATES | Ошибка возвращается, если вы используете функцию 100% распознавания. Ошибка означает, что мы достигли максимального числа попыток, но требуемое количество совпадений достигнуто не было. | Вы можете попробовать отправить вашу капчу ещё раз. |
ERROR_REPORT_NOT_RECORDED | Ошибка возвращается при отправке жалобы на неверный ответ если вы уже пожаловались на большое количество верно решённых капч (более 40%). Или если прошло более 15 минут с момента отправки капчи на решение. | Убедитесь, что вы отправляете жалобы только в случае неправильного решения. |
ERROR_DUPLICATE_REPORT | Ошибка возвращается при отправке отчетов если вы повторно отправляете отчет на одну и ту же капчу. | Убедитесь, что вы отправляете отчет на каждую капчу только один раз. |
ERROR: NNNN | Где NNNN — номер ошибки. Вы превысили лимит запросов и ваш аккаунт временно заблокирован. |
Вам необходимо установить правильные тайм-ауты. Больше информации в главе Лимиты запросов. |
ERROR_IP_ADDRES | Ошибка возвращается при добавлении домена или IP для pingback (callback). Это происходит, если вы отправляете запрос на добавление IP или домена с IP адреса, не совпадающего с вашим IP или доменом для pingback. |
Отправьте запрос с того же IP адреса, на который хотите получать pingback. |
ERROR_TOKEN_EXPIRED | Вы можете получить эту ошибку, если решаете капчу Geetest. Этот код ошибки означает, что истек срок действия значения challenge из вашего запроса. |
Попробуйте отправить запрос еще раз. Если вы всегда получаете эту ошибку, значит мы не можем решить Geetest капчу на этом сайте. |
ERROR_EMPTY_ACTION | Параметр action не был передан или передан без значения. |
Добавьте в запрос нужный параметр и значение, например, get или getbalance . |
ERROR_PROXY_CONNECTION_FAILED | Вы можете получить эту ошибку, если нам не удалось загрузить капчу через ваш прокси-сервер. Этот прокси будет помечен ПЛОХИМ и мы не будем принимать запросы с ним в течении 10 минут. А in.php будет возвращать ошибку ERROR_BAD_PROXY при использовании этого прокси. | Используйте другой прокси-сервер в своих запросах. |
Отладка
Иногда бывает сложно понять, почему наш API возвращает код ошибки в ответ на ваш запрос, который выглядит корректным.
В нашем API доступен метод, который может помочь вам определить причину возникновения ошибки, показав вам что именно мы получили от вас в запросе.
Метод может использоваться как с in.php
так и с res.php
с любым запросом.
Добавьте параметр debug_dump=1
к вашему запросу и наш сервер вернет дамп вашего запроса, содержащий все параметры, которые мы от вас получили.
Пример запроса:
http://2captcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=userrecaptcha&googlekey=6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-&json=1&header_acao=1&pageurl=http://mysite.com/page/with/recaptcha/&pingback=http://1.2.3.4/pingback_handler/&debug_dump=1
Пример ответа:
array(8) {
["key"]=>
string(32) "1abc234de56fab7c89012d34e56fa7b8"
["method"]=>
string(13) "userrecaptcha"
["googlekey"]=>
string(40) "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-"
["json"]=>
string(1) "1"
["header_acao"]=>
string(1) "1"
["pageurl"]=>
string(38) "http://mysite.com/page/with/recaptcha/"
["pingback"]=>
string(32) "http://1.2.3.4/pingback_handler/"
["debug_dump"]=>
string(1) "1"
}
array(0) {
}
array(0) {
}
{"status":0,"request":"ERROR_KEY_DOES_NOT_EXIST"}
С помощью этого метода можно легко отловить случаи, когда ваш запрос содержит неверные данные или какой-либо из обязательных параметров отсутствует.
Лимиты запросов
Пожалуйста, помните о том, что каждый ваш запрос к нашему API генерирует множество запросов к нашим БД. Поэтому мы просим вас устанавливать правильные тайм-ауты для ваших запросов, а также корректно обрабатывать ошибки в случаях, если сервер возвращает любой вид ошибки или что-либо отличное от ответа или кода ошибки (например, HTML-страницу с ошибкой).
Например:
- Если сервер вернул ERROR_NO_SLOT_AVAILABLE — подождите 5 секунд прежде чем отправлять ваш запрос ещё раз.
- Если сервер вернул ERROR_ZERO_BALANCE — подождите 60 секунд.
- После загрузки капчи подождите как минимум 5 секунд (15-20 для recaptcha) и только потом запрашивайте ответ.
- Если капча не решена, отправляйте повторный запрос не ранее чем через 5 секунд.
Если задержки в вашем ПО настроены некорректно, ваш аккаунт или IP-адрес будет временно заблокирован и сервер вернёт числовой код ошибки. По истечени времени блокировки ваш аккаунт будет автоматически разблокирован. Список кодов ошибок приведен в таблице ниже.
Коды ошибок, возвращаемые при установке ограничений для учётной записи
Код ошибки | Время блокировки | Причина блокировки |
---|---|---|
ERROR: 1001 | 10 минут | Вы получили 120 ответов ERROR_NO_SLOT_AVAILABLE за одну минуту из-за того, что ваша максимальная ставка ниже, чем текущая ставка на сервере. |
ERROR: 1002 | 5 минут | Вы получили 120 ответов ERROR_ZERO_BALANCE за одну минуту из-за того, что на вашем счету недостаточно средств. |
ERROR: 1003 | 30 секунд | Вы получаете ответ ERROR_NO_SLOT_AVAILABLE из-за того, что на сервере скопилась большая очередь из ваших капч, которые не распределены работникам. Вы получили в три раза больше ошибок, чем число капч, которое вы загрузили (но не менее 120 ошибок). Увеличьте тайм-аут, если вы получаете этот код ошибки. |
ERROR: 1004 | 10 минут | Ваш IP-адрес заблокирован, потому что мы получили 5 запросов с некорректным ключем API с вашего IP. |
ERROR: 1005 | 5 минут | Вы делаете слишком много запросов к res.php для получения ответов. При блокировке аккаунта используется следующее правило: R > C * 20 + 1200 Где: R — число ваших запросов C — число капч, которые вы загрузили Это означает, что вы не должны обращаться к res.php за ответом для каждой капчи более 20 раз. Пожалуйста, помните, что запрос баланса к res.php также учитывается! Чтобы получать ваши ответы быстрее и без риска быть заблокированным, вы можете использовать метод pingback, и мы отправим вам ответ, как только решим вашу капчу. |
MAX_USER_TURN | 10 секунд | Вы делаете больше 60 обращений к in.php в течение 3 секунд. Увеличьте тайм-аут между запросами к in.php до 100 мс. |
Работа с прокси
Прокси могут быть использованы для решения большинства видов javascript-капчи:
Прокси позволяют решать капчу с того же IP-адреса, с которого вы обращаетесь к сайту, защищенному капчей.
В большинстве случаев использовать прокси не обязательно. Но, для некоторых видов защиты сайтов вы должны их использовать. Например: страницы защиты Cloudflare и Datadome требуют совпадения IP-адресов.
Кроме того, хорошие прокси с регулярной их ротацией могут повысить скорость и процент успешных решений для Arkose Labs FunCaptcha.
Прокси не поддерживаются при решении reCAPTCHA V3 and Enterprise V3 так как использование прокси в этом случае сильно снижает score полученных токенов.
Если вы отправляете нам данные прокси-сервера, мы проверяем его доступность, пробуя открыть сайт через ваш прокси. Если открыть сайт не получается, мы не будем использовать ваш прокси-сервер.
Если ваш прокси проходит проверку, он будет использован для загрузки reCAPTCHA при её решении.
Мы имеем собственные прокси, которые можем вам предложить. Покупайте резидентные прокси, чтобы избежать ограничений и блокировок. Быстрый старт.
Мы поддерживаем следующие виды прокси: SOCKS4, SOCKS5, HTTP, HTTPS с аутенификацией по IP или по логину и паролю.
Если ваш прокси использует авторизацию по IP-адресу, вам необходимо добавить наш IP в список разрешённых адресов:
138.201.188.166
Укажите адрес и порт вашего прокси в качестве значения параметра proxy
Укажите тип вашего прокси в параметре proxytype.
Если ваш прокси использует аутентификацию по логину и паролю, укажите их в параметре proxy.
Параметры POST-запроса для прокси
Параметр POST | Тип | Обязателен | Описание |
---|---|---|---|
proxy | Строка | Нет | При аутенификации по IP: IP_адрес:ПОРТ Пример: proxy=123.123.123.123:3128 При аутенификации по логину и паролю: логин:пароль@IP_адрес:ПОРТ Пример: proxy=proxyuser:strongPassword@123.123.123.123:3128 |
proxytype | Строка | Нет | Тип вашего прокси: HTTP, HTTPS, SOCKS4, SOCKS5. Пример: proxytype=SOCKS4 |
Автоматический возврат ответа (pingback)
Мы предоставляем метод pingback (callback), который позволяет автоматически получить ответ на вашу капчу, когда она решена.
Это дает вам возможность получать ответы, не делая запросов к http://2captcha.com/res.php
, а также избежать блокировки вашего аккаунта из-за превышения лимита запросов.
Для получения ответов в автоматическом режиме вам необходимо:
- Зарегистрировать ваш домен или IP, на который будут отправляться ответы.
- Передать ваш URL для отправки ответа в параметре pingback вашего запроса к
http://2captcha.com/in.php
. - Обработать запрос HTTP POST, который приходит от нашего сервера на ваш URL. Данные в запросе приходят как URLencoded FormData (application/x-www-form-urlencoded). Запрос содержит два параметра:
id
(ID вашей капчи) иcode
- ответ на нее.
Incoming pingback request example:
id=51555263943&code=ANSWER
Вы можете использовать любой URL на зарегистрированом домене или IP и URL может включать ваши собственные параметры.
Но, тут есть одно ограничение: если вы отправляете капчу GET-запросом, а ваш URL для pingback включает несколько параметров, например http://mysite.com/pingback/?myId=1&myCat=2&something_else=test
то сохранится только первый из них ?myId=1
. Чтобы этого избежать, используйте POST-запрос с multipart/form-data.
Управление доменами и IP
Вы можете управлять вашими зарегистрированными доменами и IP на странице управления адресами pingback или с помощью HTTP GET запросов к http://2captcha.com/res.php
Параметры запросов описаны в таблице ниже.
Важно: Домен или IP может быть добавлен только с того же самого IP адреса, на который он указывает.
Список параметров GET запросов к http://2captcha.com/res.php
Параметр GET | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | add_pingback — зарегистрировать новый URL get_pingback — получить список зарегистрированных URL del_pingback — удалить URL |
addr | Строка | - | Ваш URL для отправки ответа. Например: http://mysite.com/pingback/url/ или 123.123.123.123/pingback/url/ Вы можете использовать значение all совместно с del_pingback для удаления всех URL. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер отправит ответ в виде простого текста 1 — сервер отправит ответ в формате JSON |
Примеры запросов
Добавить новый IP или домен:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=add_pingback&addr=http://mysite.com/test.php
Получить список зарегистрированных IP или доменов:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get_pingback&json=1
Удалить всех зарегистрированные IP или домены:
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=del_pingback&addr=all
Отчет об ответах
Отправлять отчеты об ответах не обязательно для решения капчи. Но это может помочь вам уменьшить стоитмость решения и повысить точность. Мы описали, почему важно отправлять отчеты в нашем блоге.
Мы рекомендуем сообщать как о неправильных ответах, так и о правильных.
Если ответ не был принят сайтом, используйте метод reportbad
чтобы сообщить нам об этом. Мы перепроверим ответ и вернем деньги за неправильный ответ на ваш баланс.
Если же ответ был успешно принят - используйте метод reportgood
. Это позволит нам повысить точность для будущих запросов.
Важно: не пытайтесь отправлять отчеты
reportbad
на верные ответы. Если вы будете это делать, то мы заблокируем вам возможность использования этого метода..
Отчеты для капч с токеном, таких как reCAPTCHA V2/V3, KeyCaptcha, FunCaptcha не видны в интерфейсе на сайте. Но мы собираем статистику по всем таким отчетам для повышения качества решений.
Отчёты о некорректных ответах не работают, если включена опция 100% распознавания.
Примеры запросов:
ReportBAD
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=reportbad&id=2122988149
ReportGOOD
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=reportgood&id=2122988149
Список параметров GET запроса к http://2captcha.com/res.php
Параметр GET | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | get — получить ответ на капчу reportgood — сообщить о верном ответе reportbad — сообщить о неверном ответе |
id | Строка | Да | ID капчи |
json | Число По умолчанию: 0 |
Нет | 0 — сервер отправит ответ в виде простого текста 1 — сервер отправит ответ в формате JSON |
В ответ на ваш запрос сервер ответит OK_REPORT_RECORDED
или вернёт код ошибки, если что-то не так.
Если вы получаете слишком много неверных ответов, вы можете указать дополнительные параметры вашей капчи, чтобы помочь нашим работникам решить её правильно.
Дополнительные методы
Вы можете получить дополнительную информацию от нашего API, например, баланс вашего счета.
Список дополнительных параметров приведён ниже.
Список параметров GET запросов для http://2captcha.com/res.php
Параметр GET | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | ваш ключ API |
action | Строка | Да | getbalance — получить ваш баланс get — получить ответы на множество капч с помощью одного запроса. Требует указания параметра ids. get2 — получить стоимость решения отправленной капчи и ответ на нее. Требует указания ID капчи в параметре id. |
ids | Строка | - | ID ваших капч, разделенные запятыми. |
id | Строка | - | ID вашей капчи. |
json | Число По умолчанию: 0 |
Нет | 0 — сервер отправит ответ в виде простого текста 1 — сервер отправит ответ в формате JSON |
Пример запроса (простой текст):
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get2&id=2122988149
Пример ответа (простой текст):
OK|ABCDE|0.00085
Пример запроса (JSON):
http://2captcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get2&id=2122988149&json=1
Пример ответа (JSON):
{
"status":1,
"request":"ABCDE",
"price":"0.00085"
}
Примеры кода
Примеры кода, а также библиотеки и модули для интеграции с нашим API вы можете найти в репозитории на GitHub:
- PHP [GitHub] [Packageist]
- Java [GitHub] [Maven]
- C# [GitHub] [Nuget]
- Python [GitHub] [PyPi]
- JavaScript [GitHub] [NPM]
- GO [GitHub]
- Ruby [GitHub] [RubyGems]
- C++ [GitHub]
Еще больше примеров кода можно всегда найти поиском rucaptcha OR 2captcha по GitHub. Если код сделан для 2captcha.com, просто замените URL на rucaptcha.com, API абсолютно идентичен.
Важно: в примерах кода могут использоваться URL серверов 2captcha.com, вам необходимо изменить их на rucaptcha.com. Вы не сможете получить ответ на вашу капчу, если отправили её на 2captcha.com, а ответ запрашиваете у rucaptcha.com.
Песочница (Sandbox)
Мы предоставляем режим песочницы (sandbox), в котором вы можете видеть и самостоятельно решать ваши капчи. Он может помочь вам в тестировании вашего ПО. Не забудьте его отключить, если вы хотите, чтобы капчи решались нашими работниками.
Вы можете включить этот режим в настройках аккаунта.
При включении режима Sandbox отправляемые на наш сервер капчи не будут распределены работникам.
Обычная капча будет доступна в интерфейсе работника
Капчи с токенами, такие как reCAPTCHA V2, Geetest, и т.п. доступны в приложении работника
Важно: для использования приложения работника вам необходимо переключиться в интейрфейс работника с помощью переключателя в правом верхнем углу страницы. Затем скопировать ключ работника и использовать его в приложении.
reCAPTCHA V3 не поддерживается в режиме SandBox и будет отдана на решение работникам.