# General Translation Platform: Upsert des ressources de l’Organisation
URL: https://generaltranslation.com/fr/docs/platform/openapi/reference/organizations/upsert-assets.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Téléverse de 1 à 10 polices (assetType: FONT, le seul type de ressource pris en charge actuellement) pour les traductions Lottie de toute l’organisation. Nécessite l’autorisation org:assets:write ou, tant que celle-ci n’est pas accordée, project:files:write au niveau de l’organisation.

{/* Ce fichier a été généré par Fumadocs. Ne le modifiez pas directement. Pour apporter des modifications, relancez la commande de génération. */}

## Endpoint

`POST https://api.gtx.dev/v2/orgs/{orgId}/assets`

**Operation ID:** `upsertAssets`

**Tags:** `Organizations`

**Summary:** Upsert Organization assets

Uploads 1–10 fonts (`assetType: FONT`, the only asset type today) for Lottie translations across the organization. Requires `org:assets:write`.

Authentication: required. Send an API key in the `Authorization: Bearer <key>` header when authenticating.

### Parameters

- `orgId` (path, string, required): Organization ID.
- `gt-api-version` (header, "2026-10-08.v1", required): API contract version. Must be `2026-10-08.v1` or later; requests without it or with an older version return 400.

### Request body (required)

Body (`application/json`, object):
- `assets` (object[], required): 1–10 assets; OpenType or TrueType fonts (`assetType: FONT`) are the only asset type today. A font is matched by family, weight and italic style, and an identity may appear once. Uploading a matching font replaces it for the whole organization.
  - `assetType` ("FONT", required)
  - `content` (string, required)
  - `fileName` (string, required)
  - `family` (string): Family that Lottie files reference the font by. When set, `family` and `style` alone set the font's identity. When absent, the family, weight and italic style come from the font's own tables, then its file name, and `style` is ignored.
  - `style` (string): Weight and italic style, such as `Bold Italic` or `350`. Read only with `family`; a `family` without `style` is regular weight (400), not italic.

### Responses

**200**: Result of each font, in request order, as `succeeded` or as `failed` with an `error`, even when every font fails. Fonts are stored independently, and retrying a failed font is safe.
Response body (`application/json`, object):
- `summary` (object, required): Number of `results` in total and by `status`.
  - `total` (integer, required)
  - `succeeded` (integer, required)
  - `failed` (integer, required)
- `results` (object | object[], required): One result per requested font, in request order.

**400**: The request is malformed or failed validation, including an empty or oversized font, a font with no derivable family, or two fonts with the same identity. The batch is checked before any font is written.
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**401**: Authentication is missing or invalid.
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**403**: The caller is authenticated but not allowed to perform this operation or access the requested resource.
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**413**: The request, or the data it would return, exceeds a size or item limit.
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**415**: The request body's Content-Type is missing or not supported. Send the body as application/json.
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**429**: Too many requests. The rate limit was exceeded.
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

**500**: An unexpected server error occurred.
Response body (`application/json`, object):
- `error` (string, required)

Response body (`text/html`, string):

Complete OpenAPI 3.1 specification: https://generaltranslation.com/openapi.yaml

OpenAPI schema: [openapi.json](https://generaltranslation.com/openapi.json)

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
