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.


    Most endpoints operate on a single project. All endpoints live under
    `https://api.gtx.dev`.


    Authenticate every request with an API key as a bearer token in the standard
    `Authorization: Bearer <key>` 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/projects`, derive the organization from the key and do not use a
    `gt-project-id` header.
  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.
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
      required:
        - error
    FileFormat:
      type: string
      enum:
        - GTJSON
        - MDX
        - JSON
        - YAML
        - MD
        - TS
        - JS
        - HTML
        - TXT
        - PO
        - POT
        - TWILIO_CONTENT_JSON
        - LOTTIE
        - SVG
    ModelProvider:
      type: string
      enum:
        - ANTHROPIC
        - OPENAI
        - XAI
        - GOOGLE
    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"
    Branch:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      required:
        - id
        - name
    RuntimeTranslationResponse:
      type: object
      additionalProperties:
        oneOf:
          - type: object
            properties:
              success:
                type: boolean
                enum:
                  - true
              translation:
                $ref: "#/components/schemas/JsonValue"
              dataFormat:
                type: string
                enum:
                  - JSX
                  - ICU
                  - I18NEXT
                  - STRING
              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
    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:
                    type: string
                    enum:
                      - JSX
                      - ICU
                      - I18NEXT
                      - STRING
                    default: STRING
                  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
  parameters: {}
paths:
  /v2/projects:
    post:
      operationId: createProject
      summary: Create a Project
      description: Create a Project in the Organization associated with an
        Organization API key. The key must have the `org:projects:create`
        permission. Project keys cannot use this endpoint. Enabling CDN delivery
        also requires `project:write`.
      security:
        - BearerAuth: []
      parameters:
        - schema:
            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.
          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
      x-docs-slug: project/create-project
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
                          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
      x-docs-slug: files/upload-source
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
                          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
                            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
                          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
      x-docs-slug: files/upload-translations
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: project/upload-assets
  /v2/project/files/diffs:
    post:
      operationId: submitUserEditDiffs
      summary: Submit translation diffs
      description: Overwrite translations with user-provided localized content.
      security:
        - BearerAuth: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: files/submit-diffs
  /v2/project/setup/should-generate:
    get:
      operationId: shouldGenerateProjectContext
      summary: Check if context generation is needed
      deprecated: true
      description: Check whether the Project needs translation context generated. This
        deprecated endpoint is retained for backward compatibility and is no
        longer called by current clients.
      security:
        - BearerAuth: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          name: gt-project-id
          in: header
      responses:
        "200":
          description: Whether project context should be generated
          content:
            application/json:
              schema:
                type: object
                properties:
                  shouldSetupProject:
                    type: boolean
                required:
                  - shouldSetupProject
        "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:
        - Context
      x-docs-slug: context/check-freshness
  /v2/project/setup/generate:
    post:
      operationId: generateProjectContext
      summary: Generate translation context
      description: Generate glossaries and translation instructions for the project.
      security:
        - BearerAuth: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: context/generate-context
  /v2/project/setup/status/{jobId}:
    get:
      operationId: getProjectContextGenerationStatus
      summary: Get context generation job status
      deprecated: true
      description: Track a context generation job. This deprecated endpoint is
        retained for backward compatibility; new integrations should use `POST
        /v2/project/jobs/info`.
      security:
        - BearerAuth: []
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: jobId
          in: path
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          name: gt-project-id
          in: header
      responses:
        "200":
          description: Context generation job status
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      status:
                        type: string
                        enum:
                          - completed
                    required:
                      - status
                  - type: object
                    properties:
                      jobId:
                        type: string
                      status:
                        type: string
                        enum:
                          - queued
                          - processing
                          - failed
                          - unknown
                    required:
                      - jobId
                      - 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
        "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
      x-docs-slug: context/context-status
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
                    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
                            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
                            - 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
      x-docs-slug: translation/queue
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: files/publish-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: []
      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:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: files/download
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: files/download-many
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: project/branch-info
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: project/create-branch
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: project/upsert-tag
  /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: []
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: projectId
          in: path
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: project/project-info
    post:
      operationId: updateProjectInfo
      summary: Update Project information
      description: Update the Project's default locale or CDN delivery setting.
      security:
        - BearerAuth: []
      parameters:
        - schema:
            type: string
            minLength: 1
          required: true
          name: projectId
          in: path
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: project/update-project
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: translation/job-status
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: translation/translate-runtime
  /v2/project/files/info:
    post:
      operationId: getFileInfo
      summary: Get file metadata
      description: Get detailed metadata for specific source and translated files.
      security:
        - BearerAuth: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: files/file-info
  /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: []
      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:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: files/translation-status
  /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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: files/move-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: []
      parameters:
        - schema:
            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.
          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. Required when authenticating with an
              organization API key; ignored with project-scoped API keys (the
              project is resolved from the key).
          required: false
          description: Target project ID. Required when authenticating with an
            organization API key; ignored with project-scoped API keys (the
            project is resolved from the key).
          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
      x-docs-slug: files/orphaned-files
webhooks: {}
x-docs-nav:
  - group: files
    title: Files
    pages:
      - files/upload-source
      - files/upload-translations
      - files/submit-diffs
      - files/download-many
      - files/download
      - files/publish-files
      - files/file-info
      - files/translation-status
      - files/move-files
      - files/orphaned-files
  - group: context
    title: Context
    pages:
      - context/generate-context
      - context/check-freshness
      - context/context-status
  - group: translation
    title: Translation
    pages:
      - translation/translate-runtime
      - translation/queue
      - translation/job-status
  - group: project
    title: Project
    pages:
      - project/create-project
      - project/project-info
      - project/update-project
      - project/upload-assets
      - project/branch-info
      - project/create-branch
      - project/upsert-tag
