{ "openapi": "3.1.0", "info": { "title": "General Translation API", "version": "2026-03-06.v1", "description": "The public General Translation API. Use it to upload source content and translated files, download translations, queue and translate content, create projects, manage branches and tags, and read project and job status.\n\nMost endpoints operate on a single project. All endpoints live under `https://api.gtx.dev`.\n\nAuthenticate every request with an API key as a bearer token in the standard `Authorization: Bearer ` header. Project keys (`gtx-api-`, `gtx-dev-`) are bound to one project. Organization keys (`gtx-org-`) work across projects but must include the target project in the `gt-project-id` header for project-scoped routes. Organization-scoped routes, such as `POST /v2/orgs/{orgId}/projects`, require the target organization in the `orgId` path parameter. The credential must have access to that organization.", "contact": { "name": "General Translation Support", "email": "support@generaltranslation.com", "url": "https://generaltranslation.com" } }, "servers": [ { "url": "https://api.gtx.dev", "description": "General Translation API" } ], "tags": [ { "name": "Files", "description": "Upload, download, publish, move, and inspect project files." }, { "name": "Context", "description": "Generate translation context such as glossaries and instructions." }, { "name": "Translation", "description": "Translate content, queue files for translation, and read translation job status." }, { "name": "Project", "description": "Create and manage projects, assets, branches, and file version tags." }, { "name": "Integrations", "description": "Internal Figma and Google Drive plugin operations." }, { "name": "CLI Wizard", "description": "Create and manage internal CLI wizard sessions." } ], "components": { "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer", "description": "Project or organization API key." }, "UserBearerAuth": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "OAuth 2.1 user access token." }, "GoogleIdentityToken": { "type": "http", "scheme": "bearer", "bearerFormat": "JWT", "description": "Google identity token for the Workspace plugin." } }, "schemas": { "ErrorResponse": { "type": "object", "properties": { "error": { "type": "string" } }, "required": ["error"] }, "ApiVersion": { "type": "string", "enum": [ "2025-01-01.v0", "2025-11-03.v1", "2026-02-18.v1", "2026-03-06.v1" ], "description": "API contract version. Defaults to the oldest supported version." }, "FileFormat": { "type": "string", "enum": [ "GTJSON", "MDX", "JSON", "YAML", "MD", "TS", "JS", "HTML", "TXT", "PO", "POT", "TWILIO_CONTENT_JSON", "LOTTIE", "SVG", "XCSTRINGS", "DOT_STRINGS", "DOT_STRINGSDICT", "ANDROID_STRINGS" ] }, "Branch": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" } }, "required": ["id", "name"] }, "JsonObject": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/JsonValue" } }, "JsonValue": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" }, { "type": "array", "items": { "oneOf": [ { "$ref": "#/components/schemas/JsonValue" }, { "type": "null" } ] } }, { "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "#/components/schemas/JsonValue" }, { "type": "null" } ] } } ] }, "ModelProvider": { "type": "string", "enum": ["ANTHROPIC", "OPENAI", "XAI", "GOOGLE"] }, "RuntimeTranslationResponse": { "type": "object", "additionalProperties": { "oneOf": [ { "type": "object", "properties": { "success": { "type": "boolean", "enum": [true] }, "translation": { "$ref": "#/components/schemas/JsonValue" }, "dataFormat": { "$ref": "#/components/schemas/DataFormat" }, "locale": { "type": "string" } }, "required": ["success", "dataFormat", "locale"] }, { "type": "object", "properties": { "success": { "type": "boolean", "enum": [false] }, "error": { "type": "string" }, "code": { "type": "number" } }, "required": ["success", "error", "code"] } ] } }, "DataFormat": { "type": "string", "enum": ["JSX", "ICU", "I18NEXT", "STRING"] }, "RuntimeTranslationRequest": { "type": "object", "properties": { "requests": { "type": "object", "additionalProperties": { "type": "object", "properties": { "source": {}, "metadata": { "type": "object", "properties": { "id": { "type": "string" }, "hash": { "type": "string" }, "context": { "type": "string" }, "maxChars": { "type": "number" }, "dataFormat": { "$ref": "#/components/schemas/DataFormat" }, "actionType": { "type": "string", "enum": ["fast", "standard"], "default": "fast" }, "sourceCode": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "object", "properties": { "before": { "type": "string" }, "target": { "type": "string" }, "after": { "type": "string" } }, "required": ["before", "target", "after"] } } } }, "default": { "dataFormat": "STRING", "actionType": "fast" } } } } }, "targetLocale": { "type": "string", "minLength": 1 }, "sourceLocale": { "type": "string", "minLength": 1 }, "metadata": { "type": "object", "properties": { "modelProvider": { "$ref": "#/components/schemas/ModelProvider" } } } }, "required": ["requests", "targetLocale", "sourceLocale", "metadata"] }, "CreateCliWizardSessionResponse": { "type": "object", "properties": { "sessionId": { "type": "string" } }, "required": ["sessionId"] }, "CreateCliWizardSessionRequest": { "type": "object", "properties": { "keyType": { "$ref": "#/components/schemas/CliKeyType" } } }, "CliKeyType": { "type": "string", "enum": ["development", "production", "all"], "default": "production" }, "CliWizardSessionReadyResponse": { "anyOf": [ { "type": "object", "properties": { "apiKeys": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "type": { "$ref": "#/components/schemas/ApiKeyType" } }, "required": ["key", "type"] } }, "projectId": { "type": "string" } }, "required": ["apiKeys", "projectId"] }, { "type": "object", "properties": { "apiKey": { "type": "string" }, "projectId": { "type": "string" } }, "required": ["apiKey", "projectId"] } ] }, "ApiKeyType": { "type": "string", "enum": ["development", "production"] }, "CliWizardSessionWaitingResponse": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"] }, "DeleteCliWizardSessionResponse": { "type": "object", "properties": { "message": { "type": "string" } }, "required": ["message"] } }, "parameters": {} }, "paths": { "/v1/integrations/workspace-plugin/info": { "post": { "operationId": "workspacePluginInfo", "x-internal": true, "summary": "Workspace plugin info", "description": "Run the Google Drive Workspace plugin info command.", "tags": ["Integrations"], "security": [ { "GoogleIdentityToken": [] } ], "requestBody": { "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "fileId": { "type": "string", "minLength": 1 }, "hostApp": { "type": "string", "enum": ["DOCS", "SLIDES"] } } } } } }, "responses": { "200": { "description": "Workspace plugin result", "content": { "application/json": { "schema": { "type": "object", "properties": { "linked": { "type": "boolean" }, "user": { "type": "object", "properties": { "email": { "type": ["string", "null"] } }, "required": ["email"] }, "supportedLocales": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] } }, "projects": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "orgName": { "type": ["string", "null"] }, "sourceLocale": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] }, "currentLocales": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] } }, "localeWhitelist": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] } }, "integrationConnected": { "type": "boolean" }, "integrationId": { "type": "string" }, "linkedFile": { "type": ["object", "null"], "properties": { "sourceLocale": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] } }, "required": ["sourceLocale"] }, "translatedCopy": { "type": ["object", "null"], "properties": { "sourceName": { "type": "string" }, "sourceResourceId": { "type": "string" }, "sourceLocale": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] }, "targetLocale": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] } }, "required": [ "sourceName", "sourceResourceId", "sourceLocale", "targetLocale" ] } }, "required": [ "id", "name", "orgName", "sourceLocale", "currentLocales", "localeWhitelist", "integrationConnected", "integrationId", "linkedFile", "translatedCopy" ] } } }, "required": ["linked", "user", "supportedLocales", "projects"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "502": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } } } } }, "/v1/integrations/workspace-plugin/translate": { "post": { "operationId": "workspacePluginTranslate", "x-internal": true, "summary": "Workspace plugin translate", "description": "Run the Google Drive Workspace plugin translate command.", "tags": ["Integrations"], "security": [ { "GoogleIdentityToken": [] } ], "requestBody": { "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "projectId": { "type": "string", "minLength": 1 }, "fileId": { "type": "string", "minLength": 1 }, "hostApp": { "type": "string", "enum": ["DOCS", "SLIDES"] }, "targetLocales": { "type": "array", "items": { "type": "string", "minLength": 1 }, "minItems": 1, "maxItems": 100 }, "sourceLocale": { "type": "string", "minLength": 1 }, "force": { "type": "boolean" } }, "required": ["projectId", "fileId", "hostApp", "targetLocales"] } } } }, "responses": { "200": { "description": "Workspace plugin result", "content": { "application/json": { "schema": { "type": "object", "properties": { "accepted": { "type": "boolean" }, "sourceLocale": { "type": "string" }, "targetLocales": { "type": "array", "items": { "type": "string" } }, "enqueued": { "type": "number" }, "failed": { "type": "number" }, "errors": { "type": "array", "items": { "type": "string" } } }, "required": [ "accepted", "sourceLocale", "targetLocales", "enqueued", "failed", "errors" ] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "502": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } } } } }, "/v1/integrations/workspace-plugin/status": { "post": { "operationId": "workspacePluginStatus", "x-internal": true, "summary": "Workspace plugin status", "description": "Run the Google Drive Workspace plugin status command.", "tags": ["Integrations"], "security": [ { "GoogleIdentityToken": [] } ], "requestBody": { "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "projectId": { "type": "string", "minLength": 1 }, "fileId": { "type": "string", "minLength": 1 }, "hostApp": { "type": "string", "enum": ["DOCS", "SLIDES"] } }, "required": ["projectId", "fileId", "hostApp"] } } } }, "responses": { "200": { "description": "Workspace plugin result", "content": { "application/json": { "schema": { "type": "object", "properties": { "locales": { "type": "array", "items": { "type": "object", "properties": { "targetLocale": { "type": "string" }, "locale": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] }, "translationProgress": { "type": ["number", "null"] }, "layoutProgress": { "type": ["number", "null"] }, "done": { "type": "boolean" }, "targetCopy": { "type": "object", "properties": { "fileId": { "type": "string" }, "url": { "type": "string" } }, "required": ["fileId", "url"] } }, "required": [ "targetLocale", "locale", "translationProgress", "layoutProgress", "done" ] } } }, "required": ["locales"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } }, "502": { "description": "Request error", "content": { "application/json": { "schema": { "type": "object", "properties": { "error": { "type": "string" }, "errors": { "type": "array", "items": { "type": "string" } }, "linked": { "type": "boolean" } }, "required": ["error"] } } } } } } }, "/v1/integrations/figma-plugin/info": { "post": { "operationId": "figmaPluginInfo", "x-internal": true, "summary": "Figma plugin info", "description": "Run the Figma plugin info command.", "tags": ["Integrations"], "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "figmaFileName": { "type": "string", "minLength": 1, "maxLength": 255 } }, "required": ["figmaFileName"], "additionalProperties": false } } } }, "responses": { "200": { "description": "Figma plugin result", "content": { "application/json": { "schema": { "type": "object", "properties": { "project": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "integrationId": { "type": "string" }, "sourceLocale": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] }, "currentLocales": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] } }, "localeWhitelist": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] } } }, "required": [ "id", "name", "integrationId", "sourceLocale", "currentLocales", "localeWhitelist" ] }, "supportedLocales": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] } }, "linkedPages": { "type": "array", "items": { "type": "object", "properties": { "pageName": { "type": "string" }, "fileId": { "type": "string" }, "versionId": { "type": "string" }, "sourceLocale": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] }, "locales": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] } }, "updatedAt": { "type": "string" }, "skippedCount": { "type": "number" }, "skipped": { "type": "array", "items": { "type": "object", "properties": { "nodeId": { "type": "string", "minLength": 1, "maxLength": 255 }, "displayPath": { "type": "array", "items": { "type": "string" }, "maxItems": 64 }, "reason": { "type": "string", "enum": [ "not_text_node", "empty_text", "hidden_layer", "missing_characters", "in_component_master" ] }, "details": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] } }, "pathKey": { "type": "string" } }, "required": [ "nodeId", "displayPath", "reason", "pathKey" ], "additionalProperties": false } } }, "required": [ "pageName", "fileId", "versionId", "sourceLocale", "locales", "updatedAt", "skippedCount", "skipped" ] } } }, "required": ["project", "supportedLocales", "linkedPages"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "409": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "423": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } } } }, "/v1/integrations/figma-plugin/sync": { "post": { "operationId": "figmaPluginSync", "x-internal": true, "summary": "Figma plugin sync", "description": "Run the Figma plugin sync command.", "tags": ["Integrations"], "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "figmaFileName": { "type": "string", "minLength": 1, "maxLength": 255 }, "pageName": { "type": "string", "minLength": 1, "maxLength": 255 }, "sourceLocale": { "type": "string", "minLength": 2, "maxLength": 16 }, "units": { "type": "array", "items": { "type": "object", "properties": { "nodeId": { "type": "string", "minLength": 1, "maxLength": 255 }, "structuralPath": { "type": "string", "minLength": 1, "maxLength": 1024 }, "value": { "type": "string" }, "displayPath": { "type": "array", "items": { "type": "string" }, "maxItems": 64 }, "layout": { "type": "object", "properties": { "boxId": { "type": "string", "minLength": 1, "maxLength": 255 }, "frameId": { "type": "string", "minLength": 1, "maxLength": 255 }, "rect": { "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" }, "width": { "type": "number" }, "height": { "type": "number" } }, "required": ["x", "y", "width", "height"] }, "autoResize": { "type": "string", "enum": [ "NONE", "HEIGHT", "WIDTH_AND_HEIGHT", "TRUNCATE" ] }, "baseFontPt": { "type": "number" }, "equivClass": { "type": "string", "maxLength": 255 }, "sizeRank": { "type": "number" } }, "required": ["boxId"], "additionalProperties": false }, "styleRuns": { "type": "array", "items": { "type": "object", "properties": { "start": { "type": "integer", "minimum": 0 }, "end": { "type": "integer", "minimum": 0 }, "fontName": { "type": "object", "properties": { "family": { "type": "string" }, "style": { "type": "string" } }, "required": ["family", "style"], "additionalProperties": false }, "fontSize": { "type": "number" }, "textDecoration": { "type": "string" }, "textCase": { "type": "string" }, "letterSpacing": { "type": "object", "properties": { "value": { "type": "number" }, "unit": { "type": "string" } }, "required": ["value", "unit"], "additionalProperties": false }, "lineHeight": { "type": "object", "properties": { "value": { "type": "number" }, "unit": { "type": "string" } }, "required": ["unit"], "additionalProperties": false }, "fills": { "type": "array", "items": { "type": "object", "additionalProperties": {} } }, "hyperlink": { "type": ["object", "null"], "additionalProperties": {} } }, "required": ["start", "end"], "additionalProperties": false }, "maxItems": 512 }, "instanceTextOrigin": { "type": "string", "enum": ["inherited", "overridden"] } }, "required": [ "nodeId", "structuralPath", "value", "displayPath" ], "additionalProperties": false }, "maxItems": 20000 }, "skipped": { "type": "array", "items": { "type": "object", "properties": { "nodeId": { "type": "string", "minLength": 1, "maxLength": 255 }, "structuralPath": { "type": "string", "minLength": 1, "maxLength": 1024 }, "displayPath": { "type": "array", "items": { "type": "string" }, "maxItems": 64 }, "reason": { "type": "string", "enum": [ "not_text_node", "empty_text", "hidden_layer", "missing_characters", "in_component_master" ] }, "details": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ] } } }, "required": [ "nodeId", "structuralPath", "displayPath", "reason" ], "additionalProperties": false }, "maxItems": 20000 }, "allPageNames": { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 255 }, "maxItems": 500 } }, "required": ["figmaFileName", "pageName", "units"], "additionalProperties": false } } } }, "responses": { "200": { "description": "Figma plugin result", "content": { "application/json": { "schema": { "type": "object", "properties": { "fileId": { "type": "string" }, "versionId": { "type": "string" }, "sourceLocale": { "type": "string" }, "unitCount": { "type": "number" }, "skippedCount": { "type": "number" }, "movedFrom": { "type": "string" } }, "required": [ "fileId", "versionId", "sourceLocale", "unitCount", "skippedCount" ] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "409": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "423": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } } } }, "/v1/integrations/figma-plugin/import-translations": { "post": { "operationId": "figmaPluginImportTranslations", "x-internal": true, "summary": "Figma plugin import-translations", "description": "Run the Figma plugin import-translations command.", "tags": ["Integrations"], "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "figmaFileName": { "type": "string", "minLength": 1, "maxLength": 255 }, "pageName": { "type": "string", "minLength": 1, "maxLength": 255 }, "locale": { "type": "string", "minLength": 2, "maxLength": 16 }, "versionId": { "type": "string", "minLength": 1, "maxLength": 255 }, "translations": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "figmaFileName", "pageName", "locale", "versionId", "translations" ], "additionalProperties": false } } } }, "responses": { "200": { "description": "Figma plugin result", "content": { "application/json": { "schema": { "type": "object", "properties": { "saved": { "type": "boolean" }, "versionId": { "type": "string" }, "importedCount": { "type": "number" }, "unmatchedCount": { "type": "number" } }, "required": [ "saved", "versionId", "importedCount", "unmatchedCount" ] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "409": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "423": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } } } }, "/v1/integrations/figma-plugin/enqueue": { "post": { "operationId": "figmaPluginEnqueue", "x-internal": true, "summary": "Figma plugin enqueue", "description": "Run the Figma plugin enqueue command.", "tags": ["Integrations"], "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "figmaFileName": { "type": "string", "minLength": 1, "maxLength": 255 }, "pageName": { "type": "string", "minLength": 1, "maxLength": 255 }, "targetLocales": { "type": "array", "items": { "type": "string", "minLength": 2, "maxLength": 16 }, "minItems": 1, "maxItems": 64 }, "sourceLocale": { "type": "string", "minLength": 2, "maxLength": 16 }, "force": { "type": "boolean" } }, "required": ["figmaFileName", "pageName", "targetLocales"], "additionalProperties": false } } } }, "responses": { "200": { "description": "Figma plugin result", "content": { "application/json": { "schema": { "type": "object", "properties": { "accepted": { "type": "boolean" }, "sourceLocale": { "type": "string" }, "targetLocales": { "type": "array", "items": { "type": "string" } }, "versionId": { "type": "string" } }, "required": [ "accepted", "sourceLocale", "targetLocales", "versionId" ] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "409": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "423": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } } } }, "/v1/integrations/figma-plugin/status": { "post": { "operationId": "figmaPluginStatus", "x-internal": true, "summary": "Figma plugin status", "description": "Run the Figma plugin status command.", "tags": ["Integrations"], "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "figmaFileName": { "type": "string", "minLength": 1, "maxLength": 255 }, "pageName": { "type": "string", "minLength": 1, "maxLength": 255 } }, "required": ["figmaFileName", "pageName"], "additionalProperties": false } } } }, "responses": { "200": { "description": "Figma plugin result", "content": { "application/json": { "schema": { "type": "object", "properties": { "versionId": { "type": "string" }, "locales": { "type": "array", "items": { "type": "object", "properties": { "locale": { "type": "object", "properties": { "code": { "type": "string" }, "name": { "type": "string" }, "emoji": { "type": "string" } }, "required": ["code", "name", "emoji"] }, "translationProgress": { "type": ["number", "null"] }, "done": { "type": "boolean" } }, "required": ["locale", "translationProgress", "done"] } } }, "required": ["versionId", "locales"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "409": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "423": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } } } }, "/v1/integrations/figma-plugin/download": { "post": { "operationId": "figmaPluginDownload", "x-internal": true, "summary": "Figma plugin download", "description": "Run the Figma plugin download command.", "tags": ["Integrations"], "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "figmaFileName": { "type": "string", "minLength": 1, "maxLength": 255 }, "pageName": { "type": "string", "minLength": 1, "maxLength": 255 }, "locale": { "type": "string", "minLength": 2, "maxLength": 16 } }, "required": ["figmaFileName", "pageName", "locale"], "additionalProperties": false } } } }, "responses": { "200": { "description": "Figma plugin result", "content": { "application/json": { "schema": { "type": "object", "properties": { "versionId": { "type": "string" }, "locale": { "type": "string" }, "translations": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["versionId", "locale", "translations"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "409": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "423": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } } } }, "/v2/project/info/{projectId}": { "get": { "operationId": "getProjectInfo", "summary": "Get Project information", "description": "Read the authenticated Project's name, Organization ID, locale settings, and auto-approval setting.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "type": "string", "minLength": 1 }, "required": true, "name": "projectId", "in": "path" }, { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "responses": { "200": { "description": "Project information", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "orgId": { "type": "string" }, "defaultLocale": { "type": ["string", "null"] }, "currentLocales": { "type": "array", "items": { "type": "string" } }, "autoApprove": { "type": "boolean" } }, "required": [ "id", "name", "orgId", "defaultLocale", "currentLocales", "autoApprove" ] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Project"] }, "post": { "operationId": "updateProjectInfo", "summary": "Update Project information", "description": "Update the Project's default locale or CDN delivery setting.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "type": "string", "minLength": 1 }, "required": true, "name": "projectId", "in": "path" }, { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "defaultLocale": { "type": "string" }, "cdnEnabled": { "type": "boolean" } } } } } }, "responses": { "200": { "description": "Project settings updated", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "boolean", "enum": [true] } }, "required": ["success"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Project"] } }, "/v2/project/translations/files/status/{fileId}": { "get": { "operationId": "getTranslationStatus", "summary": "Get translation status for a file", "description": "Return translation progress and availability by locale for one source file, along with its source metadata.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "type": "string", "minLength": 1 }, "required": true, "name": "fileId", "in": "path" }, { "schema": { "type": "string" }, "required": false, "name": "versionId", "in": "query" }, { "schema": { "type": "string" }, "required": false, "name": "branchId", "in": "query" }, { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "responses": { "200": { "description": "Translation status", "content": { "application/json": { "schema": { "type": "object", "properties": { "translations": { "type": "array", "items": { "type": "object", "properties": { "locale": { "type": "string" }, "completedAt": { "type": ["string", "null"], "format": "date-time" }, "approvedAt": { "type": ["string", "null"], "format": "date-time" }, "publishedAt": { "type": ["string", "null"], "format": "date-time" }, "createdAt": { "type": ["string", "null"], "format": "date-time" }, "updatedAt": { "type": ["string", "null"], "format": "date-time" } }, "required": [ "locale", "completedAt", "approvedAt", "publishedAt", "createdAt", "updatedAt" ] } }, "sourceFile": { "type": "object", "properties": { "id": { "type": "string" }, "branchId": { "type": "string" }, "fileId": { "type": "string" }, "versionId": { "type": "string" }, "fileName": { "type": "string" }, "sourceLocale": { "type": "string" }, "fileFormat": { "$ref": "#/components/schemas/FileFormat" }, "dataFormat": { "type": ["string", "null"] }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "locales": { "type": "array", "items": { "type": "string" } } }, "required": [ "id", "branchId", "fileId", "versionId", "fileName", "sourceLocale", "fileFormat", "dataFormat", "createdAt", "updatedAt", "locales" ] } }, "required": ["translations", "sourceFile"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/project/branches/info": { "post": { "operationId": "getBranchInfo", "summary": "Get branch information", "description": "Return the Project's default branch and any branches requested by name.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "branchNames": { "type": "array", "items": { "type": "string" }, "default": [] } } } } } }, "responses": { "200": { "description": "Branch information", "content": { "application/json": { "schema": { "type": "object", "properties": { "branches": { "type": "array", "items": { "$ref": "#/components/schemas/Branch" } }, "defaultBranch": { "allOf": [ { "$ref": "#/components/schemas/Branch" }, { "type": ["object", "null"] } ] } }, "required": ["branches", "defaultBranch"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Project"] } }, "/v2/project/branches/create": { "post": { "operationId": "createBranch", "summary": "Create a branch", "description": "Create a new branch, or rename and confirm the default branch.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "branchName": { "type": "string", "minLength": 1 }, "defaultBranch": { "type": "boolean", "default": false } }, "required": ["branchName"] } } } }, "responses": { "200": { "description": "Created or existing branch", "content": { "application/json": { "schema": { "type": "object", "properties": { "branch": { "$ref": "#/components/schemas/Branch" } }, "required": ["branch"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "409": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Project"] } }, "/v2/project/tags/create": { "post": { "operationId": "createTag", "summary": "Create or update a tag", "description": "Create or upsert a tag that points at a set of file versions.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "tagId": { "type": "string", "minLength": 1, "maxLength": 255 }, "files": { "type": "array", "items": { "type": "object", "properties": { "fileId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 }, "branchId": { "type": "string", "minLength": 1 } }, "required": ["fileId", "versionId", "branchId"] }, "minItems": 1 }, "message": { "type": "string", "maxLength": 255 } }, "required": ["tagId", "files"] } } } }, "responses": { "200": { "description": "Created or updated file tag", "content": { "application/json": { "schema": { "type": "object", "properties": { "tag": { "type": "object", "properties": { "id": { "type": "string" }, "tagId": { "type": "string" }, "message": { "type": ["string", "null"] }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" } }, "required": [ "id", "tagId", "message", "createdAt", "updatedAt" ] } }, "required": ["tag"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Project"] } }, "/v2/project/assets": { "post": { "operationId": "uploadAssets", "summary": "Upload Project assets", "description": "Upload OpenType or TrueType fonts through a Project and make them available to Lottie translation workflows across its Organization. Each font is keyed by a normalized identity derived from its family, weight, and italic style (from the supplied `family` and `style`, or from the font metadata and file name). Re-uploading the same identity overwrites the existing asset, so complete retries after a `500` response are safe.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "assets": { "type": "array", "items": { "type": "object", "properties": { "assetType": { "type": "string", "enum": ["FONT"] }, "content": { "type": "string", "minLength": 1 }, "fileName": { "type": "string", "minLength": 1, "maxLength": 255, "pattern": "\\.([tT][tT][fF]|[oO][tT][fF])$" }, "family": { "type": "string", "minLength": 1, "maxLength": 255 }, "style": { "type": "string", "minLength": 1, "maxLength": 100 } }, "required": ["assetType", "content", "fileName"] }, "minItems": 1, "maxItems": 50 } }, "required": ["assets"] } } } }, "responses": { "201": { "description": "Uploaded assets", "content": { "application/json": { "schema": { "type": "object", "properties": { "assets": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "assetKey": { "type": "string" }, "fileName": { "type": "string" } }, "required": ["id", "assetKey", "fileName"] } }, "count": { "type": "integer", "minimum": 0 } }, "required": ["assets", "count"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Project"] } }, "/v2/project/files/diffs": { "post": { "operationId": "submitUserEditDiffs", "summary": "Submit translation diffs", "description": "Overwrite translations with user-provided localized content.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "projectId": { "type": "string" }, "diffs": { "type": "array", "items": { "type": "object", "properties": { "locale": { "type": "string", "minLength": 1 }, "diff": { "type": "string" }, "branchId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 }, "fileId": { "type": "string", "minLength": 1 }, "localContent": { "type": "string" } }, "required": [ "locale", "diff", "versionId", "fileId", "localContent" ] }, "minItems": 1 } }, "required": ["diffs"] } } } }, "responses": { "200": { "description": "Processed user translation edits", "content": { "application/json": { "schema": { "type": "object", "properties": { "filesProcessed": { "type": "integer", "minimum": 0 }, "entriesReceived": { "type": "integer", "minimum": 0 }, "message": { "type": "string" } }, "required": ["filesProcessed", "entriesReceived", "message"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/project/files/moves": { "post": { "operationId": "processFileMoves", "summary": "Move or rename files", "description": "Clone source files and their translations under new file IDs.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "branchId": { "type": "string" }, "moves": { "type": "array", "items": { "type": "object", "properties": { "oldFileId": { "type": "string", "minLength": 1 }, "newFileId": { "type": "string", "minLength": 1 }, "newFileName": { "type": "string", "minLength": 1 } }, "required": ["oldFileId", "newFileId", "newFileName"] } } }, "required": ["moves"] } } } }, "responses": { "200": { "description": "File move results", "content": { "application/json": { "schema": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "oldFileId": { "type": "string" }, "newFileId": { "type": "string" }, "success": { "type": "boolean" }, "newSourceFileId": { "type": "string" }, "clonedTranslationsCount": { "type": "integer" }, "error": { "type": "string" } }, "required": ["oldFileId", "newFileId", "success"] } }, "summary": { "type": "object", "properties": { "total": { "type": "integer", "minimum": 0 }, "succeeded": { "type": "integer", "minimum": 0 }, "failed": { "type": "integer", "minimum": 0 } }, "required": ["total", "succeeded", "failed"] } }, "required": ["results"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/project/files/orphaned": { "post": { "operationId": "getOrphanedFiles", "summary": "Find orphaned files", "description": "Return files on a branch that are not present in the provided file ID list.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "branchId": { "type": "string", "minLength": 1 }, "fileIds": { "type": "array", "items": { "type": "string" }, "default": [] } }, "required": ["branchId"] } } } }, "responses": { "200": { "description": "Files present on the branch but absent from the request", "content": { "application/json": { "schema": { "type": "object", "properties": { "orphanedFiles": { "type": "array", "items": { "type": "object", "properties": { "fileId": { "type": "string" }, "versionId": { "type": "string" }, "fileName": { "type": "string" } }, "required": ["fileId", "versionId", "fileName"] } } }, "required": ["orphanedFiles"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/project/files/info": { "post": { "operationId": "getFileInfo", "summary": "Get file metadata", "description": "Get detailed metadata for specific source and translated files.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "sourceFiles": { "type": "array", "items": { "type": "object", "properties": { "fileId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 }, "branchId": { "type": "string", "minLength": 1 } }, "required": ["fileId", "versionId", "branchId"] } }, "translatedFiles": { "type": "array", "items": { "type": "object", "properties": { "fileId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 }, "branchId": { "type": "string", "minLength": 1 }, "locale": { "type": "string", "minLength": 1 } }, "required": ["fileId", "versionId", "branchId", "locale"] } } } } } } }, "responses": { "200": { "description": "File information", "content": { "application/json": { "schema": { "type": "object", "properties": { "sourceFiles": { "type": "array", "items": { "type": "object", "properties": { "branchId": { "type": "string" }, "fileId": { "type": "string" }, "versionId": { "type": "string" }, "fileName": { "type": "string" }, "fileFormat": { "$ref": "#/components/schemas/FileFormat" }, "dataFormat": { "type": ["string", "null"] }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "publishedAt": { "type": ["string", "null"], "format": "date-time" }, "locales": { "type": "array", "items": { "type": "string" } }, "sourceLocale": { "type": "string" } }, "required": [ "branchId", "fileId", "versionId", "fileName", "fileFormat", "dataFormat", "createdAt", "updatedAt", "publishedAt", "locales", "sourceLocale" ] } }, "translatedFiles": { "type": "array", "items": { "type": "object", "properties": { "branchId": { "type": "string" }, "fileId": { "type": "string" }, "versionId": { "type": "string" }, "fileFormat": { "$ref": "#/components/schemas/FileFormat" }, "dataFormat": { "type": ["string", "null"] }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "approvedAt": { "type": ["string", "null"], "format": "date-time" }, "publishedAt": { "type": ["string", "null"], "format": "date-time" }, "completedAt": { "type": ["string", "null"], "format": "date-time" }, "locale": { "type": "string" } }, "required": [ "branchId", "fileId", "versionId", "fileFormat", "dataFormat", "createdAt", "updatedAt", "approvedAt", "publishedAt", "completedAt", "locale" ] } } }, "required": ["sourceFiles", "translatedFiles"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/project/files/download": { "post": { "operationId": "downloadFiles", "summary": "Download multiple files", "description": "Download up to 100 source or translated files in one request.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "fileId": { "type": "string", "minLength": 1 }, "branchId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 }, "locale": { "type": "string", "minLength": 1 }, "useLatestAvailableVersion": { "type": "boolean" } }, "required": ["fileId"] }, "minItems": 1, "maxItems": 100 } } } }, "responses": { "200": { "description": "Downloaded files", "content": { "application/json": { "schema": { "type": "object", "properties": { "files": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "branchId": { "type": "string" }, "fileId": { "type": "string" }, "versionId": { "type": "string" }, "locale": { "type": "string" }, "fileName": { "type": "string" }, "data": { "type": "string" }, "metadata": { "$ref": "#/components/schemas/JsonObject" }, "fileFormat": { "$ref": "#/components/schemas/FileFormat" } }, "required": [ "id", "branchId", "fileId", "versionId", "data", "metadata", "fileFormat" ] } }, "count": { "type": "number" }, "pending": { "type": "array", "items": { "type": "object", "properties": { "branchId": { "type": "string" }, "fileId": { "type": "string" }, "locale": { "type": "string" }, "versionId": { "type": "string" } }, "required": [ "branchId", "fileId", "locale", "versionId" ] } } }, "required": ["files", "count"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/project/files/download/{fileId}": { "get": { "operationId": "downloadFile", "summary": "Download a single file", "deprecated": true, "description": "Download a single source or translated file. This deprecated endpoint is retained for backward compatibility; new integrations should use `POST /v2/project/files/download`.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "type": "string", "minLength": 1 }, "required": true, "name": "fileId", "in": "path" }, { "schema": { "type": "string" }, "required": false, "name": "branchId", "in": "query" }, { "schema": { "type": "string" }, "required": false, "name": "versionId", "in": "query" }, { "schema": { "type": "string" }, "required": false, "name": "locale", "in": "query" }, { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "responses": { "200": { "description": "Downloaded file", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "string" } }, "required": ["data"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "425": { "description": "Translation is still processing", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "enum": ["processing"] }, "message": { "type": "string" } }, "required": ["status", "message"] } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/project/jobs/info": { "post": { "operationId": "getTranslationJobInfo", "summary": "Get translation job status", "description": "Return normalized status information for one or more queued translation or context generation jobs.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "jobIds": { "type": "array", "items": { "type": "string", "minLength": 1 }, "minItems": 1 } }, "required": ["jobIds"] } } } }, "responses": { "200": { "description": "Translation job statuses", "content": { "application/json": { "schema": { "type": "array", "items": { "oneOf": [ { "type": "object", "properties": { "status": { "type": "string", "enum": ["queued"] }, "jobId": { "type": "string" } }, "required": ["status", "jobId"] }, { "type": "object", "properties": { "status": { "type": "string", "enum": ["processing"] }, "jobId": { "type": "string" } }, "required": ["status", "jobId"] }, { "type": "object", "properties": { "status": { "type": "string", "enum": ["failed"] }, "jobId": { "type": "string" }, "error": { "type": "object", "properties": { "message": { "type": ["string", "null"] } }, "required": ["message"] } }, "required": ["status", "jobId", "error"] }, { "type": "object", "properties": { "status": { "type": "string", "enum": ["completed"] }, "jobId": { "type": "string" } }, "required": ["status", "jobId"] }, { "type": "object", "properties": { "status": { "type": "string", "enum": ["unknown"] }, "jobId": { "type": "string" } }, "required": ["status", "jobId"] } ] } } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Translation"] } }, "/v2/project/setup/generate": { "post": { "operationId": "generateProjectContext", "summary": "Generate translation context", "description": "Generate glossaries and translation instructions for the project.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "files": { "type": "array", "items": { "type": "object", "properties": { "branchId": { "type": "string", "minLength": 1 }, "fileId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 } }, "required": ["fileId", "versionId"] }, "minItems": 1 }, "locales": { "type": "array", "items": { "type": "string" } }, "force": { "type": "boolean", "default": false } }, "required": ["files"] } } } }, "responses": { "200": { "description": "Context generation status", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "status": { "type": "string", "enum": ["completed"] } }, "required": ["status"] }, { "type": "object", "properties": { "setupJobId": { "type": "string" }, "status": { "type": "string", "enum": ["queued"] } }, "required": ["setupJobId", "status"] } ] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Context"] } }, "/v2/project/files/publish": { "post": { "operationId": "publishFiles", "summary": "Publish or unpublish files", "description": "Publish or unpublish translated files to the CDN. Requires CDN to be enabled.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "files": { "type": "array", "items": { "type": "object", "properties": { "fileId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 }, "branchId": { "type": "string", "minLength": 1 }, "publish": { "type": "boolean" } }, "required": ["fileId", "versionId", "publish"] }, "minItems": 1 } }, "required": ["files"] } } } }, "responses": { "200": { "description": "File publish results", "content": { "application/json": { "schema": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "fileId": { "type": "string" }, "versionId": { "type": "string" }, "locale": { "type": "string" }, "branchId": { "type": "string" }, "success": { "type": "boolean" }, "error": { "type": "string" } }, "required": [ "fileId", "versionId", "branchId", "success" ] } } }, "required": ["results"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/project/files/upload-files": { "post": { "operationId": "uploadSourceFiles", "summary": "Upload source files", "description": "Upload one or more source files to the project. Max 100 files per request.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "source": { "type": "object", "properties": { "content": { "type": "string" }, "fileName": { "type": "string", "minLength": 1 }, "fileFormat": { "type": "string", "enum": [ "GTJSON", "MDX", "JSON", "YAML", "MD", "TS", "JS", "HTML", "TXT", "PO", "POT", "TWILIO_CONTENT_JSON", "LOTTIE", "SVG", "XCSTRINGS", "DOT_STRINGS", "DOT_STRINGSDICT", "ANDROID_STRINGS" ] }, "dataFormat": { "type": "string" }, "locale": { "type": "string", "minLength": 1 }, "fileId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 }, "branchId": { "type": "string", "minLength": 1 }, "checkedOutBranchId": { "type": "string", "minLength": 1 }, "incomingBranchId": { "type": "string", "minLength": 1 }, "formatMetadata": { "type": "object", "additionalProperties": {} } }, "required": [ "content", "fileName", "fileFormat", "locale" ] } }, "required": ["source"] }, "minItems": 1, "maxItems": 100 }, "sourceLocale": { "type": "string" } }, "required": ["data"] } } } }, "responses": { "201": { "description": "Uploaded source files", "content": { "application/json": { "schema": { "type": "object", "properties": { "uploadedFiles": { "type": "array", "items": { "type": "object", "properties": { "branchId": { "type": "string" }, "fileId": { "type": "string" }, "versionId": { "type": "string" }, "fileName": { "type": "string" }, "fileFormat": { "$ref": "#/components/schemas/FileFormat" }, "dataFormat": { "type": "string" }, "locale": { "type": "string" } }, "required": [ "fileId", "versionId", "fileName", "fileFormat" ] } }, "count": { "type": "number" }, "message": { "type": "string" } }, "required": ["uploadedFiles", "count", "message"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "503": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/project/translations/enqueue": { "post": { "operationId": "enqueueFileTranslations", "summary": "Queue files for translation", "description": "Enqueue uploaded source files for background translation. Max 100 files per request. The response shape depends on the requested `gt-api-version`.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "files": { "type": "array", "items": { "type": "object", "properties": { "branchId": { "type": "string", "minLength": 1 }, "fileId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 }, "fileName": { "type": "string" }, "transformFormat": { "type": "string", "enum": [ "GTJSON", "MDX", "JSON", "YAML", "MD", "TS", "JS", "HTML", "TXT", "PO", "POT", "TWILIO_CONTENT_JSON", "LOTTIE", "SVG", "XCSTRINGS", "DOT_STRINGS", "DOT_STRINGSDICT", "ANDROID_STRINGS" ] } }, "required": ["fileId", "versionId"] }, "minItems": 1, "maxItems": 100 }, "targetLocales": { "type": "array", "items": { "type": "string" } }, "sourceLocale": { "type": "string" }, "force": { "type": "boolean", "default": false }, "modelProvider": { "$ref": "#/components/schemas/ModelProvider" }, "publish": { "type": "boolean" } }, "required": ["files"] } } } }, "responses": { "200": { "description": "Enqueued translations. Shape depends on gt-api-version (legacy before 2025-11-03.v1).", "content": { "application/json": { "schema": { "anyOf": [ { "type": "object", "properties": { "jobData": { "type": "object", "additionalProperties": { "type": "object", "properties": { "kind": { "type": "string", "enum": ["file_translation"] }, "sourceFileId": { "type": "string" }, "fileId": { "type": "string" }, "versionId": { "type": "string" }, "branchId": { "type": "string" }, "targetLocale": { "type": "string" }, "projectId": { "type": "string" }, "orgId": { "type": "string" }, "force": { "type": "boolean" }, "outputFileFormat": { "$ref": "#/components/schemas/FileFormat" }, "modelProvider": { "$ref": "#/components/schemas/ModelProvider" }, "glossaryRetranslate": { "type": "boolean" }, "changedGlossaryTerms": { "type": "array", "items": { "type": "string" } }, "onComplete": { "type": "object", "properties": { "kind": { "type": "string", "enum": ["google_drive_apply"] }, "userId": { "type": "string" } }, "required": ["kind"] } }, "required": [ "sourceFileId", "fileId", "versionId", "branchId", "targetLocale", "projectId", "orgId", "force" ] } }, "locales": { "type": "array", "items": { "type": "string" } }, "message": { "type": "string" } }, "required": ["jobData", "locales", "message"] }, { "type": "object", "properties": { "translations": { "type": "array", "items": { "type": "object", "properties": { "locale": { "type": "string" }, "metadata": {}, "fileId": { "type": "string" }, "fileName": { "type": "string" }, "versionId": { "type": "string" }, "branchId": { "type": "string" }, "id": { "type": "string" }, "isReady": { "type": "boolean" }, "downloadUrl": { "type": "string" } }, "required": [ "locale", "fileId", "fileName", "versionId", "branchId", "id", "isReady", "downloadUrl" ] } }, "data": { "type": "object", "additionalProperties": { "type": "object", "properties": { "fileName": { "type": "string" }, "versionId": { "type": "string" } }, "required": ["fileName", "versionId"] } }, "locales": { "type": "array", "items": { "type": "string" } }, "message": { "type": "string" } }, "required": ["translations", "data", "locales", "message"] } ] } } } }, "400": { "description": "Invalid request or missing source files", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ErrorResponse" }, { "type": "object", "properties": { "error": { "type": "string" }, "missing": { "type": "array", "items": { "type": "object", "properties": { "fileId": { "type": "string" }, "versionId": { "type": "string" } }, "required": ["fileId", "versionId"] } }, "count": { "type": "number" } }, "required": ["error", "missing", "count"] } ] } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "402": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Translation"] } }, "/v2/translate": { "post": { "operationId": "translate", "summary": "Translate content at runtime", "description": "Translate one or more strings or structured content entries with caching and memoization. Development API keys are accepted for this endpoint.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RuntimeTranslationRequest" } } } }, "responses": { "200": { "description": "All translations were served from cache", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RuntimeTranslationResponse" } } } }, "201": { "description": "Translations completed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RuntimeTranslationResponse" } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "402": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Translation"] } }, "/v2/project/files/upload-translations": { "post": { "operationId": "uploadTranslations", "summary": "Upload translated files", "description": "Upload translated files linked to their source files. Max 100 files per request.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" }, { "schema": { "type": "string", "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project." }, "required": false, "description": "Target project ID when no project ID is present in the path. Project API keys default to their bound project. If supplied, the header must match both the path target and the key’s bound project.", "name": "gt-project-id", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "properties": { "source": { "type": "object", "properties": { "content": { "type": "string" }, "fileName": { "type": "string", "minLength": 1 }, "fileFormat": { "type": "string", "enum": [ "GTJSON", "MDX", "JSON", "YAML", "MD", "TS", "JS", "HTML", "TXT", "PO", "POT", "TWILIO_CONTENT_JSON", "LOTTIE", "SVG", "XCSTRINGS", "DOT_STRINGS", "DOT_STRINGSDICT", "ANDROID_STRINGS" ] }, "dataFormat": { "type": "string" }, "locale": { "type": "string", "minLength": 1 }, "fileId": { "type": "string", "minLength": 1 }, "versionId": { "type": "string", "minLength": 1 }, "branchId": { "type": "string", "minLength": 1 }, "checkedOutBranchId": { "type": "string", "minLength": 1 }, "incomingBranchId": { "type": "string", "minLength": 1 }, "formatMetadata": { "type": "object", "additionalProperties": {} } }, "required": [ "content", "fileName", "fileFormat", "locale" ] }, "translations": { "type": "array", "items": { "type": "object", "properties": { "content": { "type": "string" }, "fileName": { "type": "string", "minLength": 1 }, "fileFormat": { "type": "string", "enum": [ "GTJSON", "MDX", "JSON", "YAML", "MD", "TS", "JS", "HTML", "TXT", "PO", "POT", "TWILIO_CONTENT_JSON", "LOTTIE", "SVG", "XCSTRINGS", "DOT_STRINGS", "DOT_STRINGSDICT", "ANDROID_STRINGS" ] }, "dataFormat": { "type": "string" }, "locale": { "type": "string", "minLength": 1 }, "transformFormat": { "type": "string", "enum": [ "GTJSON", "MDX", "JSON", "YAML", "MD", "TS", "JS", "HTML", "TXT", "PO", "POT", "TWILIO_CONTENT_JSON", "LOTTIE", "SVG", "XCSTRINGS", "DOT_STRINGS", "DOT_STRINGSDICT", "ANDROID_STRINGS" ] } }, "required": [ "content", "fileName", "fileFormat", "locale" ] }, "minItems": 1 } }, "required": ["source", "translations"] }, "minItems": 1, "maxItems": 100 }, "sourceLocale": { "type": "string" } }, "required": ["data"] } } } }, "responses": { "201": { "description": "Uploaded translation files", "content": { "application/json": { "schema": { "type": "object", "properties": { "uploadedFiles": { "type": "array", "items": { "type": "object", "properties": { "branchId": { "type": "string" }, "fileId": { "type": "string" }, "versionId": { "type": "string" }, "fileName": { "type": "string" }, "fileFormat": { "$ref": "#/components/schemas/FileFormat" }, "dataFormat": { "type": "string" }, "locale": { "type": "string" } }, "required": [ "fileId", "versionId", "fileName", "fileFormat" ] } }, "count": { "type": "number" }, "message": { "type": "string" } }, "required": ["uploadedFiles", "count", "message"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "503": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Files"] } }, "/v2/projects/{projectId}/api-keys": { "post": { "operationId": "createProjectApiKey", "summary": "Create a Project API Key", "description": "Create an API key for the selected Project. Requires project:api_keys:write and delegates only Project permissions held by the request identity.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "type": "string", "minLength": 1 }, "required": true, "name": "projectId", "in": "path" }, { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 255 }, "type": { "type": "string", "enum": ["production", "development"], "default": "production" } }, "required": ["name"], "additionalProperties": false } } } }, "responses": { "201": { "description": "Project API key created", "content": { "application/json": { "schema": { "type": "object", "properties": { "apiKey": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "key": { "type": "string" }, "projectId": { "type": "string" }, "type": { "type": "string", "enum": ["production", "development"] } }, "required": ["id", "name", "key", "projectId", "type"] } }, "required": ["apiKey"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Project"] } }, "/v2/orgs/{orgId}/projects": { "post": { "operationId": "createProject", "summary": "Create a Project", "description": "Create a Project in the Organization selected by the orgId path parameter, optionally enabling CDN delivery. Requires org:projects:create.", "security": [ { "BearerAuth": [] }, { "UserBearerAuth": [] } ], "parameters": [ { "schema": { "type": "string", "minLength": 1 }, "required": true, "name": "orgId", "in": "path" }, { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "name": { "type": "string" }, "defaultLocale": { "type": "string" }, "cdnEnabled": { "type": "boolean" } }, "required": ["name", "defaultLocale"], "additionalProperties": false } } } }, "responses": { "201": { "description": "Project created", "content": { "application/json": { "schema": { "type": "object", "properties": { "project": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "orgId": { "type": "string" }, "defaultLocale": { "type": "string" } }, "required": ["id", "name", "orgId", "defaultLocale"] } }, "required": ["project"] } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "401": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "403": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "409": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } }, "tags": ["Project"] } }, "/cli/wizard/session": { "post": { "operationId": "createCliWizardSession", "x-internal": true, "summary": "Create a CLI wizard session", "description": "Create a temporary session for CLI browser authentication.", "tags": ["CLI Wizard"], "parameters": [ { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCliWizardSessionRequest" } } } }, "responses": { "200": { "description": "CLI wizard session created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCliWizardSessionResponse" } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } } } }, "/cli/wizard/{sessionId}": { "get": { "operationId": "getCliWizardSession", "x-internal": true, "summary": "Get a CLI wizard session", "description": "Get credentials for a completed CLI wizard session or its current waiting status.", "tags": ["CLI Wizard"], "parameters": [ { "schema": { "type": "string", "minLength": 1 }, "required": true, "name": "sessionId", "in": "path" }, { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" } ], "responses": { "200": { "description": "CLI wizard session credentials", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliWizardSessionReadyResponse" } } } }, "202": { "description": "CLI wizard session is waiting for sign-in", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CliWizardSessionWaitingResponse" } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } } }, "delete": { "operationId": "deleteCliWizardSession", "x-internal": true, "summary": "Delete a CLI wizard session", "description": "Delete a completed or abandoned CLI wizard session.", "tags": ["CLI Wizard"], "parameters": [ { "schema": { "type": "string", "minLength": 1 }, "required": true, "name": "sessionId", "in": "path" }, { "schema": { "$ref": "#/components/schemas/ApiVersion" }, "required": false, "description": "API contract version. Defaults to the oldest supported version.", "name": "gt-api-version", "in": "header" } ], "responses": { "200": { "description": "CLI wizard session deleted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteCliWizardSessionResponse" } } } }, "400": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "404": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "413": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "429": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } }, "500": { "description": "Request error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } }, "text/html": { "schema": { "type": "string" } } } } } } } }, "webhooks": {} }