API документация «SolveCaptcha»

API для распознавания капчи

Сервис представляет гибридное решение на основе человеческих ресурсов и ИИ для распознавания капч. Мы обеспечиваем низкие цены и высокую точность при обходе любых CAPTCHA. В сервисе задействован ручной труд, что позволяет распознавать любые капчи, читаемые человеком. Поддерживаются разные типы капч, включая Google reCAPTCHA, FunCaptcha, поддерживает обход Cloudflare и другие капчи.

  • Иллюстрация разработчика, загружающего капчу в сервис Заказчик отправляет капчу в сервис
  • Сервис генерирует и возвращает ID капчи Сервер сохраняет капчу и возвращает ID запроса
  • Сервис распределяет задачу капчи рабочему Сервис решает капчу и возвращает ответ на сервер
  • Разработчик запрашивает решение капчи, используя ID Вы отправляете запрос в сервис, используя ID, чтобы получить ответ
  • Легкая интеграция с API «SolveCaptcha» Легкая интеграция

    Подробная документация API и готовые библиотеки упрощают процесс интеграции. Мы предлагаем библиотеки для популярных языков программирования и регулярно добавляем поддержку новых.

  • «SolveCaptcha» это дешевый сервис Низкая стоимость

    Сервис сочетает ИИ и человеческий труд, что позволяет предлагать наиболее дешевое решение для обхода капч.

  • «SolveCaptcha» это стабильный сервис Uptime

    С 99.99% доступности API ежедневно обслуживает более 100 компаний, гарантируя стабильный сервис.

  • Расширение для браузера «SolveCaptcha» Расширение для браузера

    Решайте капчи автоматически в фоновом режиме без необходимости знаний программирования. Идеально подходит для пользователей без технической подготовки и для тех, кто использует Puppeteer, WebdriverIO, Selenium, Playwright для автоматизации.

«Капча картинка» лого Капча картинка Цена за 1000 $0.5 - $1 Скорость 4 сек.
«Arkose Labs Captcha (FunCaptcha)» лого Arkose Labs Captcha (FunCaptcha) Цена за 1000 $2.99 - $50 Скорость 25 сек.
«GeeTest CAPTCHA» лого GeeTest CAPTCHA Цена за 1000 $2.99 Скорость 13 сек.
«Cloudflare Turnstile» лого Cloudflare Turnstile Цена за 1000 $1.45 Скорость 11 сек.

SOLVECAPTCHA.com API

SolveCaptcha- это сервис для автоматического распознавания изображений. Сервис позволяет решать капчу, а также конвертировать в текст любые изображения, которые может распознать человек. API сервиса позволяет быстро и легко автоматизировать выполнение этих задач.

Введение

Мы предоставляем программный интерфейс (API), который позволяет интегрировать ваше программное обеспечение с нашим сервисом и автоматизировать процесс распознавания изображений и решения капчи.

Процесс распознавания изображений и решения капчи состоит из нескольких простых шагов:

  1. Вы отправляете изображение на наш сервер.
  2. Сервер возвращает вам уникальный идентификатор вашей задачи (Captcha ID).
  3. Вы запускаете цикл, который проверяет, выполнена ли задача.
  4. Сервер возвращает вам результат распознавания.

Тарифы

Наши тарифы зависят от вида капчи, которую вы разгадываете, и от метода, который вы используете. Тариф для капч картинок также зависит от текущей загруженности сервиса.

Вид капчи/метод Цена за 1000 Описание
Капча картинка
Текстовая капча
$0.5 - $1 Тариф гибкий и зависит от текущей загруженности сервиса. Вы можете ограничить максимальную ставку в настройках вашего аккаунта.
Большая капча $1 Большая капча — это изображение, сумма ширины и высоты которого превышает 400 пикселей. Метод тот же, что и для капчи картинки.
Grid метод
canvas метод
ClickCaptcha
$1.2 Тариф применяется для любой капчи, где нужно кликать на изображения.
RotateCaptcha $0.5 Тариф применяется для любой капчи, где нужно вращать изображение.
reCAPTCHA V2 $2.99 Тариф применяется для reCAPTCHA V2 от Google, решаемой с помощью токена.
reCAPTCHA V3 $2.99 Тариф применяется для reCAPTCHA V3 от Google, решаемой с помощью токена.
hCaptcha $2.99 Тариф применяется для hCaptcha, решаемой с помощью токена.
Cloudflare Turnstile $2.99 Тариф применяется для Cloudflare капчи, решаемой с помощью токена.
FunCaptcha $2.99 Тариф применяется для FunCaptcha, решённой с токеном.
GeeTest
GeeTest v4
$2.99 Тариф применяется для Geetest капчи, решённой с токеном.
KeyCaptcha $2.99 Тариф применяется для KeyCaptcha.

Решение капчи

Алгоритм решения капчи с помощью нашего сервиса достаточно прост и практически одинаков для всех видов капчи.

  1. Получите ваш персональный ключ API в настройках вашего аккаунта. Для каждого пользователя генерируется уникальный аутентификационный токен, мы называем "персональный ключ API". Это строка из 32 символов, которая выглядит примерно так:
    1abc234de56fab7c89012d34e56fa7b8
    Этот ключ используется для всех ваших запросов к серверу.
  2. Отправьте запрос HTTP POST на URL нашего API:
    https://api.solvecaptcha.com/in.php
    с персональным ключом API и параметрами, соответствующеми виду вашей капчи.
    Сервер вернёт идентификатор вашей капчи или код ошибки, если что-то пошло не так.
  3. Подождите 5 секунд (для reCAPTCHA — 20 секунд ).
  4. Отправьте запрос HTTP GET на URL нашего API:
    https://api.solvecaptcha.com/res.php
    с персональным ключом API и полученным ранее идентификатором капчи, чтобы получить результат.
    Если ваша капча уже решена, сервер вернёт ответ на неё в формате, соответстующем виду капчи.
    По умолчанию сервер возвращает ответ как простой текст, например: OK|ТЕКСТ. Ответ также можно получить в формате JSON {"status":1,"request":"ТЕКСТ"}, для этого нужно использовать параметр json.
    Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
    Если с вашим запросом что-то не так, сервер вернёт код ошибки.

Капчи картинки

Капча картинка — это изображение, на котором размещён искажённый текст, который может быть прочитан человеком. Чтобы решить капчу, нужно ввести текст с изображения.

Чтобы решить нормальную капчу с помощью нашего сервиса, вам необходимо загрузить изображение с помощью HTTP POST запроса к URL нашего API:
https://api.solvecaptcha.com/in.php
Сервер принимает изображения в формате multipart или base64.

Пример multipart-формы

<form method="post" action="https://api.solvecaptcha.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="https://api.solvecaptcha.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:
https://api.solvecaptcha.com/res.php
с персональным ключом API и полученным ранее идентификатором капчи, чтобы получить результат. Список параметров для запроса приведен в таблице ниже.

Если ваша капча уже решена, сервер вернёт ответ на неё в виде простого текста, например:
OK|TEXT
или в формате JSON
{"status":1,"request":"TEXT"}
если вы использовали параметр json.

Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.

Если что-то пошло не так, сервер вернёт ошибку, описание которой можно найти в главе Обработка ошибок.

Список параметров POST-запроса к https://api.solvecaptcha.com/in.php

POST параметр Тип Обязателен Описание
key Строка Да ваш ключ API
method Строка Да post — говорит о том, что вы отправляете изображение с помощью multipart-фомы
base64 — говорит о том, что вы отправляете изображение в формате 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 — капча содержит только латиницу
textinstructions Строка
Максимум 140 символов
Кодировка: UTF-8
Нет Текст будет показан работнику, чтобы помочь ему правильно решить капчу.
Например: введите только красные буквы.
imginstructions Изображение
Макс. 100x100px, 25 Кбайт
Нет Изображение будет показано работнику, чтобы помочь ему решить капчу правильно.
Сервер принимает изображения в формате 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-запроса к https://api.solvecaptcha.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://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

Текстовые капчи

Текстовая капча — это капча, которая не содержит изображений и представлена в виде простого текста. Обычно для решения нужно ответить на какой-либо вопрос.

Например: "Если завтра суббота, то какой сегодня день?".

Чтобы решить этот вид капчи с помощью нашего сервиса, вам нужно передать текст в параметре textcaptcha в POST-запросе к нашему API:
https://api.solvecaptcha.com/in.php

Пример формы для текстовой капчи


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>

<body>
<form method="post" action="https://api.solvecaptcha.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:
https://api.solvecaptcha.com/res.php с персональным ключом API и полученным ранее идентификатором капчи, чтобы получить результат. Список параметров для запроса приведен в таблице ниже.

Если ваша капча уже решена, сервер вернёт ответ на неё в виде простого текста, например:
OK|TEXT
или в формате JSON
{"status":1,"request":"TEXT"}
если вы использовали параметр json.

Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY В таком случае повторите ваш запрос через 5 секунд.

Если что-то пошло не так, сервер вернёт ошибку, описание которой можно найти в главе Обработка ошибок.

Список параметров POST-запроса к https://api.solvecaptcha.com/in.php

POST параметр Тип Обязателен Описание
key Строка Да your API key
language Число
По умолчанию: 0
Нет 0 — не определено
1 — капча содержит только кириллицу
2 — капча содержит только латиницу
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-запроса к https://api.solvecaptcha.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://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

reCAPTCHA V2

reCAPTCHA V2, также известная как "Я не робот" reCAPTCHA, очень популяна и выглядит вот так:

Решить reCAPTCHA V2 с помощью нашего нового метода очень легко, это не требует эмуляции браузера:

  1. Посмотрите исходный код элемента на странице, где вы встретили reCAPTCHA.

  2. Найдите ссылку, которая начинается с www.google.com/recaptcha/api2/anchor или найдите параметр data-sitekey.

  3. Скопируйте значение параметра k из ссылки или значение data-sitekey.

  4. Отправьте запрос HTTP GET или POST к нашему API:
    https://api.solvecaptcha.com/in.php
    с персональным ключом API и параметром method, соответствующим виду вашей капчи, в данном случае — userrecaptcha, а также укажите значение, которые вы скопировали ранее в параметре googlekey. Укажите полный URL страницы, на которой вы хотите решить reCAPTCHA в параметре pageurl.
    Отправка данных прокси на текущий момент не обязательна, но мы всё же рекомендуем это делать.
    Полный список параметров для запроса можно найти в таблице ниже.

    Пример URL запроса:

    https://api.solvecaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=userrecaptcha&googlekey=6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-&pageurl=http://mysite.com/page/with/recaptcha?appear=1&here=now
  5. Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например: OK|2122988149 или в формате JSON {"status":1,"request":"2122988149"} если вы использовали параметр json в запросе.

    Если что-то пошло не так, сервер вернёт ошибку. Описание ошибок приведено в главе Обработка ошибок.

  6. Подождите 15-20 секунд и отправьте HTTP GET запрос к нашему API: https://api.solvecaptcha.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 секунд.

    Если что-то пошло не так, сервер вернёт код ошибки.

  7. Найдите элемент с id g-recaptcha-response и сделайте его видимым, удалив параметр display:none.

    Внимание: иногда содержимое страницы генерируется динамически и вы можете не найти данный элемент.
    В таком случае вам нужно изучить скрипты, отвечающие за генерацию содержимого страницы. Опция "Inspect" в Google Chrome может помочь в этом.

  8. На странице отобразится текстовое поле. Всё что вам остается сделать — вставить полученный токен в это поле и отправить форму.

  9. Поздравляем, вы решили 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] и т.д.

В конце концов вам нужно запустить callback-функцию:

myCallbackFunction();

Или даже так:

___grecaptcha_cfg.clients[0].aa.l.callback();

Иногда функция требует какой-либо агрумент на входе. В большинстве случаев нужно передать токен. Например:

myCallbackFunction('TOKEN');

reCAPTCHA V2 Invisible

У 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:

  1. Измените значение элемента g-recaptcha-response на токен, полученный от нашего сервера:
  2. document.getElementById("g-recaptcha-response").innerHTML="TOKEN_FROM_SOLVECAPTCHA";
    
  3. Выполните действие, которое должно выполняться на сайте после того, как вы решили reCAPTCHA.

  4. Чаще всего на сайте нужно отправить форму. От вас потребуется идентифицировать эту форму по 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();
    
  5. Ура! Вы сделали это всего двумя строчками кода.

Метод 2: изменяем содержимое страницы:

  1. Вырежьте из тела документа div, содержащий саму рекапчу.
  2. <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&amp;v=r20170213115309&amp;k=6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs#zglq3yifgkmj" title="recaptcha challenge" style="width: 100%; height: 100%;" scrolling="no" name="zglq3yifgkmj" frameborder="0"></iframe>
    </div>
    </div>
    
  3. Вырежьте полностью блок:
  4. <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-лого"><iframe src="https://www.google.com/recaptcha/api2/anchor?k=6LfP0CITAAAAAHq9FOgCo7v_fb0-pmmH9VW3ziFs&amp;co=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbTo0NDM.&amp;hl=en&amp;v=r20170213115309&amp;size=invisible&amp;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>
    
  5. На место вырезанного блока поставьте следующий код:
  6. <input type="submit">
    <textarea name="g-recaptcha-response">%g-recaptcha-response%</textarea>
    
    В котором %g-recaptcha-response% — токен, который вы получили от нашего сервера.
  7. У вас появится кнопка “Submit query”, при нажатии на неё вы отправите на сайт, где установлена капча, все данные формы и g-recaptcha-response.

Список параметров для GET/POST запросов к https://api.solvecaptcha.com/in.php

Параметр Тип Обязателен Описание
key Строка Да ваш ключ API
method Строка Да userrecaptcha — определяет, что вы решаете reCAPTCHA V2 с помощью нового метода
googlekey Строка Да Значение параметра k или data-sitekey, которое вы нашли в коде страницы
pageurl Строка Да Полный URL страницы, на которой вы решаете reCAPTCHA V2
invisible Число
По умолчанию: 0
Нет 1 — говорит нам, что на сайте невидимая reCAPTCHA. 0 — обычная reCAPTCHA.
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-запроса к https://api.solvecaptcha.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 запроса:

https://api.solvecaptcha.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 с использованием нашего сервиса:

  1. Прежде чем начинать работу с reCAPTCHA V3, убедитесь, что сайт использует именно эту версию. Это можно определить по следующим признакам:

    1. Незаметность для пользователя. reCAPTCHA V3 полностью скрыта от пользователя и не требует выполнения заданий, таких как выбор изображений или клики по элементам.

    2. В исходном коде сайта присутствует скрипт API reCAPTCHA с параметром render, указывающим публичный ключ сайта (sitekey).
      Пример: <script src="https://www.google.com/recaptcha/api.js?render=6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE">

    3. В конфигурационном объекте ___grecaptcha_cfg массив clients использует элемент с индексом 100000, доступ к которому осуществляется через ___grecaptcha_cfg.clients[100000].

  2. Для обхода reCAPTCHA V3 через наш API требуется определить значения двух обязательных параметров:

    pageurl - Укажите полный URL страницы, на которой требуется выполнить решение reCAPTCHA V3.

    sitekey - Его можно обнаружить в HTML-коде, в параметре render при загрузке файла api.js, в параметре k внутри URL iframe, который загружает reCAPTCHA, в JavaScript-коде через вызов функции grecaptcha.execute или в конфигурационном объекте ___grecaptcha_cfg.

  3. После получения всех необходимых параметров вы можете отправить запрос к нашему API.

  4. Отправьте запрос HTTP POST к нашему API:
    https://api.solvecaptcha.com/in.php
    с персональным ключом API и параметром method, соответствующим виду вашей капчи, в данном случае — userrecaptcha, а также укажите значение, которые вы скопировали ранее в параметре googlekey. Укажите полный URL страницы, на которой вы хотите решить reCAPTCHA в параметре pageurl.
    Полный список параметров для запроса можно найти в таблице ниже.

    Пример multipart-формы для отправки reCAPTCHA V3

    <form method="post" action="https://api.solvecaptcha.com/in.php" enctype="multipart/form-data">
    <input type="hidden" name="method" value="userrecaptcha">
    <input type="hidden" name="version" value="v3">
    <input type="text" name="key" value="YOUR_APIKEY">
    <input type="text" name="googlekey" value="6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE">
    <input type="text" name="pageurl" value="http://mysite.com/page/containing/recaptcha">
    <input type="text" name="action" value="verify">
    <input type="text" name="min_score" value="0.4">
    <input type="submit" value="Загрузить и получить ID">
    </form>

    Полный лист параметров для запроса можно найти в таблице ниже.

    Примеры кода для отправки reCAPTCHA V3 используя cURL, Python, JavaScript, Go, описаны ниже.

  5. Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например: OK|2122988149 или в формате JSON {"status":1,"request":"2122988149"} если вы использовали параметр json в запросе.

  6. Подождите 15-20 секунд и отправьте HTTP GET запрос к нашему API: https://api.solvecaptcha.com/res.php чтобы получить результат.
    Полный лист параметров для запроса можно найти в таблице ниже.

    Если ваша капча уже решена, то сервер вернёт ответ в виде простого текста или JSON. Ответ представляет собой токен. Пример ответа в формате JSON:

    
    {
      "status": 1,
      "request": "03AFcWeA5dCJ-2OQqwd0-2IHmBX3ItBl76Z4WGMT-3WxkoYqSKrpU48GZhe4jRk1un_TyFoZ6aYIlPn1J9w6HnPjgRdjWGQbczPsztmMl84sGXgZLWzxhSN0KKpo20G3X5LO66s9NuMOKzXnGB19ddYnDyapbna9vV-dtCNiimX9A6u-f0twWGglQVjsB9dVK6pGAYxnyE-3NMneIpXCV0i163lucSxT1aUDDpTh-0y4gWPFmcQmq58zgOJGOSQNgL2pABFrz7yKq-V0L3bjLDK7FFjiR3lAJ11Ec1t5KDFk6IXtkeWVwS8iSVT6ntb_YhRC9bei-Q5ZUXxt7HQJr9TYBAuc5g_hhsPEFsX7iby7xfnCq9XHY7mxhDE3IWCem-4Hve58_ja39NUGDobrhSxLLairPpTLaod_HispzbnWKy_G1Mb1n30uqVuWkQ3eBDLMjm0huPf0eXaPnGPpEo6rsNj2q4YcxdzxT5pURcPs8X6vpw3ke5R-oVLXK5nkhSeW2BL1euNwlLz0JCIDBeffzhHMZDx3Sydbf4wdtaWB05rp8YijuT1j9ivlV-Xbf7iLGc6rct89mZxbxTmH2QNJW3PeL2SQMunEs9ZXIkkm-3om5uy1ih53MEvYVR9fEiO5my5XL9LNjNtWOL6gjJqlpr4pryonotiW3ukcTHYn6yGTbBwBNcIqG4MT1eQWv4owxsr-Ufbvs_Av5h0snd8RK3lVzMYkXKdIm8oZRD_p4BL1uMMaFLaGorChVuyNelC_D1Wyh2I27GbD-NXhsfajZ1NyFfNXqJO1RGccfkiIl4hYpl2rD4G5b9sqWWmX_U4WVNBT5yHouiJJiFlBAnPukecSacVyfyKj1HeA3G8qTrYUOpElNQ9tOX1E9LDneJ6vvNdsb1w6jnMxSr1zevJS29CvwYOw0K--Y18XAJByMFLMs36jRCEdlntEOPumAyoDzjRpGj9riQ"
    }
    
    

    Если ваша капча ещё не решена, то сервер вернёт код CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.

    Пример URL запроса:

    
    https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&json=1&id=248734
    
    

  7. Используейте полученный токен на целевой странице.

    Лучший метод понять, как это сделать - посмотреть на то, какие запросы отправляются на сайт, когда вы работаете с ним как обычный посетитель. Большинство браузеров позволяют легко это сделать в консоли разработчика, нужная вкладка обычно называется "Network".

    Токен обычно отправляется в параметрах POST-запроса, это может быть g-recaptcha-response как у reCAPTCHA V2, g-recaptcha-response-100000 или какой-либо другой параметр. Поэтому нужно внимательно просмотреть параметры запроса и найти, как именно передается токен, а затем сформировать аналогичный запрос.

  8. После того, как вы использовали токен на сайте и стало понятно, сработал он или нет - вы можете сообщить нам об этом. Это позволяет нам копить и анализировать статистику по этому виду капч для последующей оптимизации алгоритмов ее решения.

    Подробнее про отправку отчетов описано в разделе отчет об ответах.

Список параметров POST-запроса к https://api.solvecaptcha.com/in.php

POST параметр Тип Обязателен Описание
key Строка Да ваш ключ API
method Строка Да userrecaptcha — определяет, что вы решаете reCAPTCHA
version Строка Да v3 — указывает на то, что это reCAPTCHA V3
googlekey Строка Да Значение параметра sitekey, которое вы нашли в коде сайта
pageurl Строка Да Полный URL страницы, на которой вы решаете reCAPTCHA
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-запроса к https://api.solvecaptcha.com/res.php

POST параметр Тип Обязателен Описание
key Строка Да ваш ключ API
action Строка Да get — получить ответ на капчу
id Число Да ID капчи, полученный от in.php.
header_acao Число
По умолчанию: 0
Нет 0 — выключен
1 — включен
Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ.
Используется для кроссдоменных AJAX-запросов из веб-приложений.
json Число
По умолчанию: 0
Нет 0 — сервер вернёт ответ в виде простого текста
1 — сервер вернёт ответ в формате JSON

Примеры кода для отправки reCAPTCHA V3:

cURL

curl --location 'https://api.solvecaptcha.com/in.php' \
--form 'key="YOUR_API_KEY"' \
--form 'method="userrecaptcha"' \
--form 'version="v3"' \
--form 'googlekey="6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu"' \
--form 'pageurl="http://mysite.com/page/containing/recaptcha"' \
--form 'domain="www.recaptcha.net"' \
--form 'action="test"' \
--form 'min_score="0.5"' \
--form 'soft_id="1234"' \
--form 'json="1"'
Python

import requests

url = "https://api.solvecaptcha.com/in.php"

payload = {'key': 'YOUR_API_KEY',
'method': 'userrecaptcha',
'version': 'v3',
'googlekey': '6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu',
'pageurl': 'http://mysite.com/page/containing/recaptcha',
'domain': 'www.recaptcha.net',
'action': 'test',
'min_score': '0.5',
'soft_id': '1234',
'json': '1'}
files=[

]
headers = {}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
JavaScript (Node.js)

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.solvecaptcha.com/in.php',
  'headers': {
  },
  formData: {
    'key': 'YOUR_API_KEY',
    'method': 'userrecaptcha',
    'version': 'v3',
    'googlekey': '6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu',
    'pageurl': 'https://mysite.com/page/containing/recaptcha-v3',
    'domain': 'www.recaptcha.net',
    'action': 'test',
    'min_score': '0.5',
    'json': '1'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
Go


package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://api.solvecaptcha.com/in.php"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("key", "YOUR_API_KEY")
  _ = writer.WriteField("method", "userrecaptcha")
  _ = writer.WriteField("version", "v3")
  _ = writer.WriteField("googlekey", "6LfB5_IbAAAAAMCtsjEHEHKqcB9iQocwwxTiihJu")
  _ = writer.WriteField("pageurl", "http://mysite.com/page/containing/recaptcha")
  _ = writer.WriteField("domain", "www.recaptcha.net")
  _ = writer.WriteField("action", "test")
  _ = writer.WriteField("min_score", "0.5")
  _ = writer.WriteField("soft_id", "1234")
  _ = writer.WriteField("json", "1")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

hCaptcha

hCaptcha - это относительно новый вид капчи, который очень похож на reCAPTCHA

hCaptcha

Принцип решения капчи довольно прост:

  1. Найдите в исходном коде страницы значение параметра data-sitekey.
  2. Отправьте запрос HTTP GET или POST к нашему API:
    https://api.solvecaptcha.com/in.php
    с персональным ключом API и параметром method, соответствующим виду вашей капчи, в данном случае — hcaptcha, а также укажите значение, которые вы скопировали ранее в параметре sitekey. Укажите полный URL страницы, на которой вы хотите решить hCaptcha в параметре pageurl.
    Полный список параметров для запроса можно найти в таблице ниже.

    Пример URL запроса:

    
    https://api.solvecaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=hcaptcha&sitekey=10000000-ffff-ffff-ffff-000000000001&pageurl=https://mysite.com/register&json=1
    
    
  3. Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например: OK|2122988149 или в формате JSON {"status":1,"request":"2122988149"}, если вы использовали параметр json в запросе.
    Если что-то пошло не так, сервер вернёт ошибку. Описание ошибок приведено в главе Обработка ошибок.
  4. Подождите 15-20 секунд и отправьте HTTP GET запрос к нашему API: https://api.solvecaptcha.com/res.php, чтобы получить результат.
    Полный список параметров для запроса можно найти в таблице ниже.

    Если ваша капча уже решена, то сервер вернёт ответ в виде простого текста или JSON. Ответ представляет собой токен, примерно такой:

    
    P0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXNza2V5IjoiNGQ3MTI5ZmUtOTQxZi00NGQ4LWI5MzYtMzAwZjUyMmM3Yzc2IiwiZXhwIjoxNTY4MTA3MjY4LCJzaGFyZF9pZCI6MzAyMzQ1NDg4fQ.yJuANPBc1uzCw9tW6CoLqiijBgh6zF00KdsnqaJtugg
    

    Если ваша капча ещё не решена, то сервер вернёт код CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.

    Если что-то пошло не так, сервер вернёт код ошибки.

  5. Поместите полученный токен в скрытые элементы h-captcha-response и g-recaptcha-response и отправьте форму.
Список параметров для GET/POST запросов к https://api.solvecaptcha.com/in.php
Параметр Тип Обязателен Описание
key Строка Да ваш ключ API
method Строка Да hcaptcha — указывает, что вы решаете hCaptcha
sitekey Строка Да Значение параметра data-sitekey, которое вы нашли в коде страницы
pageurl Строка Да Полный URL страницы, на которой вы решаете hCaptcha
invisible Число
По умолчанию: 0
Нет Используйте значение 1 для невидимой версии hcaptcha (в настоящее время встречается крайне редко)
domain Строка
По умолчанию: hcaptcha.com
Нет Домен, с которого загружается hCaptcha: hcaptcha.com или js.hcaptcha.com
data Строка Нет Дополнительные данные для решения капчи - используется в очень редких случаях и только в сочетании с invisible=1. Обычно это параметр rqdata.
Формат: "data": "rqDataValue"
userAgent Строка Нет Устарело. Используйте userAgent нашего работника, который приходит с токеном от API.
header_acao Число
По умолчанию: 0
Нет 0 — выключен
1 — включен. Если включен, добавляет заголовок Access-Control-Allow-Origin: * для AJAX.
pingback Строка Нет URL для автоматической отправки ответа (callback).
Подробнее о callback
json Число
По умолчанию: 0
Нет 0 — ответ в тексте
1 — ответ в формате JSON.
soft_id Число Нет ID разработчика ПО. Для интеграции с нашим сервисом.
proxy Строка Нет Формат: логин:пароль@123.123.123.123:3128
Подробнее о прокси
proxytype Строка Нет Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5.
Список параметров GET-запроса к https://api.solvecaptcha.com/res.php
GET параметр Тип Обязателен Описание
key Строка Да ваш ключ API
action Строка Да get — получить ответ на капчу
id Число Да ID капчи, полученный от in.php.
json Число
По умолчанию: 0
Нет 0 — сервер вернёт ответ в виде простого текста
1 — сервер вернёт ответ в формате JSON

Пример URL запроса:


https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

Примеры кода для отправки hCaptcha:

cURL

curl --location 'https://api.solvecaptcha.com/in.php' \
--form 'key="YOUR_API_KEY"' \
--form 'method="hcaptcha"' \
--form 'sitekey="10000000-ffff-ffff-ffff-000000000001"' \
--form 'pageurl="https://mysite.com/register"' \
--form 'json="1"
Python

import requests

url = "https://api.solvecaptcha.com/in.php"

payload = {'key': 'YOUR_API_KEY',
'method': 'hcaptcha',
'sitekey': '10000000-ffff-ffff-ffff-000000000001',
'pageurl': 'https://mysite.com/register',
'json': '1'}
files=[

]
headers = {}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
JavaScript (Node.js)

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.solvecaptcha.com/in.php',
  'headers': {
  },
  formData: {
    'key': 'YOUR_API_KEY',
    'method': 'hcaptcha',
    'sitekey': '10000000-ffff-ffff-ffff-000000000001',
    'pageurl': 'http://mysite.com/register',
    'json': '1'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
Go

package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://api.solvecaptcha.com/in.php"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("key", "YOUR_API_KEY")
  _ = writer.WriteField("method", "hcaptcha")
  _ = writer.WriteField("sitekey", "10000000-ffff-ffff-ffff-000000000001")
  _ = writer.WriteField("pageurl", "https://mysite.com/register")
  _ = writer.WriteField("json", "1")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

Cloudflare Turnstile

Cloudflare Turnstile — это капча, разработанная компанией Cloudflare.

Для решения капчи необходимо:

  1. Найдите значение параметра sitekey, необходимое для работы капчи. Оно может быть обнаружено:
    • в атрибуте data-sitekey элемента <div>, содержащего капчу;
    • в JavaScript коде, где оно указывается как свойство sitekey;
    • в URL, используемом для загрузки iframe капчи.
    Формат значения: 0x1AAAAAAAAkg0s2VIOD34y5.

    Кроме того, капча может содержать дополнительные параметры:

    • action — задается через атрибут data-action;
    • data — задается через атрибут data-cdata.
  2. Отправьте HTTP-запрос (GET или POST) на адрес API: https://api.solvecaptcha.com/in.php. Укажите значение параметра method как turnstile, а также добавьте параметры sitekey и pageurl с URL страницы, на которой используется капча.

    Детальное описание всех параметров доступно в разделе ниже.

    Пример запроса:

    https://api.solvecaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=turnstile&sitekey=0x1AAAAAAAAkg0s2VIOD34y5&pageurl=http://mysite.com/
  3. API вернет вам ID капчи: Текстом OK|2122088140 или в JSON {"status":1,"request":"2122088140"}. Если запрос был некорректным - вы получите код ошибки.
  4. Подождите 10-15 секунд и запрашивайте ответ HTTP GET у API: https://api.solvecaptcha.com/res.php.

    Полный список параметров в таблице ниже.

    Если капча решена, вы получите в ответе токен следующего формата:

    
    {
      "status": 1,
      "request": "0.4uMMZZdSfsVM8...610cd090",
      "useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
    }
    

    Если капча не решена, вы получите ответ CAPTCHA_NOT_READY. Повторите запрос через 5 секунд.

    Если возникла ошибка, API вернет соответствующий код ошибки. Подробнее см. в разделе Обработка ошибок.

  5. Для использования полученного токена при обходе капчи на сайте передавайте его следующим образом:

    • В элементе <input> с атрибутом name="cf-turnstile-response".
    • Если используется режим совместимости с reCAPTCHA, дополнительно укажите токен в элементе <input> с атрибутом name="g-recaptcha-response".
    • Либо через функцию обратного вызова, заданную в свойстве callback при вызове turnstile.render или через атрибут data-callback.
Капча Cloudflare Turnstile на страницах с проверкой Cloudflare Challenge.
Страница Turnstile Challege

Если требуется обойти капчу Turnstile на странице Cloudflare Challenge, необходимо ОБЯЗАТЕЛЬНО передать дополнительные параметры:

  • action
  • data
  • pagedata

Для случаев, когда Turnstile используется как самостоятельная капча, размещенная непосредственно на сайте, эти параметры не являются обязательными.

Как перехватить параметры вызова метода turnstile.render

Для перехвата параметров метода turnstile.render можно переопределить его поведение. Например, это можно реализовать с помощью инъекции JavaScript на страницу. Важно учитывать, что данный код должен быть выполнен до загрузки CAPTCHA, чтобы изменения вступили в силу.


    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 запроса к https://api.solvecaptcha.com/in.php
Параметр Тип Обязателен Описание
key Строка Да ваш ключ API
method Строка Да turnstile - указывает что вы решаете капчу turnstile
sitekey Строка Да Значение параметра sitekey найденное на странице
action Строка Нет* Значение дополнительного параметра action, найденного на странице
data Строка Нет* Значение дополнительного параметра data, найденного на странице
pagedata Строка Нет* Значение параметра chlPageData при вызове turnstile.render
pageurl Строка Да Полный URL страницы с капчей
header_acao Число
По умолчанию: 0
Нет 0 — выключен
1 — включен
Если включен, то in.php добавит заголовок Access-Control-Allow-Origin:* в ответ.
Используется для кроссдоменных AJAX-запросов из веб-приложений.
pingback Строка Нет URL для автоматической отправки ответа на капчу (callback).
Больше информации здесь.
json Число
По умолчанию: 0
Нет 0 — сервер вернёт ответ в виде простого текста
1 — сервер вернёт ответ в формате JSON
proxy Строка Нет Ваш прокси в формате: login:[email protected]:8888
Подробнее
proxytype Строка Нет Тип используемого вами прокси: HTTP, HTTPS, SOCKS4, SOCKS5

* - обязательные параметры для прохождения Turnstile на страницах с проверкой Cloudflare Challenge.

Список параметров GET запроса к https://api.solvecaptcha.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:

https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122088140

Примеры кода для отправки Cloudflare Turnstile:

cURL

curl --location 'https://api.solvecaptcha.com/in.php' \
--form 'key="YOUR_API_KEY"' \
--form 'method="turnstile"' \
--form 'sitekey="0x1AAAAAAAAkg0s2VIOD34y5"' \
--form 'pageurl="https://mysite.com/register"' \
--form 'json="1"'
Python

import requests

url = "https://api.solvecaptcha.com/in.php"

payload = {'key': 'YOUR_API_KEY',
'method': 'turnstile',
'sitekey': '0x1AAAAAAAAkg0s2VIOD34y5',
'pageurl': 'https://mysite.com/register',
'json': '1'}
files=[

]
headers = {}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
JavaScript (Node.js)

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.solvecaptcha.com/in.php',
  'headers': {
  },
  formData: {
    'key': 'YOUR_API_KEY',
    'method': 'turnstile',
    'sitekey': '0x4AAAAAAAPMtoL-SSuvUpPf',
    'pageurl': 'https://mysite.com/page/containing/cloudflare-turnstile',
    'json': '1'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
Go

package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://2captcha.com/in.php"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("key", "YOUR_API_KEY")
  _ = writer.WriteField("method", "turnstile")
  _ = writer.WriteField("sitekey", "0x1AAAAAAAAkg0s2VIOD34y5")
  _ = writer.WriteField("pageurl", "https://mysite.com/register")
  _ = writer.WriteField("json", "1")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

Geetest

Geetest - это такой вид капчи, где требуется передвинуть кусок пазла или выбрать несколько объектов в нужном порядке.

Чтобы решить Geetest-капчу через наш API необходимо:

  1. Найти следующие параметры на странице сайта с капчей (обычно их можно найти внутри функции initGeetest):
    • gt - публичный ключ сайта (статический)
    • challenge - динамический ключ задания
    • api_server - домен API (обязателен для некоторых сайтов)
Важно: для каждого запроса к нашему API необходимо получать новое значение challenge. Если капча уже была загружена на странице, то значение challenge является недействительным. Вам необходимо изучить запросы, которые выполняются при загрузке страницы и найти тот, в котором возвращается значение challenge. Затем, для получения нового challenge вам нужно каждый раз выполнять данный запрос и парсить его.
  1. Отправьте запрос HTTP GET или POST к нашему API: https://api.solvecaptcha.com/in.php, указав в значении параметра method значение geetest, а также передайте значения, найденные на предыдущем шаге в соответствующих параметрах и полный URL страницы с капчей в pageurl.
    Полный список параметров можно найти в таблице ниже.

    Пример запроса:

    https://api.solvecaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=geetest&gt=f1ab2cdefa3456789012345b6c78d90e&challenge=12345678abc90123d45678ef90123a456b&api_server=api-na.geetest.com&pageurl=https://www.site.com/page/

    Ниже вы можете найти примеры кода для отправки GeeTest капчи.

  1. Если запрос был составлен верно, то сервер вернёт ID капчи в виде простого текста, например: OK|2122988149 или в виде JSON {"status":1,"request":"2122988149"}, если вы использовали параметр json.
    В противном случае сервер вернёт код ошибки.
  1. Подождите 15-20 секунд и отправьте запрос HTTP GET к нашему API: https://api.solvecaptcha.com/res.php, чтобы получить результат.
    Полный список параметров доступен в таблице ниже.

Если капча уже решена, сервер вернёт ответ в формате JSON. Ответ содержит три параметра: challenge, validate и seccode:

{
  "challenge":"1a2b3456cd67890e12345fab678901c2de",
  "validate":"09fe8d7c6ba54f32e1dcb0a9fedc8765",
  "seccode":"12fe3d4c56789ba01f2e345d6789c012|jordan"
  }

Если капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.

Если что-то пошло не так, сервер вернёт код ошибки.

  1. Используйте значения, полученные в ответе от нашего API в запросе к сайту, передавая их в соответствующих полях запроса:
    • geetest_challenge
    • geetest_validate
    • geetest_seccode
Список параметров GET/POST запроса к https://api.solvecaptcha.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
proxy Строка Нет Формат: логин:пароль@123.123.123.123:3128
Больше информации о прокси здесь.
proxytype Строка Нет Тип вашего прокси-сервера: HTTP, HTTPS, SOCKS4, SOCKS5.
Список параметров GET-запроса к https://api.solvecaptcha.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 запроса:
https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

Примеры кода для отправки GeeTest:

cURL

curl --location 'https://api.solvecaptcha.com/in.php' \
--form 'key="YOUR_API_KEY"' \
--form 'method="geetest"' \
--form 'gt="f1ab2cdefa3456789012345b6c78d90e"' \
--form 'challenge="12345678abc90123d45678ef90123a456b"' \
--form 'api_server="api-na.geetest.com"' \
--form 'pageurl="https://www.site.com/page/"'
Python

import requests

url = "https://api.solvecaptcha.com/in.php"

payload = {'key': 'YOUR_API_KEY',
'method': 'geetest',
'gt': 'f1ab2cdefa3456789012345b6c78d90e',
'challenge': '12345678abc90123d45678ef90123a456b',
'api_server': 'api-na.geetest.com',
'pageurl': 'https://www.site.com/page/'}
files=[

]
headers = {}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
JavaScript (Node.js)

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.solvecaptcha.com/in.php',
  'headers': {
  },
  formData: {
    'key': 'YOUR_API_KEY',
    'method': 'geetest',
    'gt': 'f1ab2cdefa3456789012345b6c78d90e',
    'challenge': '12345678abc90123d45678ef90123a456b',
    'api_server': 'api-na.geetest.com',
    'pageurl': 'https://www.site.com/page/'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
Go

package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://api.solvecaptcha.com/in.php"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("key", "YOUR_API_KEY")
  _ = writer.WriteField("method", "geetest")
  _ = writer.WriteField("gt", "f1ab2cdefa3456789012345b6c78d90e")
  _ = writer.WriteField("challenge", "12345678abc90123d45678ef90123a456b")
  _ = writer.WriteField("api_server", "api-na.geetest.com")
  _ = writer.WriteField("pageurl", "https://www.site.com/page/")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

Geetest v4

Geetest v4 - это новая версия капчи от Geetest, где вам всё еще нужно двигать кусочек пазла, чтобы пройти ее.

Чтобы решить Geetest-капчу через наш API необходимо:

  1. Найти на странице сайта с капчей значение captcha_id - обычно его можно найти внутри тега script, который подключает javascript код Geetest v4 на странице.
  2. Отправьте запрос HTTP GET или POST к нашему API: https://api.solvecaptcha.com/in.php указав method=geetest_v4, значение captcha_id, найденное на странице, а также полный URL страницы с капчей в pageurl.
    Пример запроса:
    https://api.solvecaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=geetest_v4&captcha_id=f1ab2cdefa3456789012345b6c78d90e&pageurl=https://www.site.com/page/

    Ниже вы можете найти примеры кода для отправки GeeTest V4 капчи.

  3. Если запрос был составлен верно, то сервер вернёт ID капчи в виде простого текста, например: OK|2122988149 или в виде JSON {"status":1,"request":"2122988149"}, если вы использовали параметр json. В противном случае сервер вернёт код ошибки.
  4. Подождите 15-20 секунд и отправьте запрос HTTP GET к нашему API: https://api.solvecaptcha.com/res.php, чтобы получить результат.
    Если капча уже решена, сервер вернёт ответ в формате JSON. Пример ответа:
    {
        "status": 1,
        "request": {
            "captcha_id": "e391447fd421dc634644d5a2ee9c73",
            "lot_number": "4ba5ab728db764e2a46qe083d4d663gd3f",
            "pass_token": "f29234g3e8f3ad20f12cd0d5ece03g3g6hd9424e9e6704e7h814c8de8j84r4",
            "gen_time": "1838256089",
            "captcha_output": "Sf3_je5GyO2g4V8m431BLIM4F5uK2webJdbXSntSbtTKUry4r6hGVQ3I2YzRBgBkGi4oJ9Xwu9w6WWKeY4mi1Oxc8qZxMlwJVvsVF2YZG2taOYHNA5UyOK6fk32sGRdq8gmypf-Fl9XOsvhtnGUi9xxN4CW7lj2VLMSdF_659SuVtfHtzdc3CcGSn1Z1k0SrtOsXZ_i7t9EEDciH-rcgTZz6hI-EFEbajage3Nbv0-33sODjdbk6MwmExDEGcm8hhQNYKQbbgF8rCNlxjk9wwkx63Up3s3-R8uDmcLHTM3BwW2SbccZzGjZW8rrPoC41qMNxPExMxipPldr0AQ7Z0-LTk61HmXZTmhYN9tbYwksfbgvck9l9bnhg5ddO7j8lKwYZbO1Hzjs85g6g7T053fyZe05WmClzNZ9F8g_sgMT2XTrhJXu_h67d4"
        }
    }
    Если капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.
    Если что-то пошло не так, сервер вернёт код ошибки.
  5. Используйте значения, полученные в ответе от нашего API в запросе к сайту, передавая их аналогично тому, как они передаются, если вы решаете капчу вручную.

Список параметров GET/POST запроса к https://api.solvecaptcha.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-запросов из веб-приложений.
json Число
По умолчанию: 0
Нет 0 — сервер вернёт ответ в виде простого текста
1 — сервер вернёт ответ в формате JSON
pingback Строка Нет URL для автоматической отправки ответа на капчу (callback).
URL должен быть зарегистрирован на сервере. Больше информации здесь.
proxy Строка Нет Формат: логин:пароль@123.123.123.123:3128
Подробнее о прокси
proxytype Строка Нет Тип прокси: HTTP, HTTPS, SOCKS4, SOCKS5.

Список параметров GET-запроса к https://api.solvecaptcha.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 запроса:

https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

Примеры кода для отправки GeeTest V4:

cURL


curl --location 'https://api.solvecaptcha.com/in.php' \
--form 'key="YOUR_API_KEY"' \
--form 'method="geetest_v4"' \
--form 'captcha_id="e392e1d7fd421dc63325744d5a2b9c73"' \
--form 'pageurl="https://www.site.com/page/"' \
--form 'json="1"'
Python


import requests

url = "https://api.solvecaptcha.com/in.php"

payload = {'key': 'YOUR_API_KEY',
'method': 'geetest_v4',
'captcha_id': 'e392e1d7fd421dc63325744d5a2b9c73',
'pageurl': 'https://www.site.com/page/',
'json': '1'}
files=[

]
headers = {}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
JavaScript (Node.js)

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.solvecaptcha.com/in.php',
  'headers': {
  },
  formData: {
    'key': 'YOUR_API_KEY',
    'method': 'geetest_v4',
    'captcha_id': 'e392e1d7fd421dc63325744d5a2b9c73',
    'pageurl': 'https://www.site.com/page/',
    'json': '1'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
Go

package main

import (
  "fmt"
  "bytes"
  "mime/multipart"
  "net/http"
  "io"
)

func main() {

  url := "https://api.solvecaptcha.com/in.php"
  method := "POST"

  payload := &bytes.Buffer{}
  writer := multipart.NewWriter(payload)
  _ = writer.WriteField("key", "YOUR_API_KEY")
  _ = writer.WriteField("method", "geetest_v4")
  _ = writer.WriteField("captcha_id", "e392e1d7fd421dc63325744d5a2b9c73")
  _ = writer.WriteField("pageurl", "https://www.site.com/page/")
  _ = writer.WriteField("json", "1")
  err := writer.Close()
  if err != nil {
    fmt.Println(err)
    return
  }


  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Set("Content-Type", writer.FormDataContentType())
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

FunCaptcha

Теперь мы предоставляем метод для решения FunCaptcha с помощью токена.

Этот метод очень прост:

  1. Вам нужно найти публичный ключ FunCaptcha. Есть два способа это сделать: вы можете найти div с FunCaptcha и посмотреть на значение параметра data-pkey или же найти элемент с именем (name) fc-token, а из его значения вырезать ключ, который указан после pk.

  2. Отправьте HTTP GET или POST запрос к нашему API: https://api.solvecaptcha.com/in.php, указав значение параметра method равным funcaptcha, найденный ранее публичный ключ укажите в параметре publickey, а полный URL страницы — в параметре pageurl. Отправка данных прокси на текущий момент не обязательна, но мы все же рекомендуем это делать.
    Полный список параметров для запроса можно найти в таблице ниже.

    Пример URL запроса:

    https://api.solvecaptcha.com/in.php?key=1abc234de56fab7c89012d34e56fa7b8&method=funcaptcha&publickey=12AB34CD-56F7-AB8C-9D01-2EF3456789A0&pageurl=http://mysite.com/page/with/funcaptcha/
  3. Если вы отправили корректный запрос, сервер вернёт ID вашей капчи в виде простого текста, например: OK|2122988149 или в формате JSON {"status":1,"request":"2122988149"}, если вы использовали параметр json в запросе.

    Если что-то пошло не так, сервер вернёт ошибку. Описание ошибок приведено в главе Обработка ошибок.

  4. Подождите 15-20 секунд и отправьте HTTP GET запрос к нашему API: https://api.solvecaptcha.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 секунд.

    Если что-то пошло не так, сервер вернёт код ошибки.

  5. Найдите элемент с id fc-token и измените его значение (value) на полученый токен.

    Важно: если вы используете параметр nojs=1, то API вернёт лишь часть токена в таком виде: 3084f4a302b176cd7.96368058|r=ap-southeast-1 и вам нужно собрать весь токен целиком самостоятельно, используя оригинальное значение fc-token.

  6. Осталось лишь сделать то, что вы хотели сделать на сайте: отправить форму, кликнуть на кнопку или что-то ещё.

Список параметров для GET/POST запросов к https://api.solvecaptcha.com/in.php

Параметр Тип Обязателен Описание
key Строка Да ваш ключ API
method Строка Да funcaptcha — указывает, что вы решаете FunCaptcha с помощью токена
publickey Строка Да Значение параметра pk или data-pkey которое вы нашли в коде страницы
pageurl Строка Да Полный URL страницы, на которой вы решаете FunCaptcha
nojs Число
По умолчанию: 0
Нет Говорит нам решать FunCaptcha с выключенным javascript. Может быть использован в случае, если нормальный метод по какой-то причине не срабатывает.
Важно: имейте в виду, что в этом случае мы вернём только часть токена. Выше описано, что делать в этом случае.
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-запроса к https://api.solvecaptcha.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 запроса:

https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

KeyCaptcha

KeyCaptcha — это такой вид капчи, для решения которой нужно собрать небольшой пазл.

Чтобы решить KeyCaptcha с помощью нашего сервиса, нужно:

  1. Найти следующие параметры KeyCaptcha в исходном коде страницы:

    s_s_c_user_id
    s_s_c_session_id
    s_s_c_web_server_sign
    s_s_c_web_server_sign2
  2. Отправить HTTP GET или POST запрос к нашему API: https://api.solvecaptcha.com/in.php указав method равным keycaptcha и передать в запросе соответствующие значения параметров, найденные на предыдущем шаге, а также указать в параметре pageurl полный URL страницы с KeyCaptcha.
    Полный список параметров приведен в таблице ниже.

    Пример запроса:

     https://api.solvecaptcha.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/
  3. Если запрос был составлен верно, то сервер вернёт ID капчи в виде простого текста, например: OK|2122988149 или в виде JSON {"status":1,"request":"2122988149"}, если вы использовали параметрjson.
    В противном случае сервер вернёт код ошибки.

  4. Подождите 15-20 секунд и отправьте запрос HTTP GET к нашему API: https://api.solvecaptcha.com/res.php чтобы получить результат.
    Полный список параметров доступен в таблице ниже.

    Если капча уже решена, сервер вернёт ответ в виде простого текста или JSON. Ответ выглядит примерно так:

    ebdb5a6bf76da6887db60ef2041ab946|9006dc725760858e4c0715b835472f22|http://back10.keycaptcha.com/swfs/ckc/5bded85426de3c57a7529a84bd0d4d08-|493e52c37c10c2bcdf4a00cbc9ccd1e8|1

    Если капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.

    Если что-то пошло не так, сервер вернёт код ошибки.

  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>

    Внимание: иногда содержимое страницы генерируется динамически и вы можете не найти нужные элементы или они могут немного отличаться.
    В таком случае вам нужно хорошенько разобраться в коде страницы и используемых на ней скриптов.

  6. Найдите элемент с id="capcode" и измените его значение на ответ, полученный от нашего сервера.

    <input name="capcode" id="capcode" value="1|2|3|4|5" type="hidden">
  7. Нажмите на кнопку, отправляющую форму.

  8. Ура, вы прошли KeyCaptcha!

Пример формы multipart для отправки KeyCaptcha

<form method="post" action="https://api.solvecaptcha.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 запроса к https://api.solvecaptcha.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% от стоимости каждого такого запроса.

Список параметров GET-запроса к https://api.solvecaptcha.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 запроса:

https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

Grid метод

Этот метод предназначен для распознавания капч, содержащих сетку на изображении, включая такие как reCAPTCHA, hCaptcha и определённые типы ArkoseLabs FunCaptcha.

Наш метод Grid поддерживает решение reCAPTCHA с различными вариантами сеток, включая 3x3, 2x4 и 4x4.

Вы также можете использовать метод ClickCaptcha для решения reCAPTCHA V2, если он больше соответствует вашим требованиям.

Мы также поддерживаем задания, требующие обведения объекта или нескольких объектов. Подробнее здесь.

Чтобы решить reCAPTCHA V2 вам нужно:

  1. Поставить галочку. Вы получите набор изображений и инструкцию о том, какие изображения нужно выбрать. На самом деле этот набор изображений — одно изобрание с наложенной сеткой.

  2. Не обязательно: определить сетку и указать её размеры в параметрах:
    recaptchacols — количество колонок,
    recaptcharows — количество строк.
    Если размер сетки не определён, мы проверим размер изображения, и в случае, если размер 300х300 пикселей, мы наложим сетку 3x3. Если изображение имеет другой размер, мы наложим на него сетку 4x4.

  3. Отправить запрос HTTP POST к нашему API:
    https://api.solvecaptcha.com/in.php
    установив значение параметра recaptcha равным 1.

    Сервер принимает изображения в формате multipart или base64. Вам неоходимо отправлять только набор изображений без сетки и синего блока.

    Также необходимо передать инструкцию, какие изображения нужно выбрать. Это можно сделать с помощью параметра textinstructions или imginstructions. Полный список параметров предоставлен в таблице ниже.

  4. Сервер вернёт ID вашей капчи или код ошибки, если что-то пошло не так.

  5. Подождите 5 секунд и отправьте запрос HTTP GET к нашему API:
    https://api.solvecaptcha.com/res.php
    чтобы получить результат.

    Если ваша капча решена, то сервер вернёт ответ с номерами клеток сетки, на которые нужно кликать, например: OK|click:3/8/9/.

    Нумерация идет от 1 слева направо и сверху вниз. Если в сетке более 9 клеток, то используются буквы a-g для клеток 10-16.

    Если капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. Повторите ваш запрос через 5 секунд.

    Если возникла проблема с обработкой вашей капчи, сервер вернёт код ошибки.

  6. Вы кликаете на клетки, номера которых получили в ответе.

Метод canvas

В случае, если задание 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="https://api.solvecaptcha.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="https://api.solvecaptcha.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-запроса к https://api.solvecaptcha.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 Изображение
Максимум 100x100 пикселей, 25 Кбайт
Да Рисунок с инструкцией, какие изображения выбирать.
Не обязателен если вы отправляете инструкцию в виде текста с помощью параметра textinstructions.
recaptcharows Число Нет Количество строк в сетке.
recaptchacols Число Нет Количество колонок в сетке.
can_no_answer Число
По умолчанию: 0
Нет 0 — не определено
1 — возможно, что изображение не содержит картинок, которые удовлетворяют инструкции.
Устанавливайте значение 1 только если на изображении может не быть картинок с правильным ответом.
Мы покажем работнику кнопку "Нет подходящих картинок", а вы получите в ответе No_matching_images.
language Число
По умолчанию: 0
Нет 0 — не определено
1 — капча содержит только кириллицу
2 — капча содержит только латиницу
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 100 Кбайт.
Максимальный размер изображения для imginstructions 25 Кбайт.

Список параметров для GET-запроса к https://api.solvecaptcha.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://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

ClickCaptcha

Этот метод позволяет решать любую капчу, которая требует кликать по изображениям, например Ghost Captcha в SnapChat, reCAPTCHA V2, ASIRRA и т.п.

Чтобы решить ClickCaptcha нужно:

  1. Получить изображение и инструкцию, по каким картинкам кликать.

  2. Отправить запрос HTTP POST к нашему API: https://api.solvecaptcha.com/in.php указав 1 в качестве значениея параметра coordinatescaptcha.
    Сервер принимает изображения в формате multipart или base64.

    Вы можете передать дополнительные инструкции в виде текста с помощью параметра textinstructions, но это необязательно, если инструкция уже содержится на изображении.

    Полный список параметров приведён в таблице ниже.

  3. Сервер вернёт ID капчи или код ошибки, если что-то пошло не так.

  4. Подождите 5 секунд и отправьте HTTP GET запрос к нашему API: https://api.solvecaptcha.com/res.php чтобы получить результат.

    Если ваша капча уже решена, сервер вернёт координаты точек, по которым нужно кликнуть, например: OK|coordinate:x=39,y=59;x=252,y=72. Точка с координатами x=0,y=0 — верхний левый угол изображения.

    Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.

    Если что-то пошло не так, сервер вернёт код ошибки.

  5. Чтобы пройти задание, вам нужно поочередно кликать по полученным координатам.

Пример multipart-формы для ClickCaptcha

<form method="post" action="https://api.solvecaptcha.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="https://api.solvecaptcha.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-запроса к https://api.solvecaptcha.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
No Минимальное количество кликов, которое нужно сделать
max_clicks Число No Максимальное количество кликов, которое можно сделать
language Число
По умолчанию: 0
Нет 0 — не определено
1 — капча содержит только кириллицу
2 — капча содержит только латиницу
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-запроса к https://api.solvecaptcha.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://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

RotateCaptcha

RotateCaptcha — это вид капчи, для решения которой нужно поворачивать изображение. Наиболее популярная реализация — FunCaptcha.

Для решения RotateCaptcha требуется:

  1. Получить изображение или несколько изображений, которые требуется повернуть.

  2. Не обязательно: определить угол поворота в градусах для одного шага и передать его в параметре angle.
    Если не указан — мы используем значение по умолчанию для FunCaptcha: 40 градусов.

    Полный список параметров приведен в таблице ниже.

  3. Отправить изображения на наш сервер с помощью запроса HTTP POST к нашему API: https://api.solvecaptcha.com/in.php указав значение rotatecaptcha для параметра method. Сервер принимает изображения только в формате multipart.

    Сервер вернёт ID вашей капчи или код ошибки.

  4. Подождите 5 секунд и отправьте запрос HTTP GET к нашему API: https://api.solvecaptcha.com/res.php чтобы получить результат.

    Если ваша капча решена, сервер вернёт ответ, содержащий углы поворота для каждого изображения, например: OK|40|200|-120.
    Положительные значение означают что изображение нужно повернуть по часовой стрелке, отрицательные — против часовой стрелки.

    Если ваша капча ещё не решена, сервер вернёт CAPCHA_NOT_READY. В таком случае повторите ваш запрос через 5 секунд.

    Если что-то пошло не так, сервер вернёт ошибку, описание которой можно найти в главе Обработка ошибок.

  5. Для решения вашей RotateCaptcha поверните изображения на соответствующий угол.

Пример формы для отправки RotateCaptcha

<form method="post" action="https://api.solvecaptcha.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>

Параметр YOUR_APIKEY нужно заменить на ваш ключ API.

Список параметров POST-запроса к https://api.solvecaptcha.com/in.php

Параметр Тип Обязателен Описание
key Строка Да ваш ключ API
method Строка Да Метод решения капчи.
rotatecaptcha — указывает на то, что вы отправляете RotateCaptcha
angle Число
По умолчанию: 40
Нет Угол поворота за один шаг в градусах.
Если не указано, используется значение по умолчанию для FunCaptcha: 40 градусов.
file Изображение Да* Изображение, которое нужно повернуть в формате multipart. * - обязателен, если вы отправляете картинку как файл
body String Yes* Изображение, которое нужно повернуть в формате base64.
* - обязателен, если вы отправляете картинку как 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-запроса к https://api.solvecaptcha.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://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get&id=2122988149

Обработка ошибок

Очень важно правильно обрабатывать ошибки в вашем коде, чтобы избежать блокировки вашего аккаунта и остановки предоставления сервиса.

Обычно, если при обработке вашего запроса возникла ошибка или запрос сформирован некорректно, сервер вернёт код ошибки.
Ниже вы найдете таблицы со списком возможных кодов ошибки:

Ошибки, как и ответы на капчи, возвращаются в виде простого текста, либо в формате JSON, если вы используете параметр json=1.

В очень редких случаях сервер может вернуть HTML-страницу с ошибкой 500 или 502 — пожалуйста, имейте это в виду и обрабатывайте эту ситуацию корректно.
Если вы получили что-либо, не похожее на ответ ли код ошибки, подождите 5 секунд и отправьте запрос повторно.

Ошибки in.php

Код ошибки Описание Действие
ERROR_WRONG_USER_KEY Вы указали значение параметра key в неверном формате, ключ должен содержать 32 символа. Прекратите отправку запросов и проверьте ваш ключ API.
ERROR_KEY_DOES_NOT_EXIST Ключ, который вы указали, не существует. Прекратите отправку запросов и проверьте ваш ключ API.
ERROR_ZERO_BALANCE На вашем счету недостаточно средств. Прекратите отправку запросов. Пополните баланс вашего счета, чтобы продолжить работу с сервисом.
ERROR_PAGEURL Параметр pagurl не задан в запросе. Остановите отправку запросов и измените ваш код, чтобы передавать правильное значение параметра pagurl.
Подробнее.
ERROR_NO_SLOT_AVAILABLE Вы можете получить данную ошибку в двух случаях:
1. Очередь ваших капч, которые ещё не распределены на работников, слишком длинная. Длина очереди зависит от общего числа капч, которые ждут распределения, и может иметь значения от 50 до 100 капч.
2. Максимальная ставка, которую вы указали в настройках вашего аккаунта ниже текущей ставки на сервере.
Вы можете повысить вашу максимальную ставку.
Если вы получили данную ошибку, не отправляйте ваш запрос повторно сразу же после её получения. Сделайте паузу в 2-3 секунды и попробуйте повторить ваш запрос.
ERROR_ZERO_CAPTCHA_FILESIZE Размер вашего изображения менее 100 байт. Проверьте файл изображения.
ERROR_TOO_BIG_CAPTCHA_FILESIZE Размер вашего изображения более 100 Кбайт. Проверьте файл изображения.
ERROR_WRONG_FILE_EXTENSION Файл имеет неподдерживаемое расширение. Допустимые расширения: jpg, jpeg, gif, png. Проверьте файл изображения.
ERROR_IMAGE_TYPE_NOT_SUPPORTED Сервер не может опознать тип вашего файла. Проверьте файл изображения.
ERROR_IP_NOT_ALLOWED Запрос отправлен с IP-адреса, который не добавлен в список разрешённых вами IP-адресов. Проверьте список разрешённых IP-адресов.
IP_BANNED Ваш IP-адрес заблокирован за чрезмерное количество попыток авторизации с неверным ключем авторизации. Для разблокировки обратитесь в службу технической поддержки.
ERROR_CAPTCHAIMAGE_BLOCKED Вы отправили изображение, которые помечено в нашей базе данных как нераспознаваемое.
Обычно это происходит, если сайт, на котором вы решаете капчу, прекратил отдавать вам капчу и вместо этого выдает изображение с информацией о блокировке.
Попробуйте обойти ограничения этого сайта.
MAX_USER_TURN Вы делаете больше 60 обращений к in.php в течение 3 секунд. Увеличьте тайм-аут между запросами к in.php до 100 мс.
ERROR: NNNN Где NNNN — номер ошибки.
Вы превысили лимит запросов и ваш аккаунт временно заблокирован.
Вам необходимо установить правильные тайм-ауты. Больше информации в главе Лимиты запросов.

Ошибки 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% распознавания. Ошибка означает, что мы достигли максимального числа попыток, но требуемое количество совпадений достигнуто не было. Вы можете попробовать отправить вашу капчу ещё раз.
REPORT_NOT_RECORDED Ошибка возвращается при отправке жалобы на неверный ответ если вы уже пожаловались на большое количество верно решённых капч. Убедитесь, что вы отправляете жалобы только в случае неправильного решения.
ERROR: NNNN Где NNNN — номер ошибки.
Вы превысили лимит запросов и ваш аккаунт временно заблокирован.
Вам необходимо установить правильные тайм-ауты. Больше информации в главе Лимиты запросов.

Лимиты запросов

Пожалуйста, помните о том, что каждый ваш запрос к нашему 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, и мы отправим вам ответ, как только решим вашу капчу.

Работа с прокси

Вы можете использовать прокси для решения reCAPTCHA V2 с того же IP-адреса, с которого вы загружаете страницу.
В настоящее время использовать прокси не обязательно, но возможно, что алгоритм reCAPTCHA изменится и это станет обязательным.
Даже сейчас некоторые сайты проверяют IP-адрес, кторый используется для решения reCAPTCHA V2. Поэтому мы рекомендуем вам подготовиться к возможным изменениям заранее.

Если вы отправляете нам данные прокси-сервера, мы проверяем его доступность, пробуя открыть сайт через ваш прокси. Если открыть сайт не получается, мы не будем использовать ваш прокси-сервер.
Если ваш прокси проходит проверку, он будет использован для загрузки 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:[email protected]:3128
proxytype Строка Нет Тип вашего прокси: HTTP, HTTPS, SOCKS4, SOCKS5.
Пример: proxytype=SOCKS4

Автоматический возврат ответа (pingback)

Мы предоставляем метод pingback (callback), который позволяет автоматически получить ответ на вашу капчу, когда она решена.
Это дает вам возможность получать ответы, не делая запросов к https://api.solvecaptcha.com/res.php, а также избежать блокировки вашего аккаунта из-за превышения лимита запросов.

Для получения ответов в автоматическом режиме вам необходимо:

  1. Зарегистрировать ваш URL, по которому будут отправляться ответы.
  2. Передать ваш зарегистрированный URL в параметре pingback вашего запроса к https://api.solvecaptcha.com/in.php.
  3. Обработать запрос HTTP POST, который приходит от нашего сервера на ваш URL. Запрос содержит ID вашей капчи и ответ.

Управление URL

Вы можете управлять вашими URL с помощью HTTP GET запросов к https://api.solvecaptcha.com/res.php
Параметры запросов описаны в таблице ниже.

Важно: URL может быть добавлен только с того же IP адреса, на который он указывает.

Список параметров GET запросов к https://api.solvecaptcha.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

Примеры запросов

Добавить новый URL:

https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=add_pingback&addr=http://mysite.com/test.php

Получить список зарегистрированных URL:

https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=get_pingback&json=1

Удалить всех зарегистрированные URL:

https://api.solvecaptcha.com/res.php?key=1abc234de56fab7c89012d34e56fa7b8&action=del_pingback&addr=all

Отчет об ответах

Отправка отчетов об ответах является необязательной операцией, однако она способствует повышению точности работы сервиса и улучшению качества решений. Если вы обнаружили, что ответ на капчу был неверным, вы можете отправить жалобу на неверный ответ. Наши модераторы проверят вашу капчу и ответ работника и примут решение о том, был ли ответ верным или нет. Ваша жалоба поможет нам блокировать работников, которые часто допускают ошибки.

Рекомендуется всегда отправлять отчеты как о неправильных, так и о правильных ответах для повышения точности работы сервиса.

reportbad

Используйте reportbad, если ответ на капчу был отклонен сайтом. Отправка запросов reportbad помогает системе обнаруживать исполнителей с высокой долей ошибок и блокировать их, что способствует повышению качества обслуживания.

reportgood

Используйте reportgood, если сайт успешно принял решение капчи. Это позволяет улучшить точность обработки запросов в будущем.

Примеры запросов:

ReportBAD:

https://api.solvecaptcha.com/res.php?action=reportbad&id=2122988149&key=1abc234de56fab7c89012d34e56fa7b8
                

ReportGOOD:

https://api.solvecaptcha.com/res.php?action=reportgood&id=2122988149&key=1abc234de56fab7c89012d34e56fa7b8
                

Важно: не пытайтесь оправлять reportbad на правильно решённые капчи. Если вы будете это делать, ваш аккаунт будет заблокирован.

Список параметров GET запроса к https://api.solvecaptcha.com/res.php

Параметр GET Тип Обязателен Описание
key Строка Да ваш ключ API
action Строка Да reportbad — сообщить о неверном ответе
reportgood — сообщить о верном ответе
id Строка Да ID капчи
json Число
По умолчанию: 0
Нет 0 — сервер отправит ответ в виде простого текста
1 — сервер отправит ответ в формате JSON

В ответ на ваш запрос сервер ответит OK_REPORT_RECORDED или вернёт код ошибки, если что-то не так.

Если вы получаете слишком много неверных ответов, вы можете указать дополнительные параметры вашей капчи, чтобы помочь нашим работникам решить её правильно.

Дополнительные методы

Вы можете получить дополнительную информацию от нашего API, например, баланс вашего счета.
Список дополнительных параметров приведён ниже.

Список параметров GET запросов для https://api.solvecaptcha.com/res.php

Параметр GET Тип Обязателен Описание
key Строка Да ваш ключ API
action Строка Да getbalance — получить ваш баланс
get — получить ответы на множество капч с помощью одного запроса. Требует указания параметра ids.
get2 — получить стоимость решения отправленной капчи и ответ на нее. Требует указания ID капчи в параметре id.
ids Строка - ID ваших капч, разделенные запятыми.
id Строка - ID вашей капчи.
json Число
По умолчанию: 0
Нет 0 — сервер отправит ответ в виде простого текста
1 — сервер отправит ответ в формате JSON

Песочница (Sandbox)

Мы предоставляем режим песочницы (sandbox), в котором вы можете видеть и самостоятельно решать ваши капчи. Он может помочь вам в тестировании вашего ПО. Не забудьте его отключить, если вы хотите, чтобы капчи решались нашими работниками.
Вы можете включить этот режим в настройках аккаунта.

Важно: мы списываем с вас оплату за капчи, отправленные в этом режиме.

При включении режима Sandbox отправляемые на наш сервер капчи не будут распределены работникам. Вы сможете увидеть их в интерфейсе работника.

Режим Sandbox не поддерживает reCAPTCHA V2. При включенном Sandbox вы не увидите reCAPTCHA в интерфейсе, она не будет решена кем-либо из работников, а в ответ вы получите ERROR_CAPTCHA_UNSOLVABLE.

Go up