NeuroCaptcha

Быстрый старт

Первая решённая reCAPTCHA через API NeuroCaptcha: получить ключ, создать задачу, забрать токен.

На этой странице

NeuroCaptcha — HTTP API, который возвращает токены reCAPTCHA. Он понимает JSON-протокол Anti-Captcha (createTask → getTaskResult) и протокол 2Captcha in.php / res.php, поэтому большинству готовых интеграций достаточно сменить хост.

Хост APIhttps://api.neurocaptcha.com
ФорматPOST с JSON-телом; любой ответ — HTTP 200 с errorId (0 — успех)
АутентификацияclientKey в теле запроса — см. Аутентификация
СпецификацияOpenAPI 3.1 · все методы

1. Получите ключ API#

Зарегистрируйтесь и откройте Кабинет → API-ключи. Сначала создайте test-ключ: его задачи бесплатны и решаются за пару секунд фиктивным токеном с префиксом TEST_ — этого хватает, чтобы собрать и проверить всю интеграцию. Когда всё работает, переходите на live-ключ.

2. Создайте задачу#

Передайте адрес страницы и ключ сайта reCAPTCHA. Ответ приходит сразу, в нём taskId. Цена резервируется на балансе и списывается, только если задача решена.

POST https://api.neurocaptcha.com/createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "RecaptchaV2TaskProxyless",
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
  }
}
Ответ
{
  "errorId": 0,
  "taskId": 7781
}

3. Заберите токен#

Вызывайте getTaskResult каждые 2–3 секунды. Пока задача в работе, приходит "status": "processing", затем "ready" с токеном в solution.gRecaptchaResponse.

POST https://api.neurocaptcha.com/getTaskResult
{
  "clientKey": "YOUR_API_KEY",
  "taskId": 7781
}
Ответ
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "gRecaptchaResponse": "03AFcWeA6Z3vq0VhGm1oS8r0bAxKk4…",
    "userAgent": ""
  },
  "cost": "0.000600",
  "ip": "198.51.100.7",
  "createTime": 1793370000,
  "endTime": 1793370007,
  "solveCount": 1
}

Вставьте токен в поле g-recaptcha-response формы (или передайте в колбэк страницы) и отправьте форму в течение примерно 2 минут — токены Google быстро истекают. Сам результат хранится 10 минут.

Полный пример#

import os
import time

import requests

API = "https://api.neurocaptcha.com"
KEY = os.environ["API_KEY"]


def call(method, payload):
    data = requests.post(f"{API}/{method}", json={"clientKey": KEY, **payload}, timeout=30).json()
    if data.get("errorId"):
        raise RuntimeError(f'{data["errorCode"]}: {data.get("errorDescription", "")}')
    return data


task = {
    "type": "RecaptchaV2TaskProxyless",
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
}

# 1. create the task: its price is held, not charged
task_id = call("createTask", {"task": task})["taskId"]

# 2. poll every 2 s; a failed task raises with its error code and costs nothing
deadline = time.time() + 300
while time.time() < deadline:
    time.sleep(2)
    result = call("getTaskResult", {"taskId": task_id})
    if result["status"] == "ready":
        print(result["solution"]["gRecaptchaResponse"])
        break
else:
    raise TimeoutError("the task was not solved in time")

Ошибки#

Любой errorId, кроме 0, — ошибка; тогда в ответе есть errorCode и errorDescription. Неудачная задача (ERROR_CAPTCHA_UNSOLVABLE, ERROR_RECAPTCHA_TIMEOUT, ошибки прокси) не списывается — просто создайте новую. Все коды: Ошибки.

Ошибка
{
  "errorId": 1,
  "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
  "errorDescription": "Account authorization key not found in the system."
}

Что дальше#