Skip to content
API
Captcha em Grelha
Amazon

Amazon Grid Captcha

Visão geral

Amazon Grid Captcha é um captcha de seleção em grade: a página exibe uma pergunta/instrução e uma grade de blocos. O solucionador deve retornar quais células da grade correspondem à pergunta (índices de base 0, ordem de linha: da esquerda para a direita, de cima para baixo).

🔲

O campo task.image pode codificar a imagem de grade como uma única string Base64 ou como 9 imagens separadas de 1x1 (Base64, separadas por |)

Amazon Grid Captcha UI example

1. Criar tarefa

Formato de envio de imagem

Imagem de grade 3x3 Amazon Grid Captcha request payload (grid) Ou 9 imagens separadas de 1x1

Solicitação

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

Parâmetros

Nome do parâmetroTipo de dadoObrigatório?Descrição
clientKeystringyesAPI key
task.typestringyesGridCaptcha
task.subTypestringyesamzn
task.imagestringyesImagem de grade codificada em Base64
task.otherstringyesO texto da pergunta/instrução exibido ao usuário (ex. "the curtains")

Exemplo de solicitação

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"
  }
}

Resposta

Quando bem-sucedido, o servidor retorna errorId = 0 e taskId

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

2. Obter resultado

Solicitação

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

Parâmetros

Nome do parâmetroTipo de dadoObrigatório?Descrição
clientKeystringyesAPI key
taskIdstringyesTaskId obtido da etapa (1)

Exemplo de solicitação

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

Resposta

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

solution.click é uma string de índices de células de base 0 (ordem de linha) separados por vírgulas para clicar na grade.

Explicação dos status

  • errorId = 0 e status = ready: Resolvido com sucesso, leia os índices de células em solution.click
  • errorId = 0 e status = processing: Ainda resolvendo, aguarde 2 segundos e verifique novamente
  • errorId > 0: Erro do sistema, verifique errorCode e errorDescription

Exemplos de integração

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()
 
    # Passo 1: Criar tarefa
    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']
 
    # Passo 2: Verificar 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('Células para clicar:', indices)

Códigos de erro comuns

Código de erroDescriçãoNotas
0successSucesso
1processingProcessando
2missing required fieldsCampos obrigatórios ausentes, verifique os parâmetros
3task not supportedTipo de tarefa não suportado
4task creation failedFalha na criação da tarefa
5client key does not existAPI key não existe, verifique a chave
6insufficient account balanceSaldo insuficiente, adicione créditos
7task failed, please create a new taskTarefa falhou, crie uma nova tarefa
8task ID does not existID da tarefa não existe

Melhores práticas

Para melhores resultados ao usar a API Achicaptcha para Amazon Grid Captcha, siga estes princípios:

1. Codificação da imagem

  • Envie apenas a imagem de grade como uma única string Base64
  • Não inclua o prefixo data:image/...;base64, — apenas Base64 bruto
  • Certifique-se de que a imagem esteja completamente carregada e codificada antes de enviar

2. Parâmetro task.other

  • Passe o texto exato da pergunta exibido ao usuário (ex. "the curtains")
  • Este campo é obrigatório — omiti-lo causará resultados incorretos
  • Copie a string da pergunta literalmente do desafio captcha

3. Intervalo de verificação

  • Aguarde pelo menos 2 segundos entre as verificações de resultado
  • Não sobrecarregue a API com solicitações consecutivas
  • Defina um tempo limite para evitar loops infinitos (recomendado: 60 segundos)

4. Processamento de resultados

  • solution.click é uma string de índices de células de base 0 (ordem de linha, da esquerda para a direita, de cima para baixo) separados por vírgulas
  • Divida por , e converta para inteiros antes de clicar nas células de grade correspondentes

5. Lógica de nova tentativa

  • Implemente novas tentativas para erros temporários como ERROR_NO_SLOT_AVAILABLE
  • Use backoff exponencial ao tentar novamente
  • Limite o número máximo de tentativas

6. Segurança da chave de API

  • Não codifique sua chave de API no código-fonte
  • Use variáveis de ambiente ou um gerenciador de segredos
  • Nunca exponha a chave de API no lado do cliente

Links úteis: