ApiBar.io — сервис для автоматического решения капч (Smart, текстовые картинные и пазл-капчи). API полностью JSON-based и работает поверх HTTPs.
В качестве базового адреса используется
https://api.apibar.io.
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).
Интерактивные «умные» капчи с кликами по картинке: фон + слой кликов. На выходе — строка с координатами кликов в формате, совместимом с решением от сторонних сервисов.
POST/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"
}
Запрос:
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 — координаты кликов.
Формат совместим с тем, что ожидают клиенты сторонних сервисов.
Обычная капча «картинка + текст». На вход отправляется одно изображение, на выходе — строка с распознанным текстом.
POST/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 такой же, как для 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 возвращается распознанный текст.
Пазл-капча: нужно выбрать правильный шаг/состояние пазла. На вход передаётся изображение или HTML-страница, плюс описание шагов, на выходе — номер шага.
POST/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 такой же, как для других типов. При успехе:
{
"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").
Такие ответы также означают ошибку формата запроса.
# Создание задачи
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"
}'
# Создание задачи
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"
}'
# Создание задачи
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"
}'