Passer au contenu principal
Trois endpoints créent de nombreuses tâches en une seule requête. Chacun crée des tâches ordinaires : polling, webhooks, crédits et limites du plan sont les mêmes que pour une tâche unitaire.

Comparer les trois endpoints

Lequel utiliser

  • Jusqu’à 500 tâches, et vous gérez les nouvelles tentatives : POST /v1/async/task/batch. Vous recevez l’id de chaque tâche dans la réponse.
  • Plus de tâches que la concurrence de votre plan, ou un job quotidien de plusieurs milliers : POST /v1/batches. Le serveur conserve les éléments et les injecte au rythme permis par la limite de votre plan et la file de chaque moteur : vous n’avez pas à réessayer les 429 ni les 503 vous-même.
  • Un même prompt posé depuis de nombreux points autour d’un lieu : POST /v1/async/task/grid.

POST /v1/async/task/batch

Envoyez un tableau de jusqu’à 500 requêtes de tâche (référence). Les moteurs peuvent être mélangés.
Une requête bien formée renvoie 200. results[i].index correspond à la position dans votre tableau, et chaque résultat contient soit task, soit error :
La requête entière est refusée, sans création de tâche, dans ces cas : Un idempotencyKey répété renvoie la tâche existante comme un succès. Consultez Idempotence.

POST /v1/batches

Envoyez jusqu’à 10 000 éléments (référence). Chaque élément accepte les champs de tâche taskType, payload, priority et idempotencyKey, plus un customId facultatif (jusqu’à 128 caractères) renvoyé dans les résultats. Définissez webhook.url sur le lot, pas sur les éléments.
La réponse est 202 avec le lot. Les premiers éléments sont déjà soumis :

Règles de l’enveloppe

Validation tout ou rien

Chaque élément subit les mêmes contrôles qu’une tâche unitaire avant tout stockage : champs, moteurs autorisés de la clé, moteurs privés, endpoints dédiés, région et payload.location. Si un élément échoue, la réponse est 400 VALIDATION_ERROR, rien n’est stocké, et details liste jusqu’à 50 éléments en échec :

Exécution des éléments

Le lot libère les éléments sous forme de tâches quand la limite de votre plan et la file du moteur ont de la place. Les comptes passent à tour de rôle : un gros lot ne bloque pas un petit lot d’un autre compte. Chaque élément libéré passe par la même admission qu’une tâche unitaire : il pose un blocage de crédits et compte dans la limite quotidienne de crédits de la clé. Quand un élément est refusé, le code détermine la suite : Le lot passe à COMPLETED quand aucun élément n’est en attente et que toutes les tâches sont terminées. Avec webhook.url, le serveur publie ensuite l’événement batch.completed.

Lire la progression et les résultats

GET /v1/batches/{id} renvoie le lot avec counts par statut d’élément : pending, queued, processing, completed, failed, rejected. L’interroger fait aussi avancer les éléments en attente.
GET /v1/batches/{id}/items liste les éléments dans l’ordre de soumission :
Un élément REJECTED porte error: { code, message }. Les corps de résultat ne sont inclus que pendant la fenêtre de polling de 24 heures décrite dans Tâches asynchrones. Consultez aussi Obtenir un lot et Lister les éléments d’un lot.

POST /v1/async/task/grid

Posez un même prompt depuis chaque point d’une grille carrée autour d’un centre (référence). Chaque point devient une tâche avec ce point comme payload.location : le moteur doit donc accepter une localisation : CHATGPT, GEMINI, GOOGLE, AIMODE ou GOOGLE_SERP. N’envoyez pas payload.location vous-même.
La ligne 0 est le bord nord et la colonne 0 le bord ouest. La réponse renvoie grid (avec id et spacingMeters), un summary et les points dans l’ordre des lignes, chacun avec row, col, location et soit task, soit error. Le point central est admis en premier, seul. S’il est refusé (par exemple 422 LOCATION_UNSUPPORTED, 403 KEY_SCOPE_DENIED, 402 INSUFFICIENT_CREDITS ou un plan saturé), cette erreur devient la réponse pour toute la grille et aucune tâche n’est créée. Les points suivants refusés faute de capacité échouent sur place avec success: false. Relisez une grille avec GET /v1/async/task/grid/{id}. Ajoutez ?include=response pour obtenir les résultats des tâches terminées. Les points jamais admis sont absents, et l’id de grille d’un autre compte renvoie 404. Renvoyer la même grille sous le même id n’admet que les points manquants ; consultez Idempotence.

Étapes suivantes

Idempotence

Comment chaque endpoint traite une clé répétée.

Crédits et limites

Concurrence du plan et cadencement.