Skip to content
API
Captcha Grille
Amazon

Amazon Grid Captcha

Aperçu

Amazon Grid Captcha est un captcha de sélection en grille : la page affiche une question/invite et une grille de tuiles. Le solveur doit renvoyer quelles cellules de la grille correspondent à la question (indices de base 0, ordre ligne par ligne : de gauche à droite, de haut en bas).

🔲

Le champ task.image peut encoder l'image de grille comme une seule chaîne Base64 ou comme 9 images séparées de 1x1 (Base64, séparées par |)

Amazon Grid Captcha UI example

1. Créer une tâche

Format d'envoi d'image

Image de grille 3x3 Amazon Grid Captcha request payload (grid) Ou 9 images séparées de 1x1

Requête

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

Paramètres

Nom du paramètreType de donnéesRequis ?Description
clientKeystringyesAPI key
task.typestringyesGridCaptcha
task.subTypestringyesamzn
task.imagestringyesImage de grille encodée en Base64
task.otherstringyesLe texte de la question/invite affiché à l'utilisateur (ex. "the curtains")

Exemple de requête

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

Réponse

En cas de succès, le serveur renvoie errorId = 0 et taskId

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

2. Obtenir le résultat

Requête

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

Paramètres

Nom du paramètreType de donnéesRequis ?Description
clientKeystringyesAPI key
taskIdstringyesTaskId obtenu à l'étape (1)

Exemple de requête

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

Réponse

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

solution.click est une chaîne d'indices de cellules de base 0 (ordre ligne par ligne) séparés par des virgules à cliquer dans la grille.

Explication des statuts

  • errorId = 0 et status = ready : Résolu avec succès, lire les indices de cellules dans solution.click
  • errorId = 0 et status = processing : En cours de résolution, attendre 2 secondes et interroger à nouveau
  • errorId > 0 : Erreur système, vérifier errorCode et errorDescription

Exemples d'intégration

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()
 
    # Étape 1 : Créer la tâche
    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']
 
    # Étape 2 : Interroger le résultat
    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"
 
# Utilisation
indices = solve_amzn('grid.png', 'the curtains', 'YOUR_API_KEY')
print('Cellules à cliquer :', indices)

Codes d'erreur courants

Code d'erreurDescriptionNotes
0successSuccès
1processingEn cours de traitement
2missing required fieldsChamps requis manquants, vérifier les paramètres
3task not supportedType de tâche non supporté
4task creation failedÉchec de création de tâche
5client key does not existAPI key inexistante, vérifier la clé
6insufficient account balanceSolde insuffisant, ajouter des crédits
7task failed, please create a new taskTâche échouée, créer une nouvelle tâche
8task ID does not existID de tâche inexistant

Meilleures pratiques

Pour de meilleurs résultats lors de l'utilisation de l'API Achicaptcha pour Amazon Grid Captcha, suivez ces principes :

1. Encodage de l'image

  • Envoyez uniquement l'image de grille comme une seule chaîne Base64
  • N'incluez pas le préfixe data:image/...;base64, — Base64 brut uniquement
  • Assurez-vous que l'image est entièrement chargée et encodée avant l'envoi

2. Paramètre task.other

  • Passez le texte exact de la question affiché à l'utilisateur (ex. "the curtains")
  • Ce champ est obligatoire — l'omettre causera des résultats incorrects
  • Copiez la chaîne de question telle quelle depuis le défi captcha

3. Intervalle d'interrogation

  • Attendez au moins 2 secondes entre les vérifications de résultat
  • Ne surchargez pas l'API avec des requêtes consécutives
  • Définissez un délai d'expiration pour éviter les boucles infinies (recommandé : 60 secondes)

4. Traitement des résultats

  • solution.click est une chaîne d'indices de cellules de base 0 (ordre ligne par ligne, de gauche à droite, de haut en bas) séparés par des virgules
  • Divisez par , et convertissez en entiers avant de cliquer sur les cellules de grille correspondantes

5. Logique de nouvelle tentative

  • Implémentez des nouvelles tentatives pour les erreurs temporaires comme ERROR_NO_SLOT_AVAILABLE
  • Utilisez un recul exponentiel lors des nouvelles tentatives
  • Limitez le nombre maximum de tentatives

6. Sécurité de la clé API

  • Ne codez pas en dur votre clé API dans le code source
  • Utilisez des variables d'environnement ou un gestionnaire de secrets
  • N'exposez jamais la clé API côté client

Liens utiles :