Начало работы

CaptchaAI Quickstart: ваше первое решение CAPTCHA за 5 минут

Это руководство ставит одну задачу — как можно быстрее довести вас до первого успешного вызова API и получения решённого токена. Без теории и долгих объяснений: только минимальные шаги и работающий код.

Все типы CAPTCHA в CaptchaAI решаются по одной и той же схеме из четырёх шагов:

  1. Отправить запрос на in.php
  2. Сохранить ID задачи из ответа
  3. Опросить res.php каждые 5 секунд, пока результат не будет готов
  4. Использовать токен — внедрить его на страницу или передать в запрос

Шаг 0: получите API-ключ

  1. Зарегистрируйтесь на captchaai.com
  2. Откройте панель управления
  3. Скопируйте 32-символьный API-ключ

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


Шаг 1: отправка CAPTCHA

Пример решает Cloudflare Turnstile — один из самых распространённых типов. Со страницы нужны два значения:

  • sitekey — публичный ключ виджета Turnstile (в атрибуте data-sitekey или параметрах скрипта Turnstile, начинается с 0x)
  • pageurl — полный URL страницы, на которой загружается виджет

cURL

curl -X POST "https://ocr.captchaai.com/in.php" \
  -d "key=YOUR_API_KEY" \
  -d "method=turnstile" \
  -d "sitekey=0x4AAAAAAAC3DHQFLr1GavNl" \
  -d "pageurl=https://https://staging.example.com/qa-login" \
  -d "json=1"

Python

import requests

response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "turnstile",
    "sitekey": "0x4AAAAAAAC3DHQFLr1GavNl",
    "pageurl": "https://https://staging.example.com/qa-login",
    "json": 1,
})
print(response.json())

Node.js

const response = await fetch("https://ocr.captchaai.com/in.php", {
  method: "POST",
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
  body: new URLSearchParams({
    key: "YOUR_API_KEY",
    method: "turnstile",
    sitekey: "0x4AAAAAAAC3DHQFLr1GavNl",
    pageurl: "https://https://staging.example.com/qa-login",
    json: "1",
  }),
});
console.log(await response.json());

PHP

<?php
$response = file_get_contents("https://ocr.captchaai.com/in.php?" . http_build_query([
    "key"       => "YOUR_API_KEY",
    "method"    => "turnstile",
    "sitekey"   => "0x4AAAAAAAC3DHQFLr1GavNl",
    "pageurl"   => "https://https://staging.example.com/qa-login",
    "json"      => 1,
]));
echo $response;

Шаг 2: сохраните ID задачи

Успешный ответ:

{
  "status": 1,
  "request": "71823469"
}

Поле request — это ID задачи, он понадобится дальше.

Если status = 0, что-то пошло не так. Смотрите код ошибки в request:

Ошибка Что значит Что делать
ERROR_WRONG_USER_KEY Неверный формат API-ключа Проверьте 32-символьный ключ
ERROR_KEY_DOES_NOT_EXIST Ключ не найден Сверьтесь с панелью
ERROR_ZERO_BALANCE Нет свободных потоков Пополните баланс или подождите
ERROR_PAGEURL Не передан pageurl Добавьте полный URL страницы
ERROR_WRONG_GOOGLEKEY sitekey пуст или неверен Извлеките sitekey заново (для Turnstile он начинается с 0x)

Шаг 3: опрос результата

Подождите 15 секунд, затем опрашивайте каждые 5 секунд, пока не получите ответ.

Python

import time

time.sleep(15)

while True:
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY",
        "action": "get",
        "id": "71823469",
        "json": 1,
    }).json()

    if result.get("request") == "CAPCHA_NOT_READY":
        time.sleep(5)
        continue

    if result.get("status") == 1:
        token = result["request"]
        print(f"Solved! Token: {token[:60]}...")
        break

    raise RuntimeError(result)

Node.js

await new Promise((r) => setTimeout(r, 15000));

while (true) {
  const r = await fetch(
    `https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=get&id=71823469&json=1`,
  );
  const data = await r.json();
  if (data.request === "CAPCHA_NOT_READY") {
    await new Promise((r) => setTimeout(r, 5000));
    continue;
  }
  if (data.status === 1) {
    console.log("Solved:", data.request.slice(0, 60));
    break;
  }
  throw new Error(JSON.stringify(data));
}

Шаг 4: используйте токен

Способ применения токена зависит от типа CAPTCHA:

  • Turnstile / reCAPTCHA — записать в cf-turnstile-response или g-recaptcha-response, либо вызвать колбэк страницы.
  • Image OCR — вставить распознанный текст в поле ответа.
  • GeeTest / FunCaptcha — собрать несколько возвращённых полей по требованиям сайта.

Минимальный вариант для браузера:

document.querySelector('[name="cf-turnstile-response"]').value = token;
document.querySelector("form").submit();

Частые ошибки на старте

  • Пробел в скопированном API-ключе — обрежьте его.
  • Нет протокола в pageurl — обязательно https://....
  • Слишком ранний первый опрос — подождите 15 секунд.
  • Слишком частый опрос — 5 секунд достаточно, чаще не быстрее.
  • Закончились потоки — см. Коды ошибок API и тариф вашего аккаунта.

Дальше

В зависимости от типа CAPTCHA, с которым вы работаете:

  • Решение reCAPTCHA v2 через API
  • Решение Cloudflare Turnstile через API
  • Решение GeeTest v3 через API
  • Решение image CAPTCHA через API

Получите API-ключ на captchaai.com/api.php и завершите своё первое решение за 5 минут.

Комментарии для этой статьи отключены.