# General Translation Platform: Upload translated files URL: https://generaltranslation.com/en-US/docs/platform/openapi/reference/files/upload-translations.mdx --- title: "Upload translated files" description: "Upload translated files linked to their source files. Max 100 files per request. API reference for Upload translated files." method: POST full: true _openapi: method: POST route: /v2/project/files/upload-translations toc: [] structuredData: headings: [] contents: - content: >- Upload translated files linked to their source files. Max 100 files per request. --- ## `POST https://api.gtx.dev/v2/project/files/upload-translations` Upload translated files linked to their source files. Max 100 files per request. Authentication: send an API key as a bearer token in the `Authorization: Bearer ` header. ### Parameters - `gt-api-version` (header, "2025-01-01.v0" | "2025-11-03.v1" | "2026-02-18.v1" | "2026-03-06.v1", optional): API version. Defaults to the earliest supported version. Latest is `2026-03-06.v1`. - `gt-project-id` (header, string, optional): Target project ID. Required when authenticating with an organization API key. ### Request body Body (`application/json`, object): - `data` (object[], required) - `source` (object, required) - `content` (string, required): Base64-encoded file content. - `fileName` (string, required) - `fileFormat` (string, required): File format identifier, for example JSON, MDX, or LOTTIE. - `dataFormat` (string): Data format, e.g. STRING, JSX, ICU. - `locale` (string, required): Source locale code. - `fileId` (string): Derived from the file name when omitted. - `versionId` (string): Derived from the content hash when omitted. - `branchId` (string): Defaults to the default branch. - `checkedOutBranchId` (string) - `incomingBranchId` (string) - `formatMetadata` (object) - `translations` (object[], required) - `content` (string, required): Base64-encoded translated file content. - `fileName` (string, required) - `fileFormat` (string, required) - `locale` (string, required) - `dataFormat` (string) - `transformFormat` (string): Output file format transformation. - `sourceLocale` (string): Overrides the project default source locale. ### Responses **201**: Translations uploaded. Response body (`application/json`, object): - `uploadedFiles` (object[]) - `branchId` (string) - `fileId` (string) - `versionId` (string) - `fileName` (string) - `locale` (string) - `fileFormat` (string) - `dataFormat` (string) - `count` (integer) - `message` (string) **400**: The request was invalid. Response body (`application/json`, object): - `error` (string): Human-readable error message. **401**: Missing or invalid API key. Response body (`application/json`, object): - `error` (string): Human-readable error message. **403**: The API key lacks the required permission, or the action is not allowed on the current plan. Response body (`application/json`, object): - `error` (string): Human-readable error message. **429**: Rate limit or quota exceeded. Response body (`application/json`, object): - `error` (string): Human-readable error message. **503**: The server is temporarily busy. Response body (`application/json`, object): - `error` (string): Human-readable error message. The complete OpenAPI 3.1 spec is available at https://generaltranslation.com/openapi.yaml.