NouveautésNouveau

Envoyez jusqu’à 500 tâches en une seule requête

API
Une requête par lot avec trois tâches pour des moteurs différents et la réponse qui liste chaque tâche en file

L’endpoint de lot met en file jusqu’à 500 tâches, tous moteurs confondus, en un seul appel et renvoie le résultat de chacune.

Ce que vous obtenez

  • POST /v1/async/task/batch accepte un tableau de 500 tâches au maximum, chacune au même format qu’une tâche unique.
  • Les moteurs se combinent librement : un seul appel envoie un ensemble de prompts à ChatGPT, Gemini et Perplexity en même temps.
  • results[] rend compte de chaque élément séparément : la tâche créée, ou la raison du refus de cet élément.
  • idempotencyKey s’applique élément par élément : un lot renvoyé retourne les tâches déjà créées.

Fonctionnement

Un lot bien formé répond toujours 200. Chaque élément est vérifié séparément : un prompt mal formé apparaît dans sa propre entrée de results[] et le reste du lot entre dans la file. Chaque tâche créée s’exécute, se termine et se facture exactement comme une tâche unique, et chacune envoie son propre webhook.

Avec les lots, des milliers d’appels HTTP se réduisent à quelques-uns, et les traitements planifiés restent rapides et simples.

Cas d’usage

  • Envoyez chaque matin tout un ensemble de prompts à plusieurs moteurs en un seul appel.
  • Chargez une longue liste de mots-clés en quelques requêtes et laissez la file la traiter.

Envoyer la requête

Envoyez jusqu’à 500 tâches dans un seul tableau JSON, chacune sous la même forme qu’une tâche unique. Moteurs et pays se combinent librement dans un même lot.

curl -X POST https://api.querying.ai/v1/async/task/batch \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "CHATGPT",
      "payload": { "prompt": "best CRM for startups", "country": "US" }
    },
    {
      "taskType": "GEMINI",
      "payload": { "prompt": "best CRM for startups", "country": "US" }
    },
    {
      "taskType": "PERPLEXITY",
      "payload": { "prompt": "best CRM for startups", "country": "US" }
    }
  ]'

Réponse

L’appel répond 200 avec une entrée par tâche, dans l’ordre d’envoi. Les ID de tâche sont abrégés ici.

JSON
{
  "success": true,
  "summary": { "total": 3, "succeeded": 3, "failed": 0 },
  "results": [
    {
      "success": true,
      "index": 0,
      "task": {
        "id": "…",
        "taskType": "CHATGPT",
        "status": "QUEUED",
        "priority": 1,
        "createdAt": "…"
      },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
    },
    {
      "success": true,
      "index": 1,
      "task": {
        "id": "…",
        "taskType": "GEMINI",
        "status": "QUEUED",
        "priority": 1,
        "createdAt": "…"
      },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
    },
    {
      "success": true,
      "index": 2,
      "task": {
        "id": "…",
        "taskType": "PERPLEXITY",
        "status": "QUEUED",
        "priority": 1,
        "createdAt": "…"
      },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
    }
  ]
}
summaryobject
Bilan du lot : total, succeeded et failed.
resultsarray
Une entrée par tâche, dans l’ordre d’envoi : index, success et la task en file, ou error avec son code.

Recevoir le résultat

La requête renvoie aussitôt la tâche avec status QUEUED. Interrogez GET /v1/async/task/{id} jusqu’à ce que status vaille COMPLETED ou FAILED, ou ajoutez webhook.url pour recevoir la tâche terminée sur votre serveur, avec les mêmes task, credits et response. Les résultats restent disponibles 24 heures après la fin de la tâche.

curl https://api.querying.ai/v1/async/task/$TASK_ID \
  -H "Authorization: Bearer $QUERYING_API_KEY"

Erreurs

Le lot entier répond 400 VALIDATION_ERROR quand le corps est un tableau vide ou dépasse 500 éléments, et 413 au-delà de 8 Mio. Dans un lot de bonne taille, un élément au-delà de la concurrence de votre plan ou de la limite de file du moteur revient avec success à false et son code dans error.code, et les autres entrent dans la file. Renvoyez ces éléments après une courte attente.

PLAN_CONCURRENCY_LIMITHTTP 429
Vos tâches en file et en cours ont atteint la limite du plan : 2 avec l’offre gratuite, 10 avec Basic, 25 avec Pro, 50 avec Scale et 100 avec Max. Renvoyez après Retry-After secondes.
QUEUE_BACKPRESSUREHTTP 429
La file du moteur est pleine pour le moment. Renvoyez après Retry-After secondes.
VALIDATION_ERRORHTTP 400
Un champ manque ou sort des valeurs admises. details indique le champ.
PAYLOAD_TOO_LARGEHTTP 413
Le corps dépasse 1 Mio, ou 8 Mio pour un lot.

Tarif

Un lot coûte la somme de ses tâches au prix de chaque moteur, et chaque tâche est facturée lorsqu’elle se termine.

Autres nouveautés

Recevez les nouveautés

Recevez les mises à jour par e-mail.

Flux RSS