openapi: 3.0.0 info: title: ThoughtSpot Public REST 10.1.0.cl Manual Translation API version: '2.0' servers: - url: '{base-url}' variables: base-url: default: https://localhost:443 security: - bearerAuth: [] tags: - name: Manual Translation paths: /api/rest/2.0/localizations/manual-translation/delete: post: operationId: deleteManualTranslations description: ' Delete manual translations.
Version: 26.7.0.cl or later Deletes all manual translations for the org. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**), `ORG_ADMINISTRATION` (**Can administer Org**), or `APPLICATION_ADMINISTRATION` (**Can administer application**) privilege. #### Usage guidelines - This deletes **all** translation entries for the targeted org. The operation cannot be undone. - Defaults to `ORG` scope if not specified. - Set `scope` to `CLUSTER` to delete translations uploaded in the All-Org context. #### Endpoint URL ' tags: - Manual Translation requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteManualTranslationsRequest' required: true parameters: [] responses: '204': description: Successfully deleted manual translations. '400': description: Operation failed content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Operation failed content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /api/rest/2.0/localizations/manual-translation/export: post: operationId: exportManualTranslations description: ' Export manual translations as a CSV file.
Version: 26.7.0.cl or later Downloads all manual translations for the org as a CSV file. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**), `ORG_ADMINISTRATION` (**Can administer Org**), or `APPLICATION_ADMINISTRATION` (**Can administer application**) privilege. #### Usage guidelines - The response is a CSV file with columns: `content`, `locale`, `translated-content`. - Defaults to `ORG` scope if not specified. - Set `scope` to `CLUSTER` to export translations from the All-Org context. - Returns a `404` error if no translations exist for the targeted org or cluster scope. #### Endpoint URL ' tags: - Manual Translation requestBody: content: application/json: schema: $ref: '#/components/schemas/ExportManualTranslationsRequest' required: true parameters: [] responses: '200': description: CSV file downloaded successfully. content: application/octet-stream: {} '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: No translations file found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Unexpected error. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /api/rest/2.0/localizations/manual-translation/locales/{locale}/export: post: operationId: getManualTranslationBundle description: ' Get translations bundle for a locale.
Version: 26.7.0.cl or later Retrieves all translations for a specific locale as a JSON map. Available to all authenticated users. No additional privileges are required. #### Usage guidelines - `locale` parameter must be a hyphenated locale code (for example, `fr-fr`, `de-de`, `JA-JP`). - Returns a JSON object with a `translations` map where each key is the original string and each value is the translated string. - If the org has no translations for the requested locale, the endpoint falls back to cluster-level translations. - Returns an empty `translations` map (not an error) if no entries exist at either level. #### Endpoint URL ' tags: - Manual Translation parameters: - in: path name: locale required: true schema: type: string description: Locale code for which to retrieve translations. For example, `fr-fr`, `de-de`, `JA-JP`. responses: '200': description: Translation bundle retrieved successfully. content: application/json: schema: type: object '400': description: Invalid request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: No translations found for the requested locale. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Unexpected error. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /api/rest/2.0/localizations/manual-translation/import: post: operationId: importManualTranslations description: ' Import manual translations from a CSV file.
Version: 26.7.0.cl or later Uploads a CSV file containing manual translations and upserts them into the database. Requires `ADMINISTRATION` (**Can administer ThoughtSpot**), `ORG_ADMINISTRATION` (**Can administer Org**), or `APPLICATION_ADMINISTRATION` (**Can administer application**) privilege. #### Usage guidelines - The CSV file must have exactly three columns in this order: `content`, `locale`, `translated-content`. - Maximum file size: **30 MB**. Maximum rows: **10,000**. - Only `.csv` files are accepted. - The import performs an **upsert**: existing entries matched by `(org_id, locale, content)` are updated; new entries are inserted. Entries not in the upload are left untouched. - Set `scope` to `CLUSTER` to upload translations to the All-Org context. Cluster-level translations act as defaults for orgs that have no translations for a locale. #### Endpoint URL ' tags: - Manual Translation requestBody: content: multipart/form-data: schema: type: object properties: translations_file: description: 'CSV file containing translations. The file must have three columns: `content`, `locale`, `translated-content`. Max file size: 30 MB. Max rows: 10,000.' type: string format: binary scope: description: 'Org scope for the import. `ORG` (default) targets the calling user''s current org. `CLUSTER` targets the All-Org context.' default: ORG type: string enum: - ORG - CLUSTER required: - translations_file required: true parameters: [] responses: '204': description: Successfully imported manual translations. '400': description: Operation failed content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden access. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Operation failed content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: ExportManualTranslationsRequest: type: object properties: scope: description: 'Org scope for the export. `ORG` (default) targets the calling user''s current org. `CLUSTER` targets the All-Org context.' default: ORG type: string enum: - ORG - CLUSTER DeleteManualTranslationsRequest: type: object properties: scope: description: 'Org scope for the delete. `ORG` (default) targets the calling user''s current org. `CLUSTER` targets the All-Org context.' default: ORG type: string enum: - ORG - CLUSTER ErrorResponse: type: object properties: error: type: object nullable: true securitySchemes: bearerAuth: type: http scheme: bearer x-roles: - name: 26.2.0.cl id: 26.2.0.cl tags: - 26.2.0.cl description: Roles for version 26.2.0.cl - name: 10.4.0.cl id: 10.4.0.cl tags: - 10.4.0.cl description: Roles for version 10.4.0.cl - name: 26.7.0.cl id: 26.7.0.cl tags: - 26.7.0.cl description: Roles for version 26.7.0.cl - name: 26.8.0.cl id: 26.8.0.cl tags: - 26.8.0.cl description: Roles for version 26.8.0.cl - name: 26.6.0.cl id: 26.6.0.cl tags: - 26.6.0.cl description: Roles for version 26.6.0.cl - name: 10.15.0.cl id: 10.15.0.cl tags: - 10.15.0.cl description: Roles for version 10.15.0.cl - name: 10.13.0.cl id: 10.13.0.cl tags: - 10.13.0.cl description: Roles for version 10.13.0.cl - name: 26.9.0.cl id: 26.9.0.cl tags: - 26.9.0.cl description: Roles for version 26.9.0.cl - name: 10.7.0.cl id: 10.7.0.cl tags: - 10.7.0.cl description: Roles for version 10.7.0.cl - name: 26.5.0.cl id: 26.5.0.cl tags: - 26.5.0.cl description: Roles for version 26.5.0.cl - name: 9.0.0.cl id: 9.0.0.cl tags: - 9.0.0.cl description: Roles for version 9.0.0.cl - name: 9.4.0.cl id: 9.4.0.cl tags: - 9.4.0.cl description: Roles for version 9.4.0.cl - name: 9.12.0.cl id: 9.12.0.cl tags: - 9.12.0.cl description: Roles for version 9.12.0.cl - name: 26.4.0.cl id: 26.4.0.cl tags: - 26.4.0.cl description: Roles for version 26.4.0.cl - name: 10.12.0.cl id: 10.12.0.cl tags: - 10.12.0.cl description: Roles for version 10.12.0.cl - name: 9.2.0.cl id: 9.2.0.cl tags: - 9.2.0.cl description: Roles for version 9.2.0.cl - name: 9.9.0.cl id: 9.9.0.cl tags: - 9.9.0.cl description: Roles for version 9.9.0.cl - name: 9.6.0.cl id: 9.6.0.cl tags: - 9.6.0.cl description: Roles for version 9.6.0.cl - name: 10.10.0.cl id: 10.10.0.cl tags: - 10.10.0.cl description: Roles for version 10.10.0.cl - name: 10.6.0.cl id: 10.6.0.cl tags: - 10.6.0.cl description: Roles for version 10.6.0.cl - name: 10.3.0.cl id: 10.3.0.cl tags: - 10.3.0.cl description: Roles for version 10.3.0.cl - name: 10.1.0.cl id: 10.1.0.cl tags: - 10.1.0.cl description: Roles for version 10.1.0.cl - name: 10.9.0.cl id: 10.9.0.cl tags: - 10.9.0.cl description: Roles for version 10.9.0.cl - name: 10.8.0.cl id: 10.8.0.cl tags: - 10.8.0.cl description: Roles for version 10.8.0.cl - name: 9.5.0.cl id: 9.5.0.cl tags: - 9.5.0.cl description: Roles for version 9.5.0.cl - name: 26.3.0.cl id: 26.3.0.cl tags: - 26.3.0.cl description: Roles for version 26.3.0.cl - name: 10.14.0.cl id: 10.14.0.cl tags: - 10.14.0.cl description: Roles for version 10.14.0.cl - name: 9.7.0.cl id: 9.7.0.cl tags: - 9.7.0.cl description: Roles for version 9.7.0.cl