Skip to content
API
ReCAPTCHA
Изображение

ReCAPTCHA Image (Телефон)

Обзор

Решение Recaptcha с ультра-быстрой скоростью, топ-1 точность на рынке. Мы предоставляем услуги по решению всех типов ReCaptcha Image на телефонах.

📱

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

ReCAPTCHA Mobile

1. Создание задачи

Запрос

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

Параметры

Имя параметраТип данныхОбязательно?Описание
clientKeystringдаApi ключ
task.typestringдаReCaptchaPhoneTask
task.subTypestringдаЗначение равно 0
task.imagestringдаИзображение капчи в формате base64, захватите область отображения изображения капчи (без рамки, только маленькие квадратные ячейки)
task.otherstringдаВопрос|Количество сеток
• Вопрос: "Select all images with a bus" (full question text shown in the captcha prompt)
• Количество сеток: 3 (или 4, 5)
→ other: "Select all images with a bus|4"

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

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ReCaptchaPhoneTask",
    "subType": "0",
    "image": "iVBORw0KGgoAAAANSUhEUgAA...(base64 encoded image)",
    "other": "Select all images with a bus|4"
  }
}

Ответ

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

{
  "errorId": 0,
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

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

Запрос

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

Параметры

Имя параметраТип данныхОбязательно?Описание
clientKeystringдаApi ключ
taskIdstringдаTaskId, полученный из (1)

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

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

Ответ

{
  "errorId": 0,
  "status": "ready",
  "solution": "0,5,9"
}

Примечание: Для типа "grid", решение — это список индексов изображений для клика, начиная с 0

Пояснение статусов

  • errorId = 0: Успешно решено, читайте результат в solution
  • errorId = 1: Решение капчи, подождите 2-3 секунды и попробуйте снова
  • errorId > 1: Системная ошибка, возвращает код ошибки и описание

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

import requests
import time
 
def solve_recaptcha_phone(image_base64, question, grid_count, api_key='YOUR_API_KEY'):
    # Step 1: Create task
    create_task_url = 'https://api.achicaptcha.com/createTask'
    create_task_payload = {
        'clientKey': api_key,
        'task': {
            'type': 'ReCaptchaPhoneTask',
            'subType': '0',
            'image': image_base64,
            'other': f'{question}|{grid_count}'
        }
    }
    
    response = requests.post(create_task_url, json=create_task_payload)
    result = response.json()
    
    if result['errorId'] > 1:
        raise Exception(result['errorDescription'])
    
    task_id = result['taskId']
    
    # Step 2: Get result
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Wait 2-3 seconds
        
        get_result_payload = {
            'clientKey': api_key,
            'taskId': task_id
        }
        
        response = requests.post(get_result_url, json=get_result_payload)
        result = response.json()
        
        if result['errorId'] > 1:
            raise Exception(result['errorDescription'])
        
        if result['status'] == 'ready':
            return result['solution']  # Returns "0,5,9" - indices to click
        
        # If status == 'processing', continue loop
 
# Usage
image_base64 = 'iVBORw0KGgoAAAANSUhEUgAA...'  # Base64 encoded captcha image
question = 'Select all images with a bus'  # Full question text from the captcha prompt
grid_count = 4  # Grid count (3, 4, or 5)
solution = solve_recaptcha_phone(image_base64, question, grid_count, 'YOUR_API_KEY')
print('Grid indices to click:', solution)  # Example: "0,5,9"
 
# Use solution to click corresponding cells
indices = [int(i) for i in solution.split(',')]
for index in indices:
    # Click cell with corresponding index
    print(f'Click cell index: {index}')

Коды общих ошибок

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

Лучшие практики

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

1. Подготовка изображения капчи

  • Четко захватите область отображения капчи, без рамок или других элементов интерфейса
  • Включайте только маленькие квадратные ячейки (сетку) капчи
  • Изображение в формате base64
  • Убедитесь, что изображение имеет достаточное разрешение для распознавания

2. Определение точной информации

  • Получите вопрос из жирной части текста капчи (пример: "Select all images with a bus", "Select all squares with traffic lights")
  • Определите правильное количество сеток (3x3, 4x4 или 5x5)
  • Правильно отформатируйте other: "question|grid_count" (пример: "Select all images with a bus|4")

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

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

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

  • Возвращаемое решение — это строка индексов для клика, разделенных запятыми (пример: "0,5,9")
  • Индекс начинается с 0, считая слева направо, сверху вниз
  • Распарсите строку и кликните по соответствующим ячейкам

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

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

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

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

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