Документация API

ApiBar.io — сервис для автоматического решения капч (Smart, текстовые картинные и пазл-капчи). API полностью JSON-based и работает поверх HTTPs.

В качестве базового адреса используется https://api.apibar.io.

  • Все запросы и ответы — JSON в UTF-8.
  • Тело запроса передаётся с заголовком Content-Type: application/json.
  • Авторизация — через заголовок X-API-Key.
  • Списание происходит только за успешно решённые капчи.

Формат ответов

Независимо от метода и типа капчи, формат ответа единый:

Успех:

{
  "status": 1,
  "response": <значение>
}
                                

Ошибка:

{
  "status": 0,
  "response": "ERROR_CODE"
}
                                

Значение response при успехе зависит от метода/типа капчи (идентификатор задачи или итоговый ответ). При ошибке в response возвращается символьный код — список в разделе «Коды ошибок».

Авторизация

Для всех методов решения капчи требуется API-ключ. Передавайте его в заголовке X-API-Key:

curl -X POST https://api.apibar.io/create \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{ ... }'
                        

При отсутствии или неверном ключе сервис возвращает status = 0 и код ошибки ERROR_WRONG_KEY (HTTP-код 401).

SmartCaptcha

Интерактивные «умные» капчи с кликами по картинке: фон + слой кликов. На выходе — строка с координатами кликов в формате, совместимом с решением от сторонних сервисов.

Запрос /create (SmartCaptcha)

  • Метод: POST
  • URL: /create
Поле Тип Обязательность Описание
type string обязательное Всегда "SmartCaptcha".
task string обязательное Base64 фонового изображения капчи. Допускаются строки вида data:image/png;base64,... — префикс будет автоматически отброшен.
click string обязательное Base64 изображения-«маски» кликов (второй слой SmartCaptcha).
app_id string, nullable опциональное Ваш внутренний идентификатор приложения. На тарификацию не влияет.

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

curl -X POST https://api.apibar.io/create \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "type":  "SmartCaptcha",
    "task":  "BASE64_FONOVOY_KARTINKI",
    "click": "BASE64_SLOYA_KLIKOV"
  }'
                        

При успехе:

{
  "status": 1,
  "response": "TASK_ID"
}
                        

Ответ /result (SmartCaptcha)

Запрос:

curl -X POST https://api.apibar.io/result \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "id": "TASK_ID"
  }'
                        

При успехе:

{
  "status": 1,
  "response": "x1,y1;x2,y2;..."
}
                        

Строка в response — координаты кликов. Формат совместим с тем, что ожидают клиенты сторонних сервисов.

TextCaptcha (Image)

Обычная капча «картинка + текст». На вход отправляется одно изображение, на выходе — строка с распознанным текстом.

Запрос /create (TextCaptcha)

  • Метод: POST
  • URL: /create
Поле Тип Обязательность Описание
type string обязательное Всегда "TextCaptcha".
task string обязательное Base64-кодированное изображение капчи. Допускаются data-URL строки data:image/*;base64,....
app_id string, nullable опциональное Внутренний идентификатор приложения.

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

curl -X POST https://api.apibar.io/create \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "type": "TextCaptcha",
    "task": "BASE64_KARTINKI_S_TEKSTOM"
  }'
                        

При успехе:

{
  "status": 1,
  "response": "AB12CD"
}
                        

Ответ /result (TextCaptcha)

Формат запроса /result такой же, как для SmartCaptcha.

curl -X POST https://api.apibar.io/result \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "id": "TASK_ID"
  }'
                        

При успехе:

{
  "status": 1,
  "response": "AB12CD"
}
                        

В response возвращается распознанный текст.

PazlCaptcha

Пазл-капча: нужно выбрать правильный шаг/состояние пазла. На вход передаётся изображение или HTML-страница, плюс описание шагов, на выходе — номер шага.

Запрос /create (PazlCaptcha)

  • Метод: POST
  • URL: /create
Поле Тип Обязательность Описание
type string обязательное Всегда "PazlCaptcha".
task string обязательное Base64-кодированное изображение пазла или HTML-страница пазл-капчи, также закодированная в base64. Поддержка HTML может быть доступна не на всех инстансах сервиса.
click string опциональное* Обязательное только при отправке картинки в поле task (Для HTML не нужно). JSON-массив целых чисел (строкой), описывающий шаги/состояния пазла или строка с значениями шагов через запятую. Пример: [1,2,3,4] или 1,2,3,4.
app_id string, nullable опциональное Идентификатор вашего приложения.

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

curl -X POST https://api.apibar.io/create \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "type":  "PazlCaptcha",
    "task":  "BASE64_KARTINKI_ILI_HTML_PAZLA",
    "click": "[1,2,3,4]"
  }'
                        

При успехе:

{
  "status": 1,
  "response": "3"
}
                        

Ответ /result (PazlCaptcha)

Формат запроса /result такой же, как для других типов. При успехе:

{
  "status": 1,
  "response": "N"
}
                        

В response возвращается номер шага (строкой), который нужно выбрать в интерфейсе пазл-капчи.

Коды ошибок

Во всех методах API ответ при ошибке имеет вид {"status": 0, "response": "<КОД_ОШИБКИ>"}. Ниже перечислены основные коды и их смысл.

Код HTTP Метод Описание
ERROR_WRONG_KEY 401 /create, /result Не передан или неверен заголовок X-API-Key, либо ключ не найден/отключён.
METHOD_NOT_ALLOWED 405 все Использован неподдерживаемый HTTP-метод (например, GET вместо POST).
ERROR_BAD_REQUEST 400 /create, /result Некорректное тело запроса: невалидный JSON, пустой id и т.п.
ERROR_BAD_REQUEST_TYPE 400 /create, /result Неизвестный тип капчи в поле type.
ERROR_BAD_REQUEST_TASK 400 или 200 /create Пустое или некорректное поле task (картинка/HTML не переданы или невалидный base64). В некоторых случаях возвращается с HTTP 200, но status = 0.
ERROR_BAD_REQUEST_CLICK 200 /create (SmartCaptcha) Некорректное поле click для SmartCaptcha (пустое либо невалидный base64).
ERROR_BAD_REQUEST_CLICK_JSON
(+ подробности)
400 /create (PazlCaptcha) Поле click не удалось разобрать как JSON-массив целых чисел. В конце сообщения могут быть дополнительные подробности.
ERROR_SOLVE
(+ подробности)
200 /create Сервис не смог корректно решить капчу: неподдерживаемый формат, слишком плохое качество и т.п. После кода может идти текст с деталями.
TASK_NOT_FOUND 200 /result Задача с указанным id не найдена (неправильный идентификатор или результат уже был получен и задача удалена).
CAPCHA_NOT_READY 200 /result Задача ещё не готова. Для текущих типов капчи такое встречается редко, но код зарезервирован для совместимости.
INTERNAL_ERROR 500 все Внутренняя ошибка сервера. Если такая ошибка повторяется — свяжитесь с поддержкой.

В отдельных редких случаях в response может прийти текстовое сообщение без префикса ERROR_... (например "empty taskArray json"). Такие ответы также означают ошибку формата запроса.

Примеры запросов (сводно)

SmartCaptcha: создать задачу и получить результат

# Создание задачи
curl -X POST https://api.apibar.io/create \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "type":  "SmartCaptcha",
    "task":  "BASE64_FONOVOY_KARTINKI",
    "click": "BASE64_SLOYA_KLIKOV"
  }'

# Получение результата
curl -X POST https://api.apibar.io/result \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "id": "TASK_ID"
  }'
                        

TextCaptcha: полный цикл

# Создание задачи
curl -X POST https://api.apibar.io/create \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "type": "TextCaptcha",
    "task": "BASE64_KARTINKI_S_TEKSTOM"
  }'

# Получение результата
curl -X POST https://api.apibar.io/result \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "id": "TASK_ID"
  }'
                        

PazlCaptcha: полный цикл

# Создание задачи
curl -X POST https://api.apibar.io/create \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "type":  "PazlCaptcha",
    "task":  "BASE64_KARTINKI_ILI_HTML_PAZLA",
    "click": "[1,2,3,4]"
  }'

# Получение результата
curl -X POST https://api.apibar.io/result \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <ВАШ_API_КЛЮЧ>" \
  -d '{
    "id": "TASK_ID"
  }'