---
title: "API Files hébergée en Europe · envoyer des fichiers de lots"
description: "Envoyez, listez, téléchargez et supprimez des fichiers avec une API Files compatible OpenAI, pour vos lots et vos outils. Stockage dans l'UE."
canonical: "https://inference.eu/fr/api/files/"
language: "fr"
---

POST /v1/files

# API Files : envoyer et gérer des fichiers, stockés dans l'UE

Les points de terminaison files stockent les entrées et les sorties des travaux qui ne tiennent pas dans une seule requête. Vous envoyez un fichier JSONL de requêtes pour un traitement par lots, vous téléchargez les résultats à la fin, puis vous supprimez les deux. Ces points de terminaison suivent l'API Files d'OpenAI, et les fichiers sont stockés dans des centres de données européens.

[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/files

```
# Upload a JSONL file of requests for a batch job
curl https://api.inference.eu/v1/files \
  -H "Authorization: Bearer $INFERENCE_EU_API_KEY" \
  -F purpose="batch" \
  -F file="@ticket-classification.jsonl"

# {"id": "file-7f3c2a", "object": "file", "bytes": 482113, "created_at": 1793620800,
#  "filename": "ticket-classification.jsonl", "purpose": "batch"}
```

## Ce que font les points de terminaison

`POST /v1/files` envoie un fichier en `multipart/form-data` avec deux champs : `file` et `purpose`. Utilisez `purpose` `batch` pour une entrée de lot, ou `user_data` pour un fichier qu'un outil comme l'exécution de code doit lire. La réponse est un objet fichier avec `id`, `bytes`, `filename`, `purpose` et `created_at`. C'est l'`id` qui désigne ensuite le fichier partout ailleurs.

`GET /v1/files` liste vos fichiers, `GET /v1/files/{file_id}` renvoie un objet, `GET /v1/files/{file_id}/content` télécharge le contenu et `DELETE /v1/files/{file_id}` le supprime. Les fichiers de sortie et d'erreurs des lots apparaissent dans la même liste avec `purpose` `batch_output`.

## Préparer un fichier d'entrée de lot

Un fichier d'entrée de lot est au format JSON Lines : une requête par ligne, chacune avec un `custom_id` de votre choix, une `method` `POST`, l'`url` visée, comme `/v1/chat/completions` ou `/v1/embeddings`, et un `body` identique à ce que vous enverriez à ce point de terminaison. Toutes les lignes d'un fichier doivent viser le même point de terminaison.

Choisissez un `custom_id` parlant, comme un numéro de ticket ou un identifiant de document : les résultats reviennent dans n'importe quel ordre et c'est cette valeur qui permet de les rapprocher. Validez le fichier avant l'envoi : chaque ligne doit être un JSON valide, et une seule ligne mal formée peut faire échouer la validation de tout le lot.

## Stockage, conservation et nettoyage

Les fichiers 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. Traitez-les comme toute autre copie de vos données : supprimez les fichiers d'entrée une fois le lot terminé et les résultats récupérés, puis les fichiers de sortie une fois exploités.

Une courte étape de nettoyage à la fin de chaque traitement suffit : la liste reste lisible et la quantité de données sensibles en stockage reste limitée. La durée de conservation des fichiers non supprimés dépend de votre contrat, et nous vous la confirmons.

## Erreurs et cas particuliers

Un envoi sans `purpose`, ou avec une valeur non prise en charge, renvoie une erreur 400. Un fichier trop volumineux est également refusé : répartissez les grosses entrées sur plusieurs fichiers et plusieurs lots. La taille maximale dépend de votre offre et nous vous la confirmons.

Un identifiant de fichier inexistant, ou appartenant à une autre organisation, renvoie un 404. Impossible de télécharger un fichier encore en cours d'écriture, comme la sortie d'un lot non terminé : attendez le statut `completed`. Supprimer un fichier utilisé par un lot en cours peut faire échouer ce lot ; ne supprimez les entrées qu'après coup.

## Files

Endpoint

POST /v1/files

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

## Files : 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. L'envoi, la liste, la consultation, le téléchargement et la suppression suivent l'API Files d'OpenAI, avec les mêmes champs multipart et le même objet fichier. \`client.files.create\`, \`client.files.content\` et \`client.files.delete\` fonctionnent dans les SDK OpenAI avec l'URL de base et la clé d'inference.eu.

\`batch\` pour les entrées de lots au format JSONL et \`user\_data\` pour les fichiers qu'un outil doit lire, comme un tableur transmis à l'exécution de code. Les fichiers de sortie et d'erreurs créés par un lot portent \`batch\_output\`. L'ajustement de modèles ne fait pas partie de l'API publique ; contactez-nous pour des modèles sur mesure.

Dans des centres de données européens. Les fichiers ne sont accessibles qu'avec les clés d'API de votre organisation et ne servent jamais à entraîner des modèles. Supprimez-les quand vous n'en avez plus besoin ; la conservation des fichiers non supprimés dépend de votre contrat et vous est confirmée par écrit.

La taille maximale d'envoi et le stockage total dépendent de votre offre, et nous vous les confirmons. Pour de très gros traitements, répartissez l'entrée sur plusieurs fichiers JSONL et soumettez un lot par fichier. Il devient aussi plus simple de relancer une partie qui échoue.

Quand un lot atteint \`completed\`, son \`output\_file\_id\` désigne un fichier JSONL avec un résultat par ligne. Téléchargez-le avec \`GET /v1/files/{output\_file\_id}/content\`. Si certaines requêtes ont échoué, \`error\_file\_id\` désigne un fichier distinct avec l'erreur de chaque \`custom\_id\` concerné.

JSON Lines, une requête par ligne. Chaque ligne contient \`custom\_id\`, \`method\` (\`POST\`), \`url\` (par exemple \`/v1/chat/completions\`) et \`body\`, le corps de requête habituel de ce point de terminaison. Utilisez le même point de terminaison et le même modèle pour toutes les lignes d'un fichier.

Vous pouvez envoyer des fichiers avec \`purpose\` \`user\_data\` pour les outils qui les lisent. Si vous voulez le texte d'un PDF ou d'un document Office, utilisez l'outil de conversion de documents : il le transforme en Markdown, prêt à découper, vectoriser ou insérer dans un prompt.

Listez-les avec \`GET /v1/files\`, puis appelez \`DELETE /v1/files/{file\_id}\` pour chacun. Chaque suppression renvoie un objet avec l'\`id\` et \`deleted: true\`. Faites-en la dernière étape de chaque traitement par lots pour que les entrées et sorties ne restent pas stockées plus longtemps que nécessaire.

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

## Pages liées

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

-   [BatchesExé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.Endpoints](https://inference.eu/fr/api/batches/)
-   [Document conversionConvertissez vos fichiers PDF, Word, PowerPoint et Excel en Markdown propre pour le RAG et les prompts. Tableaux, titres et scans, traités dans l'UE.Outils](https://inference.eu/fr/api/document-conversion/)
-   [Code executionLaissez les modèles ouverts écrire et exécuter du Python en bac à sable grâce à l'outil code\_interpreter de l'API Responses. Analyse de données dans l'UE.Outils](https://inference.eu/fr/api/code-execution/)

## 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
