# General Translation Platform: Téléverser les ressources du projet URL: https://generaltranslation.com/fr/docs/platform/openapi/reference/project/upload-assets.mdx --- title: Téléverser les ressources du projet description: Téléversez des ressources de police pour les workflows Lottie de General Translation au sein d’une organisation. Référence de l’API pour téléverser les ressources du projet. method: POST --- Téléverse des polices OpenType ou TrueType via un projet et les rend disponibles pour les workflows de traduction Lottie de l’organisation associée. ## Vue d’ensemble [#overview] ```http POST https://api2.gtx.dev/v2/project/assets ``` **Permission** `project:files:write` · **Limite de débit** moyenne (120/min) ## Fonctionnement [#how-it-works] * Chaque requête accepte de 1 à 50 polices. * Chaque police doit être encodée en base64 valide, avoir un nom de fichier avec l’extension `.ttf` ou `.otf`, et ne pas dépasser 20 Mo une fois décodée. * Le projet détermine quelle organisation est propriétaire des ressources. Les polices téléversées sont conservées entre les tâches de traduction de cette organisation. * Le stockage est adressé par contenu. Téléverser à nouveau la même police avec le même nom de fichier est idempotent. * Si une ressource ne peut pas être stockée, la requête échoue. Vous pouvez relancer sans risque l’intégralité de la requête. ## Requête [#request] ### En-têtes | En-tête | Description | Obligatoire | | ----------------- | ------------------------------------------------------------------------- | ----------- | | `x-gt-api-key` | Clé API de projet ou d’organisation. | Oui | | `x-gt-project-id` | ID de projet. Obligatoire lors de l’utilisation d’une clé d’organisation. | Non | ### Corps de la requête **Type de contenu** `application/json` | Champ | Description | Type | Facultatif | Par défaut | | ------------------- | ------------------------------------------- | ---------- | ---------- | ---------- | | [`assets`](#assets) | Ressources de police à téléverser (1 à 50). | `object[]` | Non | — | #### `assets` **Type** `object[]` · **Obligatoire** | Champ | Description | Type | Facultatif | Par défaut | | ----------- | -------------------------------------------------------------------------------- | -------- | ---------- | ---------- | | `assetType` | Type de ressource. Seul `FONT` est pris en charge. | `'FONT'` | Non | — | | `content` | Contenu de la police encodé en Base64, jusqu’à 20 Mo après décodage. | `string` | Non | — | | `fileName` | Nom du fichier de police se terminant par `.ttf` ou `.otf` (1 à 255 caractères). | `string` | Non | — | ## Réponse [#response] **État** `201 Created` ```json title="Response" { "assets": [ { "id": "asset_...", "assetKey": "gt/orgs/org_.../fonts/...", "fileName": "BrandSans.ttf" } ], "count": 1 } ``` ## Erreurs [#errors] | État | Cause | | ----- | -------------------------------------------------------------------------------------------------------------------------------------- | | `400` | Corps de la requête invalide, base64 invalide, ressource vide, extension de fichier non prise en charge ou ressource de plus de 20 Mo. | | `401` | Clé API manquante ou invalide. | | `403` | La clé API ne dispose pas de l’autorisation `project:files:write`. | | `404` | Projet introuvable. | | `429` | Limite de débit dépassée. | | `500` | Impossible de stocker une ressource. Réessayez la requête complète. | ## Exemple [#example] ```bash FONT_BASE64=$(base64 < ./BrandSans.ttf | tr -d '\n') curl -X POST https://api2.gtx.dev/v2/project/assets \ -H "x-gt-api-key: gtx-api-..." \ -H "Content-Type: application/json" \ -d "{ \"assets\": [ { \"assetType\": \"FONT\", \"content\": \"$FONT_BASE64\", \"fileName\": \"BrandSans.ttf\" } ] }" ```