# General Translation Platform: Téléverser des fichiers source URL: https://generaltranslation.com/fr/docs/platform/openapi/reference/files/upload-source.mdx --- title: Téléverser des fichiers source description: Téléversez un ou plusieurs fichiers source dans un projet General Translation avant de mettre la traduction en file d’attente. Référence de l’API pour le téléversement de fichiers source. method: POST --- Téléverse des fichiers source dans un projet afin de pouvoir les mettre en file d’attente pour la traduction. Envoyez le contenu des fichiers en base64, de 1 à 100 fichiers par requête. ## Vue d’ensemble [#overview] ```http POST https://api2.gtx.dev/v2/project/files/upload-files ``` **Autorisation** `project:files:write` · **Limite de requêtes** Moyenne (120/min) Téléversez les fichiers source (non traduits) d’un projet. Pour téléverser des fichiers déjà traduits, utilisez [Téléverser des traductions](/docs/platform/openapi/reference/files/upload-translations). Pour traduire ensuite les fichiers téléversés, consultez [Mettre les traductions en file d’attente](/docs/platform/openapi/reference/translation/queue). ## Fonctionnement [#how-it-works] * Le `content` de chaque fichier est encodé en base64 puis décodé côté serveur ; toute valeur base64 invalide est rejetée. * Si `fileId` est absent, il est dérivé du hachage du `fileName` ; si `versionId` est absent, il est dérivé du hachage du contenu du fichier. Ainsi, téléverser à nouveau un contenu identique est idempotent pour une version donnée. * Les fichiers sont rattachés à la branche par défaut, sauf si un `branchId` valide est fourni. Un `branchId` inconnu renvoie `400`. * Si `sourceLocale` est envoyé et diffère du paramètre régional par défaut actuel du projet, le paramètre régional par défaut du projet est mis à jour. ## Requête [#request] ### En-têtes | En-tête | Description | Obligatoire | | ----------------- | ------------------------------------------------------------------------- | ----------- | | `x-gt-api-key` | Clé API du projet ou de l’organisation. | Oui | | `x-gt-project-id` | ID du projet. Obligatoire lors de l’utilisation d’une clé d’organisation. | Non | ### Corps **Type de contenu** `application/json` | Champ | Description | Type | Facultatif | Par défaut | | --------------- | ----------------------------------------------------- | ---------- | ---------- | --------------------------------------- | | [`data`](#data) | Tableau de fichiers à téléverser (1–100). | `object[]` | Non | — | | `sourceLocale` | Paramètre régional d’origine des fichiers téléversés. | `string` | Oui | paramètre régional par défaut du projet | #### `data` [#data] **Type** `object[]` · **Obligatoire** Chaque élément est `{ "source": { ... } }`, où `source` comporte les champs suivants : | Champ | Description | Type | Facultatif | Par défaut | | ---------------- | ---------------------------------------------------------------------------------- | -------- | ---------- | --------------------- | | `content` | Contenu du fichier encodé en Base64. La taille maximale de fichier s'applique. | `string` | Non | — | | `fileName` | Nom du fichier ; ne peut pas être vide. | `string` | Non | — | | `fileFormat` | Identifiant du format de fichier (par exemple, `JSON`, `MDX`). | `string` | Non | — | | `locale` | Paramètre régional du contenu source ; ne peut pas être vide. | `string` | Non | — | | `dataFormat` | Format des données du contenu structuré. | `string` | Oui | — | | `fileId` | Identifiant de fichier stable. | `string` | Oui | Hachage de `fileName` | | `versionId` | Identifiant de version pour ce contenu. | `string` | Oui | Hachage du contenu | | `branchId` | Branche à laquelle rattacher le fichier. | `string` | Oui | Branche par défaut | | `formatMetadata` | Métadonnées supplémentaires spécifiques au format. | `object` | Oui | — | ## Réponse [#response] **État** `201 Created` ```json title="Response" { "uploadedFiles": [ { "branchId": "br_...", "fileId": "file_...", "versionId": "ver_...", "fileName": "en/common.json", "fileFormat": "JSON", "dataFormat": "JSON" } ], "count": 1, "message": "Successfully uploaded 1 source file(s)" } ``` ## Erreurs [#errors] | État | Cause | | ----- | ----------------------------------------------------------------------------------------------------------------------------------- | | `400` | Corps de la requête invalide, paramètre régional/format invalide, échec du décodage, fichier trop volumineux ou `branchId` inconnu. | | `401` | Clé API manquante ou invalide. | | `403` | La clé API ne dispose pas de `project:files:write`. | | `429` | Limite de requêtes dépassée. | | `503` | Serveur occupé ; réessayez avec un délai croissant. | ## Exemple [#example] ```bash curl -X POST https://api2.gtx.dev/v2/project/files/upload-files \ -H "x-gt-api-key: gtx-api-..." \ -H "Content-Type: application/json" \ -d '{ "sourceLocale": "en", "data": [ { "source": { "content": "eyJoZWxsbyI6ICJIZWxsbyJ9", "fileName": "en/common.json", "fileFormat": "JSON", "locale": "en" } } ] }' ```