# General Translation Platform: Cargar recursos del Project URL: https://generaltranslation.com/es/docs/platform/openapi/reference/project/upload-assets.mdx --- title: Cargar recursos del Project description: Carga recursos de fuentes para los flujos de trabajo de Lottie de General Translation en una Organization. Referencia de la API para cargar recursos del Project. method: POST --- Carga fuentes OpenType o TrueType a través de un Project y las pone a disposición de los flujos de trabajo de traducción de Lottie de toda la Organization. ## Descripción general [#overview] ```http POST https://api2.gtx.dev/v2/project/assets ``` **Permiso** `project:files:write` · **Límite de solicitudes** medio (120/min) ## Cómo funciona [#how-it-works] * Cada solicitud admite de una a 50 fuentes. * Cada fuente debe estar codificada en base64 de forma válida, tener un nombre de archivo `.ttf` u `.otf` y decodificarse a un tamaño máximo de 20 MB. * El Project determina qué Organization es propietaria de los recursos. Las fuentes cargadas persisten en los trabajos de traducción de esa Organization. * El almacenamiento se direcciona por contenido. Volver a cargar la misma fuente con el mismo nombre de archivo es idempotente. * Si no se puede almacenar algún recurso, la solicitud falla. Puede volver a intentar toda la solicitud de forma segura. ## Solicitud [#request] ### Cabeceras | Cabecera | Descripción | Obligatorio | | ----------------- | ------------------------------------------------------------- | ----------- | | `x-gt-api-key` | Clave de API de Project u Organization. | Sí | | `x-gt-project-id` | ID de Project. Obligatorio al usar una clave de Organization. | No | ### Cuerpo **Tipo de contenido** `application/json` | Campo | Descripción | Tipo | Opcional | Predeterminado | | ------------------- | ------------------------------------------- | ---------- | -------- | -------------- | | [`assets`](#assets) | Recursos de fuentes que se cargarán (1–50). | `object[]` | No | — | #### `assets` **Tipo** `object[]` · **Obligatorio** | Campo | Descripción | Tipo | Opcional | Predeterminado | | ----------- | ----------------------------------------------------------------------------------- | -------- | -------- | -------------- | | `assetType` | Tipo de recurso. Solo se admite `FONT`. | `'FONT'` | No | — | | `content` | Contenido de la fuente codificado en Base64, de hasta 20 MB tras la decodificación. | `string` | No | — | | `fileName` | Nombre del archivo de fuente con extensión `.ttf` u `.otf` (de 1 a 255 caracteres). | `string` | No | — | ## Respuesta [#response] **Estado** `201 Created` ```json title="Response" { "assets": [ { "id": "asset_...", "assetKey": "gt/orgs/org_.../fonts/...", "fileName": "BrandSans.ttf" } ], "count": 1 } ``` ## Errores [#errors] | Estado | Causa | | ------ | ------------------------------------------------------------------------------------------------------------------------------------------ | | `400` | Cuerpo de la solicitud no válido, base64 no válido, un recurso vacío, una extensión de archivo no compatible o un recurso de más de 20 MB. | | `401` | Falta una clave de API o no es válida. | | `403` | La clave de API no tiene `project:files:write`. | | `404` | No se encontró el Project. | | `429` | Se superó el límite de solicitudes. | | `500` | No se pudo almacenar un recurso. Vuelve a intentar la solicitud completa. | ## Ejemplo [#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\" } ] }" ```