Skip to content
API
Captcha de Texto

Captcha de Texto

Descripción General

Un captcha de texto estándar es una imagen que contiene texto distorsionado que es legible por humanos. Para resolver la imagen del captcha, los usuarios deben ingresar el texto de la imagen.

📝

El captcha de texto puede incluir números, letras o una combinación de ambos. Típicamente utilizan distorsiones de imagen, ruido y varias fuentes para dificultar la lectura automatizada.

Captcha de texto común

1. Crear Tarea

Solicitud

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

Parámetros

ParámetroTipo de Dato¿Requerido?Descripción
clientKeystringClave API
task.typestringImageToTextTask
task.imagestringBase64 de la imagen
task.subTypestringUno de los siguientes tipos: common, amazon, microsoft, facebook, garena, artistshot, gmx, 11166, houssam

Ejemplo de Solicitud

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "Tu CLAVE_API",
  "task": {
    "type": "ImageToTextTask",
    "image": "imagen codificada en base64",
    "subType": "gmx"
  }
}

Respuesta

En caso de éxito, el servidor devolverá errorId = 0 y taskId

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

2. Obtener Resultado

Solicitud

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

Parámetros

ParámetroTipo de Dato¿Requerido?Descripción
clientKeystringClave API
taskIdstringTaskId del paso (1)

Ejemplo de Solicitud

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

Respuesta

{
  "errorId": 0,
  "status": "ready",
  "solution": "swamn"
}

Explicación del Estado

  • errorId = 0 y status = ready: Resuelto exitosamente, lee el resultado en solution.text
  • errorId = 0 y status = processing: El captcha se está resolviendo, espera 2 segundos e intenta de nuevo
  • errorId > 0: Error del sistema, se proporciona código de error y descripción

Opciones de SubType

Achicaptcha admite varios tipos de captcha de texto a través del parámetro subType:

SubTypeDescripción
commonCaptcha de texto común, el más popular
amazonCaptcha específico de Amazon con distorsión especial
microsoftCaptcha utilizado en servicios de Microsoft
facebookCaptcha de Facebook con fuentes distintivas
garenaCaptcha en la plataforma Garena
artistshotCaptcha del sitio web Artistshot
gmxCaptcha de correo GMX
11166Tipo de captcha especial con código 11166
houssamTipo de captcha específico llamado Houssam
discordTipo de captcha específico de Discord
okvipTipo de captcha específico de OKVIP
shopeeTipo de captcha específico de Shopee
📝

Típicamente subType: common puede manejar todos los tipos de captcha de texto. Si el captcha de texto de tu sitio web es demasiado específico, contacta al administrador (opens in a new tab) para obtener soporte.

Ejemplos de Integración

import requests
import time
import base64
 
def solve_captcha(image_path, sub_type='common', api_key='TU_CLAVE_API'):
    # Leer y codificar imagen
    with open(image_path, 'rb') as image_file:
        image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
    
    # Paso 1: Crear tarea
    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']
    
    # Paso 2: Obtener resultado
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Esperar 2 segundos
        
        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']
        
        # Si status == 'processing', continuar el bucle
 
# Uso
solution = solve_captcha('captcha.png', 'common', 'TU_CLAVE_API')
print('Resultado del captcha:', solution)

Códigos de Error Comunes

Código de ErrorDescripciónNotas
0éxitoÉxito
1procesandoProcesando
2faltan campos requeridosFaltan campos requeridos, verifica los parámetros
3tarea no compatibleTipo de tarea no compatible
4creación de tarea fallidaCreación de tarea fallida
5la clave del cliente no existeLa clave API no existe, verifica tu clave API
6saldo de cuenta insuficienteSaldo de cuenta insuficiente, agrega más créditos
7tarea fallida, por favor crea una nueva tareaTarea fallida, por favor crea una nueva tarea
8el ID de tarea no existeEl ID de tarea no existe

Mejores Prácticas

Para lograr los mejores resultados al usar la API de Achicaptcha, sigue estos principios:

1. Calidad de Imagen

  • Usa imágenes con buena resolución
  • Asegúrate de que las imágenes no estén demasiado borrosas o con ruido
  • Elige el subType apropiado para tu tipo de captcha

2. Intervalo de Sondeo

  • Espera al menos 2 segundos entre verificaciones de resultado
  • No envíes spam a la API con demasiadas solicitudes consecutivas
  • Ten un tiempo de espera para evitar bucles infinitos

3. Lógica de Reintento

  • Implementa reintento para errores temporales como ERROR_NO_SLOT_AVAILABLE
  • Usa retroceso exponencial al reintentar
  • Limita los intentos máximos de reintento

4. Seguridad de la Clave API

  • No codifiques la clave API en el código
  • Usa variables de entorno
  • No expongas la clave API en el lado del cliente

Enlaces Útiles: