---
title: "API batch hébergée en Europe · lots compatibles OpenAI"
description: "Exécutez des milliers de requêtes de chat ou d'embeddings en un seul traitement asynchrone avec une API batch compatible OpenAI, traitée dans l'UE."
canonical: "https://inference.eu/fr/api/batches/"
language: "fr"
---

POST /v1/batches

# API batch : des traitements par lots asynchrones, traités dans l'UE

Le point de terminaison batch exécute de nombreuses requêtes en un seul traitement d'arrière-plan. Vous envoyez un fichier JSONL de requêtes chat completions ou embeddings, créez un lot et récupérez un fichier de résultats à la fin. C'est l'outil adapté aux travaux que personne n'attend : classer un stock de tickets, vectoriser une archive documentaire ou lancer une évaluation pendant la nuit.

[Contacter l'équipe](https://inference.eu/fr/contact/)[Exemple de requête](#example)

1.  01Format d'API: OpenAI
2.  02Centres de données dans l'UE
3.  03Couvert par un seul DPA

POST /v1/batches

```
# ticket-classification.jsonl, one request per line:
# {"custom_id": "ticket-1042", "method": "POST", "url": "/v1/chat/completions",
#  "body": {"model": "gpt-oss-120b", "messages": [{"role": "user", "content": "Classify: ..."}]}}

curl https://api.inference.eu/v1/batches \
  -H "Authorization: Bearer $INFERENCE_EU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input_file_id": "file-7f3c2a",
    "endpoint": "/v1/chat/completions",
    "completion_window": "24h",
    "metadata": {"job": "ticket-backlog-2026-11"}
  }'

# Check progress
curl https://api.inference.eu/v1/batches/batch_91d0e4 \
  -H "Authorization: Bearer $INFERENCE_EU_API_KEY"
```

## Ce que fait le point de terminaison

`POST /v1/batches` crée un traitement à partir d'un fichier déjà envoyé avec `purpose` `batch`. Indiquez son `input_file_id`, l'`endpoint` visé par chaque ligne, comme `/v1/chat/completions`, `/v1/responses` ou `/v1/embeddings`, et `completion_window`, qui vaut `24h`. Le champ facultatif `metadata` permet d'étiqueter le traitement à votre façon.

La réponse est un objet batch avec un `id` et un `status`. Le traitement s'exécute en arrière-plan, à l'écart de votre trafic interactif : un gros stock ne concurrence pas les requêtes qu'attendent vos utilisateurs. Requêtes et résultats ne quittent jamais les centres de données européens.

## Statut et résultats

Interrogez `GET /v1/batches/{batch_id}` pour suivre l'avancement. `status` passe de `validating` à `in_progress` puis `finalizing`, et se termine par `completed`, `failed`, `expired` ou `cancelled`. `request_counts` indique `total`, `completed` et `failed` pour afficher la progression.

Une fois le lot `completed`, `output_file_id` désigne un fichier JSONL. Chaque ligne contient le `custom_id` de votre entrée et une `response` avec le `status_code` et le `body` de réponse habituel. Les lignes ne suivent pas l'ordre d'entrée : rapprochez-les par `custom_id`. Les requêtes en échec vont dans le fichier `error_file_id`. `POST /v1/batches/{batch_id}/cancel` arrête un lot et `GET /v1/batches` liste vos traitements.

## Un flux batch solide en production

Générez le fichier d'entrée depuis votre base de données, avec la clé primaire de l'enregistrement comme `custom_id`. Validez chaque ligne localement, envoyez le fichier, créez le lot et enregistrez son `id` dans votre propre système. Une tâche planifiée vérifie le statut toutes les quelques minutes au lieu de garder une connexion ouverte.

À la fin, téléchargez la sortie, réécrivez les résultats par `custom_id` et rassemblez les erreurs dans un nouveau fichier, plus petit, à relancer. Supprimez ensuite les fichiers d'entrée et de sortie. Un lot d'essai de cinquante lignes détecte les problèmes de prompt ou de schéma avant d'y consacrer un gros traitement.

## Erreurs et cas particuliers

Un lot qui échoue à la validation, à cause d'un JSON mal formé, d'un `custom_id` manquant, d'identifiants en double ou de lignes visant un autre point de terminaison, se termine en `status` `failed` avec une liste `errors` qui précise le problème et la ligne. Corrigez le fichier et soumettez un nouveau lot.

Certaines requêtes peuvent échouer au sein d'un lot par ailleurs réussi, par exemple si un prompt dépasse la fenêtre de contexte : elles figurent dans le fichier d'erreurs sans bloquer le reste. Un lot non terminé dans la fenêtre passe en `expired`, et les résultats des requêtes achevées restent disponibles. Taille des lots et débit dépendent de votre offre ; nous vous les confirmons.

## Batches

Endpoint

POST /v1/batches

Catégorie

Endpoints

Format d'API

OpenAI

Base URL

api.inference.eu/v1

Traitement

Centres de données dans l'UE

Entraînement sur vos données

Jamais

## Batches : questions fréquentes

Les questions que nous posent le plus les achats, les développeurs et les juristes. Il en manque une ? Posez-la-nous directement.

Oui. Le format d'entrée JSONL, la requête \`POST /v1/batches\`, l'objet batch, ses statuts et le format du fichier de sortie suivent la Batch API d'OpenAI. \`client.batches.create\`, \`retrieve\`, \`list\` et \`cancel\` fonctionnent dans les SDK OpenAI avec l'URL de base et la clé d'inference.eu.

Vous pouvez regrouper des requêtes \`/v1/chat/completions\`, \`/v1/responses\` et \`/v1/embeddings\`. Toutes les lignes d'un fichier doivent viser le point de terminaison indiqué dans le champ \`endpoint\` à la création du lot. Prévoyez un lot par point de terminaison et, en général, un modèle par lot.

Les lots se terminent dans la \`completion\_window\` de 24 heures, et beaucoup bien avant. La durée dépend de la taille du traitement, du modèle et de la demande globale. Si vous avez besoin d'un délai garanti pour un traitement récurrent, parlons-en dans le cadre de votre offre.

Dès que personne n'attend la réponse : classification nocturne, résumés en masse, vectorisation d'une archive, fiches produits ou évaluations. Vous n'avez plus à gérer vous-même la concurrence et les reprises, et le travail de masse ne pèse pas sur vos limites interactives. Pour tout ce que l'utilisateur voit immédiatement, gardez les requêtes classiques.

Chaque ligne de sortie contient le \`custom\_id\` de la ligne d'entrée correspondante. Les résultats ne reviennent pas dans l'ordre : faites la jointure sur \`custom\_id\`, idéalement la clé primaire de l'enregistrement dans votre base. Chaque \`custom\_id\` doit être unique dans le fichier.

Le lot se termine quand même, et \`request\_counts.failed\` indique le nombre d'échecs. Ces requêtes sont écrites dans le fichier désigné par \`error\_file\_id\`, chacune avec son \`custom\_id\` et son erreur. Corrigez la cause, créez un nouveau fichier à partir des lignes en échec et soumettez-le comme nouveau lot.

Oui, avec \`POST /v1/batches/{batch\_id}/cancel\`. Le statut passe à \`cancelling\`, puis à \`cancelled\`. Les requêtes terminées avant l'annulation restent disponibles dans le fichier de sortie : le travail déjà effectué n'est pas perdu.

Les fichiers d'entrée et de sortie sont stockés dans des centres de données européens, accessibles uniquement avec les clés de votre organisation, et ne servent jamais à entraîner des modèles. Supprimez-les via l'API Files une fois le traitement terminé ; la conservation des fichiers non supprimés est prévue par votre contrat.

[Poser une question](https://inference.eu/fr/contact/)

## Pages liées

[Présentation de l'API](https://inference.eu/fr/api/)

-   [FilesEnvoyez, listez, téléchargez et supprimez des fichiers avec une API Files compatible OpenAI, pour vos lots et vos outils. Stockage dans l'UE.Endpoints](https://inference.eu/fr/api/files/)
-   [EmbeddingsTransformez du texte en vecteurs pour la recherche, le RAG et le clustering avec une API d'embeddings compatible OpenAI, traitée dans des centres de l'UE.Endpoints](https://inference.eu/fr/api/embeddings/)
-   [Chat completionsEnvoyez vos messages à des modèles open-weight au format chat completions d'OpenAI. Traitement dans des centres de données de l'UE, sans entraînement.Endpoints](https://inference.eu/fr/api/chat-completions/)
-   [Rate limits and errorsFonctionnement des limites de débit et des erreurs de l'API inference.eu : codes HTTP, objet d'erreur, en-têtes de limite et schéma de reprise fiable.Guides](https://inference.eu/fr/api/rate-limits-and-errors/)

## Faites passer vos charges IA sur une infrastructure européenne

Dites-nous quels modèles vous utilisez et votre volume approximatif. Nous répondons sous un jour ouvré avec un tarif et la suite.

-   Réponse sous un jour ouvré
-   Tarif adapté à votre volume
-   DPA prêt à signer
