> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Télécharger un fichier

> Télécharge un fichier d'entrée en lot JSONL pour une création en lot ultérieure.

## Aperçu

Ce point de terminaison fait partie de l'API Batch compatible avec OpenAI de TokenLab. Les travaux en lot utilisent des fichiers JSONL téléchargés, s'exécutent de manière asynchrone et peuvent renvoyer des fichiers de sortie/d'erreur plus tard.

## Modes de fichier pris en charge

TokenLab traite `/v1/files` comme trois modes explicites :

* Fichiers de lot : utilisez `purpose=batch` pour `/v1/batches`.
* Fichiers image/référence : utilisez `purpose=user_data` ou `purpose=vision` pour les requêtes image basées sur fichier.
* Mode Anthropic Files API : ajoutez `anthropic-beta: files-api-2025-04-14` pour le stockage de fichiers natif Anthropic.

## Remarques

* Les fichiers d'entrée en lot doivent utiliser `purpose=batch`.
* `completion_window` est actuellement `24h`.
* L'ordre de sortie n'est pas garanti ; faites toujours correspondre par `custom_id`.
* Le streaming n'est pas pris en charge à l'intérieur des éléments de lot.

## Exemple

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tokenlab.sh/v1/files" \
    -H "Authorization: Bearer sk-your-api-key" \
    -F "purpose=batch" \
    -F "file=@batch-input.jsonl;type=application/jsonl"
  ```
</RequestExample>

## Demande / Réponse

Utilisez le panneau OpenAPI interactif ci-dessus pour le schéma exact.

## Conseils opérationnels

* Utilisez `custom_id` pour la réconciliation idempotente en aval.
* Attendez-vous à ce que `output_file_id` et `error_file_id` ne soient disponibles qu'après que le travailleur finalise le lot.
* La tarification des lots peut différer de la tarification synchrone car les règles de remise `isBatchRequest=true` s'appliquent.

## Entrées de fichiers image

Cette même route `/v1/files` peut aussi téléverser des fichiers image de référence pour `/v1/images/edits`.

* Utilisez `purpose=user_data` ou `purpose=vision`.
* Ajoutez éventuellement `model` pour choisir le modèle d’édition d’image ; la valeur par défaut est `gpt-image-2`.
* Le `file_id` renvoyé est lié au canal amont d’édition d’image sélectionné et peut être réutilisé dans `images[].file_id`.

## Mode Anthropic Files API

Cette même route `/v1/files` prend aussi en charge le chemin Anthropic Files API.

* Ajoutez l’en-tête `anthropic-beta: files-api-2025-04-14` pour basculer en mode Anthropic.
* En mode Anthropic, chargez directement le fichier d’origine et n’envoyez pas `purpose=batch`.
* Le `file_id` renvoyé est lié au même canal/workspace Anthropic officiel et doit être réutilisé dans les requêtes `/v1/messages`.
* Si vous comptez référencer ce fichier dans le contenu d’un message Anthropic, continuez à utiliser les en-têtes natifs Anthropic (`x-api-key`, `anthropic-version` et, si nécessaire, le beta header).

## Exemple de réponse

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "id": "file_abc123",
    "object": "file",
    "bytes": 32768,
    "created_at": 1706000000,
    "filename": "batch-input.jsonl",
    "purpose": "batch"
  }
  ```
</ResponseExample>

## Champs importants

<ResponseField name="id" type="string">Identifiant de fichier utilisé par les API liées.</ResponseField>
<ResponseField name="purpose" type="string">Finalité attribuée au fichier. Les téléversements acceptent `batch`, `user_data` ou `vision`.</ResponseField>
<ResponseField name="bytes" type="integer">Taille du fichier en octets.</ResponseField>
