Un lot regroupe jusqu’à 10 000 complétions de clavardage soumises ensemble à l’API de lot du fournisseur lui-même — la Batch API d’OpenAI, les Message Batches d’Anthropic, le mode lot de Gemini chez Google, les travaux par lots de Mistral, les Batch API d’Alibaba Model Studio et de xAI — avec votre propre clé, au prix de lot du fournisseur, avec une réponse en moins de 24 heures. Tout modèle qui a une entrée :batch au catalogue en accepte un ; cette entrée est le prix du modèle en lot, généralement la moitié du prix en direct.
Soumettre
{
"model": "openai/gpt-5.4",
"requests": [
{"custom_id": "doc-1", "body": {"messages": [{"role": "user", "content": "Summarise: ..."}], "max_tokens": 300}},
{"custom_id": "doc-2", "body": {"messages": [{"role": "user", "content": "Summarise: ..."}], "max_tokens": 300}}
]
}- Un modèle par lot, nommé avec ou sans le suffixe (
openai/gpt-5.4ouopenai/gpt-5.4:batch).provideraccepte les mêmes préférences d’acheminement qu’une complétion de clavardage. - Chaque requête est
{"custom_id", "body"}: un identifiant de 1 à 64 lettres, chiffres,_ou-, unique dans le lot, et un corps de complétion de clavardage sansmodelnistream. Les champs d’acheminement d’un corps (models,provider,plugins,session_id,run_id) sont retirés ; un outil serveur est refusé, parce qu’il s’exécute dans une requête en direct. - Les mêmes règles que le trafic en direct. Chaque texte de message passe vos garde-fous et vos filtres de contenu, et ce qu’un filtre caviarde est ce qui est soumis. La retenue posée sur votre solde est le pire cas de toutes les requêtes ; elle est libérée au règlement du lot.
endpointne peut être que/v1/chat/completionsetcompletion_windowque24h; les deux sont facultatifs. L’en-têteX-Autonomous-Relay-Agentattribue le lot à un agent, comme pour les complétions de clavardage.
Le suivre
Un lot est l’objet batch d’OpenAI : status (in_progress, completed, failed, cancelled ou expired), request_counts, created_at, expires_at et, une fois réglé, usage.cost. Rien ne s’exécute entre vos appels : lire un lot interroge le fournisseur quand la dernière réponse date de plus de 30 secondes, et la première lecture qui le trouve terminé le règle. /results renvoie une ligne JSON par requête — {"custom_id", "response": {"status_code": 200, "body": {...}}, "error": null}, le corps étant une complétion de clavardage — lue chez le fournisseur à mesure qu’elle est envoyée ; tant que le lot s’exécute, c’est un 409. /cancel arrête un lot en cours ; un lot terminé est un 409.
Facturation et données
Un lot est facturé une seule fois, à sa fin, sur la somme de l’usage de ses requêtes réussies au prix :batch — comme une complétion est comptée, avec les mêmes lignes du grand livre. Rien des requêtes ni des résultats n’est conservé ici : le fournisseur les détient sous votre compte, selon sa propre rétention, et la passerelle ne garde que la tenue de livre (le lot de qui, quel fournisseur, combien d’éléments, quel coût), supprimée environ 30 jours après le règlement (Ce que nous conservons).