Skip to content
API
Grid капча
Amazon

Amazon Grid Captcha

Обзор

Amazon Grid Captcha — это капча выбора в сетке: на странице отображается вопрос/подсказка и сетка плиток. Решатель должен вернуть индексы ячеек сетки, соответствующих вопросу (индексы от 0, построчно: слева направо, сверху вниз).

🔲

Поле task.image может кодировать изображение сетки как одну строку Base64 или как 9 отдельных изображений 1x1 (Base64, разделённых символом |)

Amazon Grid Captcha UI example

1. Создать задачу

Формат отправки изображений

Изображение сетки 3x3 Amazon Grid Captcha request payload (grid) Или 9 отдельных изображений 1x1

Запрос

POST https://api.achicaptcha.com/createTask

Параметры

Имя параметраТип данныхОбязательно?Описание
clientKeystringyesAPI key
task.typestringyesGridCaptcha
task.subTypestringyesamzn
task.imagestringyesИзображение сетки в кодировке Base64
task.otherstringyesТекст вопроса/подсказки, отображаемый пользователю (например "the curtains")

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

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GridCaptcha",
    "subType": "amzn",
    "image": "BASE64_GRID_IMAGE",
    "other": "the curtains"
  }
}

Ответ

При успехе сервер возвращает errorId = 0 и taskId

{
  "errorId": 0,
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

2. Получить результат

Запрос

POST https://api.achicaptcha.com/getTaskResult

Параметры

Имя параметраТип данныхОбязательно?Описание
clientKeystringyesAPI key
taskIdstringyesTaskId, полученный на шаге (1)

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

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

Ответ

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "click": "0,2,5"
  }
}

solution.click — строка с индексами ячеек от 0 (построчно), разделёнными запятыми, которые нужно нажать в сетке.

Объяснение статусов

  • errorId = 0 и status = ready: Успешно решено, прочитайте индексы ячеек в solution.click
  • errorId = 0 и status = processing: Ещё решается, подождите 2 секунды и опросите снова
  • errorId > 0: Системная ошибка, проверьте errorCode и errorDescription

Примеры интеграции

import requests
import base64
import time
 
def solve_amzn(grid_path, question, api_key='YOUR_API_KEY'):
    with open(grid_path, 'rb') as f:
        grid_b64 = base64.b64encode(f.read()).decode()
 
    # Шаг 1: Создать задачу
    create_resp = requests.post(
        'https://api.achicaptcha.com/createTask',
        json={
            'clientKey': api_key,
            'task': {
                'type': 'GridCaptcha',
                'subType': 'amzn',
                'image': grid_b64,
                'other': question
            }
        }
    )
    result = create_resp.json()
 
    if result['errorId'] != 0:
        raise Exception(result['errorDescription'])
 
    task_id = result['taskId']
 
    # Шаг 2: Опрашивать результат
    while True:
        time.sleep(2)
        poll_resp = requests.post(
            'https://api.achicaptcha.com/getTaskResult',
            json={'clientKey': api_key, 'taskId': task_id}
        )
        result = poll_resp.json()
 
        if result['errorId'] != 0:
            raise Exception(result['errorDescription'])
 
        if result['status'] == 'ready':
            return result['solution']['click']  # e.g. "0,2,5"
 
# Использование
indices = solve_amzn('grid.png', 'the curtains', 'YOUR_API_KEY')
print('Ячейки для нажатия:', indices)

Распространённые коды ошибок

Код ошибкиОписаниеПримечания
0successУспех
1processingОбработка
2missing required fieldsОтсутствуют обязательные поля, проверьте параметры
3task not supportedТип задачи не поддерживается
4task creation failedСоздание задачи не удалось
5client key does not existAPI ключ не существует, проверьте ключ
6insufficient account balanceНедостаточный баланс, пополните счёт
7task failed, please create a new taskЗадача не удалась, создайте новую
8task ID does not existID задачи не существует

Рекомендации

Для достижения наилучших результатов при использовании Achicaptcha API для Amazon Grid Captcha следуйте этим принципам:

1. Кодирование изображения

  • Отправляйте только изображение сетки как одну строку Base64
  • Не включайте префикс data:image/...;base64, — только чистый Base64
  • Убедитесь, что изображение полностью загружено и закодировано перед отправкой

2. Параметр task.other

  • Передавайте точный текст вопроса, отображаемый пользователю (например "the curtains")
  • Это поле обязательно — его отсутствие приведёт к неверным результатам
  • Копируйте строку вопроса дословно из задания капчи

3. Интервал опроса

  • Ждите не менее 2 секунд между проверками результата
  • Не спамьте API последовательными запросами
  • Установите тайм-аут во избежание бесконечных циклов (рекомендуется: 60 секунд)

4. Обработка результата

  • solution.click — строка с индексами ячеек от 0 (построчно, слева направо, сверху вниз), разделёнными запятыми
  • Разделите по , и преобразуйте в целые числа перед нажатием соответствующих ячеек сетки

5. Логика повторных попыток

  • Реализуйте повтор при временных ошибках типа ERROR_NO_SLOT_AVAILABLE
  • Используйте экспоненциальную задержку при повторах
  • Ограничьте максимальное число попыток

6. Безопасность API ключа

  • Не храните API ключ в исходном коде
  • Используйте переменные окружения или менеджер секретов
  • Никогда не раскрывайте API ключ на стороне клиента

Полезные ссылки: