BLS Captcha
BLS — капча в виде сетки 3×3 из отдельных изображений с числовым кодом инструкции. Нужно выбрать ячейки, соответствующие коду. Сервис принимает все 9 изображений в Base64 и возвращает индексы подходящих ячеек.
Формат запроса
POST
/in.phpkeystringобязателенВаш API-ключ (32 символа)
methodstringобязателенЗначение: bls
instructionsstringобязателенЧисловой код инструкции (например, 664)
image_base64_1 … image_base64_9stringобязателенBase64 data URI каждой из 9 ячеек сетки (data:image/png;base64,...)
jsoninteger (0/1)по умолчанию: 0опционально0 — ответ текстом, 1 — ответ JSON
Как решать капчу
Шаг 1. Подготовьте изображения
Извлеките все 9 ячеек сетки и закодируйте каждую в Base64 с data URI-префиксом (data:image/png;base64,...). Запишите числовой код инструкции.
Шаг 2. Отправьте задачу нам
bash
curl -X POST "https://captcha-api.iwhat.pw/in.php" \
-d key=YOUR_API_KEY \
-d method=bls \
-d instructions=664 \
-d image_base64_1=data:image/png;base64,iVBORw0... \
-d image_base64_2=data:image/png;base64,iVBORw0... \
-d json=1python
import requests, base64
def encode(path):
with open(path, 'rb') as f:
return 'data:image/png;base64,' + base64.b64encode(f.read()).decode()
data = {
'key': 'YOUR_API_KEY',
'method': 'bls',
'instructions': '664',
'json': '1',
}
for i in range(1, 10):
data[f'image_base64_{i}'] = encode(f'tile_{i}.png')
response = requests.post('https://captcha-api.iwhat.pw/in.php', data=data)
task_id = response.json()['request']
print(f"ID задачи: {task_id}")js
const body = new URLSearchParams({
key: 'YOUR_API_KEY',
method: 'bls',
instructions: '664',
json: '1',
});
tiles.forEach((base64, i) => body.append(`image_base64_${i + 1}`, base64));
const res = await fetch('https://captcha-api.iwhat.pw/in.php', { method: 'POST', body });
const { request: taskId } = await res.json();
console.log(`ID задачи: ${taskId}`);Шаг 3. Получение решения
python
import time
time.sleep(5)
result = requests.get('https://captcha-api.iwhat.pw/res.php', params={
'key': 'YOUR_API_KEY',
'action': 'get',
'id': task_id,
'json': '1',
}).json()
if result['status'] == 1:
tiles = result['request']
print(f"Индексы ячеек: {tiles}")Шаг 4. Используем данные
python
for tile_index in tiles:
driver.find_element_by_css_selector(f'.bls-tile:nth-child({tile_index})').click()Формат ответа
JSON-ответ (при json=1):
json
{
"status": 1,
"request": [2, 3, 5, 9]
}Распространённые ошибки
| Код | Описание |
|---|---|
ERROR_WRONG_USER_KEY | Неверный формат API-ключа |
ERROR_KEY_DOES_NOT_EXIST | Такого API-ключа не существует |
ERROR_ZERO_BALANCE | Недостаточно средств на балансе |
ERROR_BAD_PARAMETERS | Не хватает изображений или неверный формат instructions |
ERROR_WRONG_CAPTCHA_ID | Неверный id задачи при опросе |
CAPCHA_NOT_READY | Решение ещё не готово, подождите 5 сек |