Skip to content
API
Текстовая капча

Text Captcha

Обзор

Стандартная текстовая капча — это изображение, содержащее искаженный текст, который может прочитать человек. Чтобы решить капчу, пользователи должны ввести текст с изображения.

📝

Текстовая капча может включать цифры, буквы или их комбинацию. Обычно используются искажения изображения, шум и различные шрифты, чтобы затруднить автоматическое чтение.

Common text captcha

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

Запрос

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

Параметры

ПараметрТип данныхОбязательно?Описание
clientKeystringдаAPI ключ
task.typestringдаImageToTextTask
task.imagestringдаBase64 изображения
task.subTypestringдаОдин из следующих типов: common, amazon, microsoft, facebook, garena, artistshot, gmx, 11166, houssam

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

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "Your API_KEY",
  "task": {
    "type": "ImageToTextTask",
    "image": "base64 encoded image",
    "subType": "gmx"
  }
}

Ответ

При успехе сервер вернет 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": "swamn"
}

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

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

Опции SubType

Achicaptcha поддерживает различные типы текстовой капчи через параметр subType:

SubTypeОписание
commonОбычная текстовая капча, самая популярная
amazonКапча Amazon со специальным искажением
microsoftКапча, используемая в сервисах Microsoft
facebookКапча Facebook с характерными шрифтами
garenaКапча на платформе Garena
artistshotКапча с сайта Artistshot
gmxКапча электронной почты GMX
11166Специальный тип капчи с кодом 11166
houssamСпецифический тип капчи с названием Houssam
discordКапча Discord
okvipКапча OKVIP
shopeeКапча Shopee
📝

Обычно subType: common может обрабатывать все типы текстовой капчи. Если текстовая капча вашего сайта слишком специфична, пожалуйста, свяжитесь с администратором (opens in a new tab) для поддержки.

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

import requests
import time
import base64
 
def solve_captcha(image_path, sub_type='common', api_key='YOUR_API_KEY'):
    # Read and encode image
    with open(image_path, 'rb') as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
    
    # Step 1: Create task
    create_task_url = 'https://api.achicaptcha.com/createTask'
    create_task_payload = {
        'clientKey': api_key,
        'task': {
            'type': 'ImageToTextTask',
            'image': image_base64,
            'subType': sub_type
        }
    }
    
    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
solution = solve_captcha('captcha.png', 'common', 'YOUR_API_KEY')
print('Captcha result:', 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 следуйте этим принципам:

1. Качество изображения

  • Используйте изображения с хорошим разрешением
  • Убедитесь, что изображения не слишком размыты или зашумлены
  • Выберите подходящий subType для вашего типа капчи

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

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

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

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

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

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

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