Skip to content
API
ReCAPTCHA
Imagen

ReCAPTCHA Imagen (Teléfono)

Descripción General

Resuelve Recaptcha con velocidad ultrarrápida, precisión número 1 en el mercado. Proporcionamos servicios para resolver todos los tipos de ReCaptcha Imagen en teléfonos.

📱

Este servicio te permite enviar imágenes de captcha y recibir índices de celdas para hacer clic y resolver el captcha.

ReCAPTCHA Mobile

1. Crear Tarea

Solicitud

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

Parámetros

Nombre del ParámetroTipo de Dato¿Requerido?Descripción
clientKeystringClave API
task.typestringReCaptchaPhoneTask
task.subTypestringEl valor es igual a 0
task.imagestringImagen del captcha en formato base64, captura el área de visualización de la imagen del captcha (sin bordes, solo celdas cuadradas pequeñas)
task.otherstringPregunta|Cantidad de cuadrícula
• Pregunta: "Select all images with a bus" (full question text shown in the captcha prompt)
• Cantidad de cuadrícula: 3 (o 4, 5)
→ other: "Select all images with a bus|4"

Ejemplo de Solicitud

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

Respuesta

Cuando tiene éxito, el servidor devuelve errorId = 0 y taskId

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

2. Obtener Resultado

Solicitud

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

Parámetros

Nombre del ParámetroTipo de Dato¿Requerido?Descripción
clientKeystringClave API
taskIdstringTaskId obtenido de (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": "0,5,9"
}

Nota: Para el tipo "grid", la solución es una lista de índices de imagen para hacer clic, comenzando desde 0

Explicación del Estado

  • errorId = 0: Resuelto exitosamente, lee el resultado en solution
  • errorId = 1: Resolviendo captcha, espera 2-3 segundos e intenta de nuevo
  • errorId > 1: Error del sistema, devuelve código de error y descripción

Ejemplos de Integración

import requests
import time
 
def solve_recaptcha_phone(image_base64, question, grid_count, api_key='TU_CLAVE_API'):
    # Paso 1: Crear tarea
    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']
    
    # Paso 2: Obtener resultado
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Esperar 2-3 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'] > 1:
            raise Exception(result['errorDescription'])
        
        if result['status'] == 'ready':
            return result['solution']  # Devuelve "0,5,9" - índices para hacer clic
        
        # Si status == 'processing', continuar el bucle
 
# Uso
image_base64 = 'iVBORw0KGgoAAAANSUhEUgAA...'  # Imagen del captcha codificada en base64
question = 'Select all images with a bus'  # Full question text from the captcha prompt
grid_count = 4  # Cantidad de cuadrícula (3, 4, o 5)
solution = solve_recaptcha_phone(image_base64, question, grid_count, 'TU_CLAVE_API')
print('Índices de cuadrícula para hacer clic:', solution)  # Ejemplo: "0,5,9"
 
# Usar solución para hacer clic en las celdas correspondientes
indices = [int(i) for i in solution.split(',')]
for index in indices:
    # Hacer clic en la celda con el índice correspondiente
    print(f'Hacer clic en el índice de celda: {index}')

Códigos de Error Comunes

Código de ErrorDescripciónNotas
0éxitoÉxito
1procesandoProcesando
2faltan campos requeridosFaltan campos requeridos, verifica los parámetros nuevamente
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 la clave API nuevamente
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 obtener los mejores resultados al usar la API de Achicaptcha, sigue estos principios:

1. Preparar la Imagen del Captcha

  • Captura el área de visualización de la imagen del captcha claramente, sin bordes u otros elementos de la interfaz
  • Solo incluye las celdas cuadradas pequeñas (cuadrícula) del captcha
  • Imagen en formato base64
  • Asegúrate de que la imagen tenga suficiente resolución para el reconocimiento

2. Determinar Información Precisa

  • Obtén la pregunta de la parte del texto en negrita del captcha (ejemplo: "Select all images with a bus", "Select all squares with traffic lights")
  • Determina el recuento de cuadrícula correcto (3x3, 4x4, o 5x5)
  • Formatea other correctamente: "pregunta|recuento_cuadrícula" (ejemplo: "Select all images with a bus|4")

3. Intervalo de Sondeo

  • Espera al menos 2-3 segundos entre verificaciones de resultado
  • No envíes spam a la API con demasiadas solicitudes consecutivas
  • Establece un tiempo de espera para evitar bucles infinitos (recomendado 120 segundos)

4. Procesar Resultados

  • La solución devuelta es una cadena de índices para hacer clic, separados por comas (ejemplo: "0,5,9")
  • El índice comienza desde 0, contando de izquierda a derecha, de arriba a abajo
  • Analiza la cadena y haz clic en las celdas correspondientes

5. 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

6. 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: