Skip to content
API
Funcaptcha

Funcaptcha Image

Обзор

FunCaptcha (также известная как Arkose Labs Captcha) — это интерактивный тип капчи, который требует от пользователей выполнять действия, такие как вращение изображений, перетаскивание объектов для решения задач. Она используется многими крупными веб-сайтами, такими как Roblox, Epic Games, Outlook и т.д.

🎮

FunCaptcha разработана как для защиты от ботов, так и для создания "веселого" опыта для пользователей через интерактивные мини-игры.

FunCaptcha FunCaptcha FunCaptcha

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

Запрос

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

Параметры

Имя параметраТип данныхОбязательно?Описание
clientKeystringдаApi ключ
task.typestringдаFuncaptchaImageTask
task.subTypestringдаЗначение равно 1
task.imagestringдаBase64 изображения
task.otherstringдаВопрос
Пример: "Use the arrows to rotate the object to face in the direction of the hand"

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

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "FuncaptchaImageTask",
    "subType": "1",
    "image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...",
    "other": "Use the arrows to rotate the object to face in the direction of the hand"
  }
}

Ответ

При успехе сервер возвращает 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": "1" // Индекс изображения для клика (Начиная с 0)
}

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

  • errorId = 0 и status = ready: Успешно решено, читайте результат в solution.answer (массив индексов изображений)
  • errorId = 0 и status = processing: Решение капчи, подождите 2 секунды и попробуйте снова
  • errorId > 0: Системная ошибка, возвращает код ошибки и описание ошибки

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

import requests
import time
 
def solve_funcaptcha_image(image_base64, question, 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': 'FuncaptchaImageTask',
            'subType': '1',
            'image': image_base64,
            'other': question
        }
    }
    
    response = requests.post(create_task_url, json=create_task_payload)
    result = response.json()
    
    if result['errorId'] != 0:
        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 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'] != 0:
            raise Exception(result['errorDescription'])
        
        if result['status'] == 'ready':
            return result['solution']
        
        # If status == 'processing', continue loop
 
# Usage
image_base64 = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...'  # Base64 of image
question = 'Use the arrows to rotate the object to face in the direction of the hand'
solution = solve_funcaptcha_image(image_base64, question, 'YOUR_API_KEY')
print('FunCaptcha solution:', solution)

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

Код ошибкиОписаниеПримечания
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 для FunCaptcha Image, следуйте этим принципам:

1. Обработка изображения Base64

  • Принимает только одно изображение. Для пользователей телефонов объедините в одно большое изображение перед отправкой
  • Убедитесь, что изображение правильно закодировано в формате Base64
  • Удалите префикс data:image/...;base64,, если он присутствует
  • Проверьте, что размер изображения разумный (не слишком большой)

2. Вопрос

  • Предоставьте точный вопрос из задачи FunCaptcha
  • Вопрос помогает системе лучше понять тип задачи
  • Пример: "Use the arrows to rotate the object to face in the direction of the hand"

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

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

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

  • Возвращаемый результат — это одно число (индекс, начиная с 0)
  • Используйте этот результат для отправки в FunCaptcha

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

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

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

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

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