# General Translation Platform: Загрузка ресурсов проекта URL: https://generaltranslation.com/ru/docs/platform/openapi/reference/project/upload-assets.mdx --- title: Загрузка ресурсов проекта description: Загрузка ресурсов шрифтов для рабочих процессов Lottie в General Translation в организация. Справочник API для загрузки ресурсов проекта. method: POST --- Загружает шрифты OpenType или TrueType через проект и делает их доступными для рабочих процессов перевода Lottie во всей организация. ## Обзор [#overview] ```http POST https://api2.gtx.dev/v2/project/assets ``` **Разрешение** `project:files:write` · **лимит запросов**: среднее (120/мин) ## Как это работает [#how-it-works] * Каждый запрос принимает от одного до 50 шрифтов. * Каждый шрифт должен быть в корректном формате base64, иметь имя файла с расширением `.ttf` или `.otf` и занимать после декодирования не более 20 МБ. * Проект определяет, какой Организации принадлежат ресурсы. Загруженные шрифты сохраняются и доступны для всех задач перевода этой Организации. * Хранилище использует адресацию по содержимому. Повторная загрузка того же шрифта с тем же именем файла идемпотентна. * Если не удаётся сохранить хотя бы один ресурс, запрос завершается ошибкой. Вы можете безопасно повторить запрос целиком. ## Запрос [#request] ### Заголовки | Заголовок | Описание | Обязательно | | ----------------- | ----------------------------------------------------------- | ----------- | | `x-gt-api-key` | API-ключ проекта или организации. | Да | | `x-gt-project-id` | ID проекта. Обязателен при использовании ключа организации. | Нет | ### Тело запроса **Тип содержимого** `application/json` | Поле | Описание | Тип | Необязательно | По умолчанию | | ------------------- | ------------------------------------ | ---------- | ------------- | ------------ | | [`assets`](#assets) | Ресурсы шрифтов для загрузки (1–50). | `object[]` | Нет | — | #### `assets` **Тип** `object[]` · **Обязательно** | Поле | Описание | Тип | Необязательное | По умолчанию | | ----------- | ---------------------------------------------------------------------------- | -------- | -------------- | ------------ | | `assetType` | Тип ресурса. Поддерживается только `FONT`. | `'FONT'` | Нет | — | | `content` | Содержимое шрифта в кодировке Base64, размером до 20 МБ после декодирования. | `string` | Нет | — | | `fileName` | Имя файла шрифта с расширением `.ttf` или `.otf` (1–255 символов). | `string` | Нет | — | ## Ответ [#response] **Статус** `201 Created` ```json title="Response" { "assets": [ { "id": "asset_...", "assetKey": "gt/orgs/org_.../fonts/...", "fileName": "BrandSans.ttf" } ], "count": 1 } ``` ## Ошибки [#errors] | Статус | Причина | | ------ | --------------------------------------------------------------------------------------------------------------------------------- | | `400` | Недопустимое тело запроса, некорректный base64, пустой ресурс, неподдерживаемое расширение файла или ресурс размером более 20 МБ. | | `401` | API-ключ отсутствует или недействителен. | | `403` | У API-ключа нет разрешения `project:files:write`. | | `404` | Проект не найден. | | `429` | Превышен лимит запросов. | | `500` | Не удалось сохранить ресурс. Повторите запрос целиком. | ## Пример [#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\" } ] }" ```