Методы
В API есть три POST метода. createTask отправляет капчу на решение. getTaskResult возвращает готовый ответ. getBalance показывает баланс аккаунта. Каждый запрос использует JSON тело с clientKey.
POST /createTask#
Этот метод создает задачу на решение капчи и возвращает её taskId. Стоимость задачи резервируется на балансе и списывается только после успешного решения.
Запрос принимает необязательное поле languagePool верхнего уровня. Оно находится отдельно от объекта task и применяется ко всем типам капчи.
Запрос#
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "RecaptchaV2TaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "6Le-xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"languagePool": "en"
}
languagePool принимает следующие значения:
enдля пула исполнителей с английским языкомruдля пула исполнителей с русским языком
Ответ#
{
"errorId": 0,
"taskId": 100
}
Поддерживаемые типы задач#
RecaptchaV2TaskProxyless
RecaptchaV2Task
RecaptchaV3TaskProxyless
RecaptchaV2EnterpriseTaskProxyless
RecaptchaV2EnterpriseTask
TurnstileTaskProxyless
TurnstileTask
YandexSmartCaptchaTaskProxyless
YandexSmartCaptchaTask
GeeTestTaskProxyless
GeeTestTask
TencentTaskProxyless
TencentTask
ImageToTextTask
CoordinatesTask
Типы без суффикса Proxyless используют твой прокси и требуют указания:
proxyTypeproxyAddressproxyPort
Необязательные поля для авторизации прокси:
proxyLoginproxyPassword
Для большинства типов капчи с прокси proxyType принимает:
httpsocks4socks5
Yandex SmartCaptcha дополнительно поддерживает:
https
reCAPTCHA v2#
Типы:
RecaptchaV2TaskProxylessRecaptchaV2Task
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
websiteURL |
да | string | Полный URL страницы, где находится капча |
websiteKey |
да | string | Значение атрибута data-sitekey виджета reCAPTCHA |
isInvisible |
нет | bool | true для невидимой reCAPTCHA |
recaptchaDataSValue |
нет | string | Значение параметра data-s, используемого на некоторых страницах Google |
apiDomain |
нет | string | Домен для загрузки reCAPTCHA: google.com или recaptcha.net |
userAgent |
нет | string | User-Agent, используемый при решении |
cookies |
нет | string | Куки, связанные с сессией решения |
enterprisePayload |
нет | object | Дополнительные параметры для reCAPTCHA v2 Enterprise, если они поддерживаются задачей |
Для RecaptchaV2Task добавь:
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
proxyType |
да | string | http, socks4 или socks5 |
proxyAddress |
да | string | IP-адрес или имя хоста прокси |
proxyPort |
да | int | Порт прокси |
proxyLogin |
нет | string | Логин для авторизации на прокси |
proxyPassword |
нет | string | Пароль для авторизации на прокси |
Пример задачи#
{
"type": "RecaptchaV2TaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "6Le-xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"isInvisible": false
}
Решение#
Ключ решения:
gRecaptchaResponse
reCAPTCHA v2 Enterprise#
Типы:
RecaptchaV2EnterpriseTaskProxylessRecaptchaV2EnterpriseTask
Параметры такие же, как у reCAPTCHA v2.
Для задач Enterprise можно использовать enterprisePayload для передачи дополнительных параметров, специфичных для Enterprise.
Пример задачи#
{
"type": "RecaptchaV2EnterpriseTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "6Le-xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"enterprisePayload": {
"s": "data-s-value"
}
}
Для RecaptchaV2EnterpriseTask добавь параметры прокси:
{
"type": "RecaptchaV2EnterpriseTask",
"websiteURL": "https://example.com/login",
"websiteKey": "6Le-xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"proxyType": "http",
"proxyAddress": "1.2.3.4",
"proxyPort": 8080
}
Решение#
Ключ решения:
gRecaptchaResponse
reCAPTCHA v3#
Тип:
RecaptchaV3TaskProxyless
Для reCAPTCHA v3 прокси не требуется.
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
websiteURL |
да | string | Полный URL страницы с капчей |
websiteKey |
да | string | Ключ сайта виджета reCAPTCHA v3 |
minScore |
да | float | Требуемый балл: 0.3, 0.7 или 0.9 |
pageAction |
нет | string | Значение параметра action, используемого сайтом |
isEnterprise |
нет | bool | Установи true для reCAPTCHA v3 Enterprise |
apiDomain |
нет | string | google.com или recaptcha.net |
minScore должен быть одним из:
0.30.70.9
Пример задачи#
{
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "6Le-xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"minScore": 0.3,
"pageAction": "login",
"isEnterprise": false
}
Решение#
Ключ решения:
gRecaptchaResponse
Cloudflare Turnstile#
Типы:
TurnstileTaskProxylessTurnstileTask
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
websiteURL |
да | string | Полный URL страницы, где загружен Turnstile |
websiteKey |
да | string | Ключ сайта Turnstile |
action |
нет | string | Значение action из вызова turnstile.render |
data |
нет | string | Значение cData из вызова turnstile.render |
pagedata |
нет | string | Значение chlPageData из вызова turnstile.render |
userAgent |
нет | string | User-Agent, используемый при решении |
Параметры action, data и pagedata требуются для страниц Cloudflare Challenge, когда страница предоставляет эти значения.
Для TurnstileTask добавь:
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
proxyType |
да | string | http, socks4 или socks5 |
proxyAddress |
да | string | IP-адрес или имя хоста прокси |
proxyPort |
да | int | Порт прокси |
proxyLogin |
нет | string | Логин для авторизации на прокси |
proxyPassword |
нет | string | Пароль для авторизации на прокси |
Пример автономного Turnstile#
{
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "0x4AAAAAAAxxxxxxxxxxxxxxxx"
}
Пример Cloudflare Challenge#
{
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com/",
"websiteKey": "0x4AAAAAAAxxxxxxxxxxxxxxxx",
"action": "managed",
"data": "80001aa1affffc21",
"pagedata": "3gAFo2l...55NDFPRFE9",
"userAgent": "Mozilla/5.0 ..."
}
Решение#
Ключ решения:
token
Для страниц Cloudflare Challenge ответ также включает userAgent.
Yandex SmartCaptcha#
Типы:
YandexSmartCaptchaTaskProxylessYandexSmartCaptchaTask
Yandex SmartCaptcha поддерживает решение на основе токенов.
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
websiteURL |
да | string | Полный URL страницы, где загружена капча |
websiteKey |
да | string | Ключ сайта Yandex SmartCaptcha |
userAgent |
нет | string | User-Agent, используемый при решении |
cookies |
нет | string | Куки в формате имя1=значение1, имя2=значение2 |
Для YandexSmartCaptchaTask добавь:
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
proxyType |
да | string | http, https, socks4 или socks5 |
proxyAddress |
да | string | IP-адрес или имя хоста прокси |
proxyPort |
да | int | Порт прокси |
proxyLogin |
нет | string | Логин для авторизации на прокси |
proxyPassword |
нет | string | Пароль для авторизации на прокси |
Пример задачи#
{
"type": "YandexSmartCaptchaTaskProxyless",
"websiteURL": "https://example.com/login",
"websiteKey": "Y5Lh0ti..."
}
Решение#
Ключ решения:
token
Пример:
{
"errorId": 0,
"status": "ready",
"solution": {
"token": "dV9xNjYyNTU3NjkxO4k9OTQuNVMuMjkuMjM9..."
}
}
Задачи Yandex SmartCaptcha с изображениями#
Задачи Yandex SmartCaptcha с изображениями используют CoordinatesTask.
Здесь документирован только вариант с выбором объектов.
imgType: smart_captcha
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
type |
да | string | CoordinatesTask |
body |
да | string | Основное изображение капчи в Base64 |
imgType |
да | string | smart_captcha |
imgInstructions |
да | string | Изображение с инструкцией в Base64 |
comment |
нет | string | Текстовая инструкция для исполнителя |
Пример задачи#
{
"type": "CoordinatesTask",
"body": "BASE64_IMAGE",
"imgType": "smart_captcha",
"imgInstructions": "BASE64_INSTRUCTION_IMAGE",
"comment": "select objects in the order of the instruction"
}
Решение#
Ключ решения:
coordinates
Текст с картинки#
Тип:
ImageToTextTask
Эта задача распознает текст с изображения. Она не требует websiteURL, websiteKey или параметров прокси.
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
body |
да | string | Изображение в кодировке Base64 |
phrase |
нет | bool | Установи true, если ответ содержит несколько слов |
case |
нет | bool | Установи true для учета регистра в ответе |
numeric |
нет | int | Ограничение по типу символов |
math |
нет | bool | Установи true, если на изображении математическое выражение |
minLength |
нет | int | Минимальная длина ответа |
maxLength |
нет | int | Максимальная длина ответа |
comment |
нет | string | Дополнительная инструкция для исполнителя |
imgInstructions |
нет | string | Необязательное изображение с инструкцией в Base64 |
Значения numeric:
0= не указано1= только цифры2= только буквы3= любые символы, но хотя бы одна цифра4= любые символы, но хотя бы одна буква
Пример задачи#
{
"type": "ImageToTextTask",
"body": "iVBORw0KGgoAAAANSUhEUgAA...",
"numeric": 1,
"minLength": 4,
"maxLength": 6
}
Решение#
Ключ решения:
text
Пример:
{
"errorId": 0,
"status": "ready",
"solution": {
"text": "aB3fX9"
}
}
Координаты#
Тип:
CoordinatesTask
Задача возвращает координаты точек для клика по изображению.
Поддерживаемые форматы изображений:
JPEGPNGGIF
Максимальный размер файла:
600 kB
Максимальный размер изображения:
1000 px
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
body |
да | string | Изображение в кодировке Base64 |
comment |
нет | string | Текстовая инструкция для исполнителя |
imgInstructions |
нет | string | Необязательное изображение с инструкцией в Base64 |
minClicks |
нет | int | Минимальное количество кликов. По умолчанию 1 |
maxClicks |
нет | int | Максимальное количество кликов |
Пример задачи#
{
"type": "CoordinatesTask",
"body": "BASE64_IMAGE",
"comment": "click on the green apple",
"minClicks": 1,
"maxClicks": 3
}
Решение#
{
"errorId": 0,
"status": "ready",
"solution": {
"coordinates": [
{
"x": 358,
"y": 268
}
]
}
}
Ключ решения:
coordinates
Координаты измеряются относительно левого верхнего угла изображения капчи.
GeeTest v3#
Типы:
GeeTestTaskProxylessGeeTestTask
Те же типы задач используются для GeeTest v4. Версия выбирается с помощью version.
Для GeeTest v3 значение version по умолчанию равно 3.
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
websiteURL |
да | string | Полный URL страницы, где загружен GeeTest |
gt |
да | string | Значение gt от GeeTest |
challenge |
да | string | Текущее значение challenge от GeeTest |
geetestApiServerSubdomain |
нет | string | Пользовательский поддомен API-сервера GeeTest |
userAgent |
нет | string | User-Agent, используемый при решении |
risk_type |
нет | string | Динамическое значение risk_type из запроса загрузки капчи |
version |
нет | int | Версия GeeTest. По умолчанию 3 |
Для GeeTestTask добавь:
proxyTypeproxyAddressproxyPortproxyLoginproxyPassword
Пример задачи#
{
"type": "GeeTestTaskProxyless",
"websiteURL": "https://example.com/login",
"gt": "f2ae6cadcf7886856696c46d84d109d1",
"challenge": "12345678abc90123d45678e90123f45g6"
}
Решение#
Решение содержит:
challengevalidateseccode
Пример:
{
"errorId": 0,
"status": "ready",
"solution": {
"challenge": "12345678abc90123d45678e90123f45g6",
"validate": "0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p",
"seccode": "0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p|jordan"
}
}
GeeTest v4#
Типы:
GeeTestTaskProxylessGeeTestTask
Установи:
version: 4
Для GeeTest v4 параметры gt и challenge не используются.
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
websiteURL |
да | string | Полный URL страницы, где загружен GeeTest |
version |
да | int | Должен быть 4 |
initParameters |
да | object | Параметры инициализации |
initParameters.captcha_id |
да | string | Идентификатор капчи GeeTest v4 |
userAgent |
нет | string | User-Agent, используемый при решении |
risk_type |
нет | string | Динамическое значение risk_type, если оно предоставлено капчей |
Пример задачи#
{
"type": "GeeTestTaskProxyless",
"websiteURL": "https://example.com/login",
"version": 4,
"initParameters": {
"captcha_id": "e392e65f912c780f2c3ebac7702651de"
}
}
Решение#
{
"errorId": 0,
"status": "ready",
"solution": {
"captcha_id": "e392e65f912c780f2c3ebac7702651de",
"lot_number": "...",
"pass_token": "...",
"gen_time": "...",
"captcha_output": "..."
}
}
Ключи решения:
captcha_idlot_numberpass_tokengen_timecaptcha_output
Tencent#
Типы:
TencentTaskProxylessTencentTask
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
websiteURL |
да | string | Полный URL страницы, где загружена капча Tencent |
appId |
да | string | Идентификатор приложения капчи Tencent |
captchaScript |
нет | string | URL скрипта капчи. По умолчанию https://turing.captcha.qcloud.com/TCaptcha.js |
Для TencentTask добавь:
| Параметр | Обязательно | Тип | Описание |
|---|---|---|---|
proxyType |
да | string | http, socks4 или socks5 |
proxyAddress |
да | string | IP-адрес или имя хоста прокси |
proxyPort |
да | int | Порт прокси |
proxyLogin |
нет | string | Логин для авторизации на прокси |
proxyPassword |
нет | string | Пароль для авторизации на прокси |
Пример задачи#
{
"type": "TencentTaskProxyless",
"websiteURL": "https://example.com/login",
"appId": "190014885"
}
Задача с пользовательским скриптом капчи#
{
"type": "TencentTaskProxyless",
"websiteURL": "https://example.com/login",
"appId": "190014885",
"captchaScript": "https://turing.captcha.qcloud.com/TCaptcha.js"
}
Решение#
{
"errorId": 0,
"status": "ready",
"solution": {
"appid": "190014885",
"ret": 0,
"ticket": "tr0344...",
"randstr": "@KVN"
}
}
Ключи решения:
appidretticketrandstr
POST /getTaskResult#
Возвращает текущий статус задачи.
Пока задача решается:
processing
Когда решение готово:
ready
Запрос#
{
"clientKey": "YOUR_API_KEY",
"taskId": 100
}
Ответ в процессе обработки#
{
"errorId": 0,
"status": "processing"
}
reCAPTCHA v2 / v3#
{
"errorId": 0,
"status": "ready",
"solution": {
"gRecaptchaResponse": "03AGdBq..."
}
}
Turnstile#
{
"errorId": 0,
"status": "ready",
"solution": {
"token": "0.zxcv..."
}
}
Yandex SmartCaptcha#
{
"errorId": 0,
"status": "ready",
"solution": {
"token": "dV9xNjYyNTU3NjkxO4k9OTQuNVMuMjkuMjM9..."
}
}
Текст с картинки#
{
"errorId": 0,
"status": "ready",
"solution": {
"text": "aB3fX9"
}
}
Координаты#
{
"errorId": 0,
"status": "ready",
"solution": {
"coordinates": [
{
"x": 358,
"y": 268
}
]
}
}
GeeTest v3#
{
"errorId": 0,
"status": "ready",
"solution": {
"challenge": "12345678abc90123d45678e90123f45g6",
"validate": "0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p",
"seccode": "0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p|jordan"
}
}
GeeTest v4#
{
"errorId": 0,
"status": "ready",
"solution": {
"captcha_id": "e392e65f912c780f2c3ebac7702651de",
"lot_number": "...",
"pass_token": "...",
"gen_time": "...",
"captcha_output": "..."
}
}
Tencent#
{
"errorId": 0,
"status": "ready",
"solution": {
"appid": "190014885",
"ret": 0,
"ticket": "tr0344...",
"randstr": "@KVN"
}
}
Ключи решения зависят от типа капчи:
gRecaptchaResponsetokentextcoordinateschallengevalidateseccodecaptcha_idlot_numberpass_tokengen_timecaptcha_outputappidretticketrandstr
POST /getBalance#
Возвращает текущий доступный баланс аккаунта.
Запрос#
{
"clientKey": "YOUR_API_KEY"
}
Ответ#
{
"errorId": 0,
"balance": 12.34
}