Skip to content
API
Captcha de Grilla
Amazon

Amazon Grid Captcha

Descripción general

Amazon Grid Captcha es una captcha de selección en cuadrícula: la página muestra una pregunta/indicación y una cuadrícula de mosaicos. El solucionador debe devolver qué celdas de la cuadrícula coinciden con la pregunta (índices de base 0, orden de fila: de izquierda a derecha, de arriba a abajo).

🔲

El campo task.image puede codificar la imagen de cuadrícula como una sola cadena Base64 o como 9 imágenes separadas de 1x1 (Base64, separadas por |)

Amazon Grid Captcha UI example

1. Crear tarea

Formato de envío de imagen

Imagen de cuadrícula 3x3 Amazon Grid Captcha request payload (grid) O 9 imágenes separadas de 1x1

Solicitud

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

Parámetros

Nombre del parámetroTipo de dato¿Requerido?Descripción
clientKeystringyesAPI key
task.typestringyesGridCaptcha
task.subTypestringyesamzn
task.imagestringyesImagen de cuadrícula codificada en Base64
task.otherstringyesEl texto de la pregunta/indicación mostrado al usuario (ej. "the curtains")

Ejemplo de solicitud

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "GridCaptcha",
    "subType": "amzn",
    "image": "BASE64_GRID_IMAGE",
    "other": "the curtains"
  }
}

Respuesta

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

{
  "errorId": 0,
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

2. Obtener resultado

Solicitud

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

Parámetros

Nombre del parámetroTipo de dato¿Requerido?Descripción
clientKeystringyesAPI key
taskIdstringyesTaskId obtenido del paso (1)

Ejemplo de solicitud

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

Respuesta

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "click": "0,2,5"
  }
}

solution.click es una cadena de índices de celdas de base 0 (orden de fila) separados por comas para hacer clic en la cuadrícula.

Explicación de estados

  • errorId = 0 y status = ready: Resuelto exitosamente, leer índices de celdas en solution.click
  • errorId = 0 y status = processing: Aún resolviendo, esperar 2 segundos y consultar de nuevo
  • errorId > 0: Error del sistema, verificar errorCode y errorDescription

Ejemplos de integración

import requests
import base64
import time
 
def solve_amzn(grid_path, question, api_key='YOUR_API_KEY'):
    with open(grid_path, 'rb') as f:
        grid_b64 = base64.b64encode(f.read()).decode()
 
    # Paso 1: Crear tarea
    create_resp = requests.post(
        'https://api.achicaptcha.com/createTask',
        json={
            'clientKey': api_key,
            'task': {
                'type': 'GridCaptcha',
                'subType': 'amzn',
                'image': grid_b64,
                'other': question
            }
        }
    )
    result = create_resp.json()
 
    if result['errorId'] != 0:
        raise Exception(result['errorDescription'])
 
    task_id = result['taskId']
 
    # Paso 2: Consultar resultado
    while True:
        time.sleep(2)
        poll_resp = requests.post(
            'https://api.achicaptcha.com/getTaskResult',
            json={'clientKey': api_key, 'taskId': task_id}
        )
        result = poll_resp.json()
 
        if result['errorId'] != 0:
            raise Exception(result['errorDescription'])
 
        if result['status'] == 'ready':
            return result['solution']['click']  # e.g. "0,2,5"
 
# Uso
indices = solve_amzn('grid.png', 'the curtains', 'YOUR_API_KEY')
print('Celdas a hacer clic:', indices)

Códigos de error comunes

Código de errorDescripciónNotas
0successÉxito
1processingProcesando
2missing required fieldsFaltan campos requeridos, verificar parámetros
3task not supportedTipo de tarea no soportado
4task creation failedCreación de tarea fallida
5client key does not existAPI key no existe, verificar clave
6insufficient account balanceSaldo insuficiente, añadir créditos
7task failed, please create a new taskTarea fallida, crear una nueva tarea
8task ID does not existID de tarea no existe

Mejores prácticas

Para obtener los mejores resultados al usar la API de Achicaptcha para Amazon Grid Captcha, siga estos principios:

1. Codificación de imágenes

  • Envíe solo la imagen de cuadrícula como una sola cadena Base64
  • No incluya el prefijo data:image/...;base64, — solo Base64 sin procesar
  • Asegúrese de que la imagen esté completamente cargada y codificada antes de enviar

2. Parámetro task.other

  • Pase el texto exacto de la pregunta mostrado al usuario (ej. "the curtains")
  • Este campo es obligatorio — omitirlo causará resultados incorrectos
  • Copie la cadena de pregunta literalmente del desafío captcha

3. Intervalo de consulta

  • Espere al menos 2 segundos entre verificaciones de resultado
  • No sature la API con solicitudes consecutivas
  • Establezca un tiempo de espera para evitar bucles infinitos (recomendado: 60 segundos)

4. Procesamiento de resultados

  • solution.click es una cadena de índices de celdas de base 0 (orden de fila, de izquierda a derecha, de arriba a abajo) separados por comas
  • Divida por , y convierta a enteros antes de hacer clic en las celdas de cuadrícula correspondientes

5. Lógica de reintento

  • Implemente reintentos para errores temporales como ERROR_NO_SLOT_AVAILABLE
  • Use retroceso exponencial al reintentar
  • Limite el número máximo de intentos de reintento

6. Seguridad de la API key

  • No codifique su API key en el código fuente
  • Use variables de entorno o un gestor de secretos
  • Nunca exponga la API key en el lado del cliente

Enlaces útiles: