openapi: 3.0.0
info:
title: ThoughtSpot Public REST 10.1.0.cl 26.7.0.cl API
version: '2.0'
servers:
- url: '{base-url}'
variables:
base-url:
default: https://localhost:443
security:
- bearerAuth: []
tags:
- name: 26.7.0.cl
paths:
/api/rest/2.0/ai/agent/conversations/{conversation_identifier}/delete:
delete:
operationId: deleteConversation
description: '
Deletes an existing agent conversation.
Version: 26.7.0.cl or later
Permanently deletes an existing saved agent conversation and all its associated messages. This operation is irreversible — deleted conversations cannot be recovered.
Requires `CAN_USE_SPOTTER` privilege and ownership of the conversation being deleted.
#### Usage guidelines
The request must include:
- `conversation_identifier` *(path parameter)*: the unique ID of the conversation to delete, as returned by `createAgentConversation` or `getConversationList`
A successful request returns an empty `204 No Content` response. The deleted conversation no longer appears in `getConversationList`.
#### Example request
```bash
DELETE /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/delete
```
#### Error responses
| Code | Description |
|------|-------------|
| 401 | Unauthorized — authentication token is missing, expired, or invalid. |
| 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or does not own the specified conversation. |
| 404 | Not Found — no conversation exists with the given `conversation_identifier` for the authenticated user. |
> ###### Note:
>
> - Deletion is permanent and cannot be undone. Ensure the correct `conversation_identifier` is used before calling this endpoint.
> - Only conversations created with `enable_save_chat: true` are persisted and can be deleted via this endpoint.
> - Available from version 26.7.0.cl and later.
> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.
#### Endpoint URL
'
tags:
- 26.7.0.cl
parameters:
- in: path
name: conversation_identifier
required: true
schema:
type: string
description: Unique identifier of the conversation to delete.
responses:
'204':
description: Successfully deleted the agent conversation.
'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/ai/agent/conversations/{conversation_identifier}/messages:
get:
operationId: getConversation
description: "\nRetrieves the full public-safe content of a saved agent conversation: ordered\nturns (user messages and agent response items) and sanitized code-execution\nfile metadata. Internal graph or branch state, Azure file identifiers, and\nmessages with a `SYSTEM` source are omitted. The full answer payload is not\nembedded; fetch it separately via `loadAnswer` using the `answer_id` on each\n`answer` response item.\nRequires `CAN_USE_SPOTTER` privilege and access to the specified conversation.
Version: 26.7.0.cl or later\n\nRetrieves the full public-safe content of a saved agent conversation. Returns ordered conversation messages — each carrying an optional user prompt (the user's message and any attachments) and the agent response items produced for that turn — plus sanitized metadata for any files generated by the code-execution tool. \n\nUse this endpoint to render a persisted conversation in a UI, build an audit trail, or post-process a completed conversation. The full answer payload is not embedded — fetch it separately via `loadAnswer` using the `answer_id` on each `answer` response item.\n\nRequires `CAN_USE_SPOTTER` privilege and access to the specified conversation.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier` _(path parameter)_: the unique ID of the conversation, as returned by `createAgentConversation` or `getConversationList`.\n\nIf the request is successful, the response contains two top-level fields:\n\n| Field | Type | Description |\n| ---------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `messages` | `ConversationMessage[]` | Ordered oldest to newest. Empty array when the conversation has no messages. |\n| `code_execution_files` | `CodeExecutionFileMetadata[]` | List of sanitized file metadata entries (one per `file_id`). Covers all code-execution-generated files referenced anywhere in the conversation. Empty array when there are none. |\n\nNo other top-level fields are returned.\n\n#### ConversationMessage fields\n\n| Field | Type | Description |\n| --------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------- |\n| `message_id` | `String` | Stable identifier for the turn. For liveboard-started synthetic first turns, this is the root node identifier. |\n| `timestamp_in_millis` | `Long` | Milliseconds since Unix epoch for the turn. |\n| `user_prompt` | `UserPrompt` | User-authored prompt that started the turn (message and attachments). `null` for liveboard-started synthetic first turns. |\n| `response_items` | `ConversationResponseItem[]` | Agent-side output produced in response to this turn. Empty array for in-progress turns. |\n\n#### UserPrompt fields\n\n| Field | Type | Description |\n| ------------- | ---------------------- | ---------------------------------------------------------------------------------------------------- |\n| `message` | `UserMessage` | User query that started the turn. `null` for liveboard-started synthetic first turns. |\n| `attachments` | `UserAttachmentItem[]` | Files or connector resources attached to the user message. Empty array when there are no attachments. |\n\n#### UserMessage fields\n\n| Field | Type | Description |\n| ------------ | -------- | --------------------------------------------- |\n| `message_id` | `String` | Unique identifier of the user-source message. |\n| `content` | `String` | Text body of the user query. |\n\n#### UserAttachmentItem fields\n\nDiscriminated by `type`. Only `\"file\"` or `\"resource\"` are valid values. Only the fields for the indicated variant are populated. See `ConversationResponseItem` below for the field definitions of the `file` and `resource` variants — `UserAttachmentItem` uses the same fields.\n\n#### ConversationResponseItem fields\n\nEvery item carries a `type` discriminator and these shared fields:\n\n| Field | Type | Description |\n| --------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------ |\n| `type` | `String` | Discriminator. One of `\"text\"`, `\"tool_call\"`, `\"tool_result\"`, `\"answer\"`, `\"file\"`, `\"resource\"`, `\"search_datasets\"`. |\n| `timestamp_in_millis` | `Long` | Milliseconds since Unix epoch when this item was produced. |\n| `is_thinking` | `Boolean` | `true` when the item represents internal agent reasoning rather than user-facing output. Consumers may hide or collapse these. |\n| `step_title` | `String` | Human-readable label for the agent step producing this item (e.g. `\"Searching\"`, `\"Visualising\"`). |\n\nVariant-specific fields:\n\n- **`text`** — agent text output: `content` (String), `content_type` (`ContentMimeType` enum), `file_reference` (FileReference).\n- **`tool_call`** — agent invoked a tool: `tool_call_id` (String), `tool_name` (String), `arguments` (JSON object).\n- **`tool_result`** — result returned from a tool invocation: `tool_call_id`, `tool_name`, `content`, `content_type` (`ContentMimeType` enum), `success` (Boolean).\n- **`answer`** — slim reference to a saved answer: `answer_id` (String), `tool_call_id`, `tool_name`.\n- **`file`** — uploaded or generated files: `files` (`PublicFileInfo[]`).\n- **`resource`** — MCP connector resource: `title`, `uri`, `name`, `mime_type`, `description`, `size` (Int), `connector_id`, `connector_name`, `connector_slug`, `transport_type` (`TransportType` enum).\n- **`search_datasets`** — dataset discovery result: `text` (String), `data_sources` (`DataSourceInfo[]`).\n\nClients should switch on `type` and ignore unknown variants for forward-compatibility.\n\n#### content_type values\n\n`content_type` is the `ContentMimeType` enum. The following values are defined:\n\n| Value | Wire MIME | Meaning |\n| --------------------------- | --------------------------- | ---------------------------------------------------- |\n| `TEXT_PLAIN` | `text/plain` | Plain text. Default for `tool_result`. |\n| `TEXT_MARKDOWN` | `text/markdown` | Markdown. Default for `text`. |\n| `TEXT_X_MARKDOWN_WITH_CODE` | `text/x-markdown-with-code` | Markdown whose body starts with a fenced code block. |\n| `TEXT_HTML` | `text/html` | Raw HTML. |\n\n#### transport_type values\n\n`transport_type` is the `TransportType` enum used on the `resource` variant.\n\n| Value | Meaning |\n| ------------------ | --------------------------------------------- |\n| `STREAMABLE_HTTP` | Streamable HTTP transport (default for MCP). |\n| `SSE` | Server-sent events transport. |\n\n#### FileReference fields\n\n| Field | Type | Description |\n| ------------------------ | -------- | ------------------------------------------------------------ |\n| `file_id` | `String` | Unique identifier of the code-execution-generated file. |\n| `display_name` | `String` | Human-readable file name. |\n| `created_time_in_millis` | `Long` | Milliseconds since Unix epoch when the file was created. |\n\nCross-reference `file_id` against `code_execution_files` to retrieve full metadata including the `expired` flag before attempting a download.\n\n#### PublicFileInfo fields\n\n| Field | Type | Description |\n| ------------------------ | -------- | -------------------------------------------------------- |\n| `file_id` | `String` | Unique identifier of the file. |\n| `display_name` | `String` | Human-readable file name. |\n| `file_type` | `String` | File type such as `csv`, `pdf`, or `png`. |\n| `created_time_in_millis` | `Long` | Milliseconds since Unix epoch when the file was created. |\n| `size_bytes` | `Int` | File size in bytes. |\n\n#### CodeExecutionFileMetadata fields\n\nEach entry in the `code_execution_files` array contains:\n\n| Field | Type | Description |\n| ------------------------ | --------- | ------------------------------------------------------------------------------------------------------------------------------- |\n| `file_id` | `String` | Unique identifier of the file. |\n| `display_name` | `String` | Human-readable file name. |\n| `file_type` | `String` | File type such as `csv`, `pdf`, or `png`. |\n| `created_time_in_millis` | `Long` | Milliseconds since Unix epoch when the file was created. |\n| `expired` | `Boolean` | When `true`, the underlying file is no longer retrievable from code-execution storage; UIs should disable download and preview. |\n\n#### Loading answer payloads\n\nEach `AnswerResponseItem` in the response contains an `answer_id` field. Pass this value as the `answer_identifier` parameter to `loadAnswer` to retrieve the full answer payload (TML tokens, visualization metadata) for that item.\n\n#### Example request\n\n```bash\nGET /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/messages\n```\n\n#### Example response\n\n```json\n{\n \"messages\": [\n {\n \"message_id\": \"node_u_01\",\n \"timestamp_in_millis\": 1744000000000,\n \"user_prompt\": {\n \"message\": {\n \"message_id\": \"msg_u_01\",\n \"content\": \"Show me revenue by region as a chart.\"\n },\n \"attachments\": []\n },\n \"response_items\": [\n {\n \"type\": \"tool_call\",\n \"tool_call_id\": \"toolu_01ABC\",\n \"tool_name\": \"search_datasets\",\n \"step_title\": \"Searching datasets\",\n \"arguments\": { \"query\": \"revenue\" },\n \"timestamp_in_millis\": 1744000001000,\n \"is_thinking\": false\n },\n {\n \"type\": \"answer\",\n \"answer_id\": \"ans_01XYZ\",\n \"tool_call_id\": \"toolu_02DEF\",\n \"tool_name\": \"fetch_and_visualize\",\n \"step_title\": \"Visualising\",\n \"timestamp_in_millis\": 1744000004000,\n \"is_thinking\": false\n },\n {\n \"type\": \"text\",\n \"content\": \"Revenue is highest in APAC.\",\n \"content_type\": \"TEXT_MARKDOWN\",\n \"timestamp_in_millis\": 1744000005000,\n \"is_thinking\": false,\n \"step_title\": null,\n \"file_reference\": {\n \"file_id\": \"revenue_by_region.csv\",\n \"display_name\": \"revenue_by_region.csv\",\n \"created_time_in_millis\": 1744027200000\n }\n }\n ]\n }\n ],\n \"code_execution_files\": [\n {\n \"file_id\": \"revenue_by_region.csv\",\n \"display_name\": \"revenue_by_region.csv\",\n \"file_type\": \"csv\",\n \"created_time_in_millis\": 1744027200000,\n \"expired\": false\n }\n ]\n}\n```\n\n#### Example: liveboard-started conversation\n\nWhen a conversation is initiated from a saved liveboard visualization rather than a user query, the first turn is synthetic. `user_prompt` is `null`, and `response_items` contains a single `answer` item referencing the seed visualization.\n\n```json\n{\n \"messages\": [\n {\n \"message_id\": \"ROOT_NODE\",\n \"timestamp_in_millis\": 1743999000000,\n \"user_prompt\": null,\n \"response_items\": [\n {\n \"type\": \"answer\",\n \"answer_id\": \"lb_seed_01\",\n \"tool_call_id\": null,\n \"tool_name\": null,\n \"step_title\": null,\n \"timestamp_in_millis\": 1743999000000,\n \"is_thinking\": false\n }\n ]\n }\n ],\n \"code_execution_files\": []\n}\n```\n\nSubsequent turns follow the normal user-to-agent pattern.\n\n#### Error responses\n\n| Code | Description |\n| ---- | --------------------------------------------------------------------------------------------------------------------------- |\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks access to the specified conversation. |\n| 404 | Not Found — no conversation exists with the given identifier for the authenticated user. |\n\n> ###### Note:\n>\n> - Messages with an internal `SYSTEM` source are always dropped from the response.\n> - In-progress turns are still returned with an empty `response_items` array so clients can render the user message immediately.\n> - Do not assume every `tool_call` has a paired `tool_result` or `answer` — an interrupted conversation can leave a dangling call.\n> - Available from version 26.7.0.cl and later.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
parameters:
- in: path
name: conversation_identifier
required: true
schema:
type: string
description: Unique identifier of the conversation to load.
responses:
'200':
description: Common successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ConversationMessageResponse'
'201':
description: Common error response
content:
application/json:
schema:
$ref: '#/components/schemas/ConversationMessageResponse'
'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/ai/agent/conversations:
get:
operationId: getConversationList
description: "\nRetrieves the list of saved agent conversations for the currently authenticated user.\nOnly conversations created with `enable_save_chat: true` are returned.
Version: 26.7.0.cl or later\n\nRetrieves a paginated list of saved agent conversations for the currently authenticated user. Only conversations that were created with `enable_save_chat: true` in `createAgentConversation` are returned.\n\nRequires `CAN_USE_SPOTTER` privilege.\n\n#### Usage guidelines\n\nThe request supports the following optional query parameters:\n\n- `limit`: maximum number of conversations to return. Use this together with `offset` for pagination.\n- `offset`: number of conversations to skip before returning results. Defaults to `0`.\n- `skip_empty`: when `true` (default), conversations with no messages are excluded from the results. Set to `false` to include empty conversations.\n\nIf the request is successful, the response includes a `conversations` array. Each entry contains:\n\n- `conversation_identifier`: the unique ID of the conversation, used as input to `sendAgentConversationMessage`, `updateConversation`, `deleteConversation`, `stopConversation`, and `loadAnswer`\n- `conversation_title`: the display name of the conversation\n- `created_at`: ISO 8601 timestamp of when the conversation was created\n- `updated_at`: ISO 8601 timestamp of the most recent update to the conversation\n- `data_source_identifiers`: list of unique IDs of the data sources associated with the conversation\n- `data_source_names`: array of `{ id, name }` objects for the data sources associated with the conversation\n\n#### Pagination\n\nUse `limit` and `offset` to page through large result sets:\n\n```\nGET /api/rest/2.0/ai/agent/conversations?limit=20&offset=0 → first page\nGET /api/rest/2.0/ai/agent/conversations?limit=20&offset=20 → second page\n```\n\n#### Pagination and `has_more`\n\nThe response includes a `has_more: Boolean` field. When `true`, there are additional conversations beyond the current page — increment `offset` by `limit` to fetch the next page. When `has_more` is `false`, the current page is the last. Note that `total_count` is not returned; use `has_more` to drive paging controls.\n\n#### Example response\n\n```json\n{\n \"conversations\": [\n {\n \"conversation_identifier\": \"abc123\",\n \"conversation_title\": \"Sales by Region Q1\",\n \"created_at\": \"2026-03-01T10:00:00Z\",\n \"updated_at\": \"2026-03-05T14:23:00Z\",\n \"data_source_identifiers\": [\"ds-001\"],\n \"data_source_names\": [{ \"id\": \"ds-001\", \"name\": \"Retail Sales\" }]\n }\n ],\n \"has_more\": false\n}\n```\n\n#### Error responses\n\n| Code | Description |\n|------|-------------|\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege. |\n\n> ###### Note:\n>\n> - Only conversations created with `enable_save_chat: true` appear in this list. Conversations created with `enable_save_chat: false` (the default) are not persisted and cannot be retrieved.\n> - Available from version 26.7.0.cl and later.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
parameters:
- in: query
name: limit
required: false
schema:
type: integer
format: int32
default: 30
description: Maximum number of conversations to return. Used for pagination.
- in: query
name: offset
required: false
schema:
type: integer
format: int32
default: 0
description: Number of conversations to skip before returning results. Used for pagination.
- in: query
name: skip_empty
required: false
schema:
type: boolean
default: true
description: When true, excludes conversations with no messages. Defaults to true.
responses:
'200':
description: Common successful response
content:
application/json:
schema:
$ref: '#/components/schemas/AgentConversationHistoryResponse'
'201':
description: Common error response
content:
application/json:
schema:
$ref: '#/components/schemas/AgentConversationHistoryResponse'
'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/ai/agent/conversations/{conversation_identifier}/answers/{answer_identifier}/details:
get:
operationId: loadAnswer
description: "\nLoads the full answer payload for a specific answer item in an agent\nconversation. Returns structured answer data including the TML query, token\nbreakdown, visualization metadata, and agent context state.\nPass the `answer_id` from an `AnswerResponseItem` in the `getConversation`\nresponse as the `answer_identifier` parameter.\nRequires `CAN_USE_SPOTTER` privilege and access to the specified conversation.
Version: 26.7.0.cl or later\n\nLoads the answer details for a specific answer item in an agent conversation. Returns structured answer data including the TML token list, visualization metadata, and agent context state. Use this endpoint to retrieve the full answer representation for an answer item — for example, to re-render a chart, export a query, or inspect the generated TML.\n\nRequires `CAN_USE_SPOTTER` privilege and access to the specified conversation.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier` *(path parameter)*: the unique ID of the conversation, as returned by `createAgentConversation`\n- `answer_identifier` *(path parameter)*: the `answer_id` field from an `AnswerResponseItem` in the `getConversation` response\n\nIf the request is successful, the response contains an `answer` object with the following fields:\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `title` | `String` | Display title of the generated answer (e.g., `\"sales by month\"`). |\n| `description` | `String` | Optional description of the answer. |\n| `session_identifier` | `String` | Unique identifier of the session in which this answer was generated. |\n| `generation_number` | `Int` | Generation sequence number of this answer within the session. |\n| `tokens` | `[String]` | Ordered list of TML token strings that make up the answer query (e.g., `[\"[sales]\", \"[date].'monthly'\"]`). |\n| `visualization_type` | `VizType` | Suggested visualization type: `Chart`, `Table`, or `Undefined`. `null` if no suggestion is available. |\n| `formulas` | `[String]` | List of formula names referenced in the answer. Empty if none are used. |\n| `parameters` | `[String]` | List of parameter names applied to the answer. Empty if none are used. |\n| `sub_queries` | `[JSON]` | List of sub-query objects used in the answer. Empty if none are present. |\n| `ac_state` | `ACState` | Agent context state, including `transaction_identifier` and `generation_number`, used to correlate this answer with a specific agent turn. |\n\n#### ACState fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `transaction_identifier` | `String` | Unique identifier of the agent transaction that produced this answer. |\n| `generation_number` | `Int` | Generation number within the transaction. |\n\n#### Example request\n\n```bash\nGET /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/answers/{answer_identifier}/details\n```\n\n#### Example response\n\n```json\n{\n \"answer\": {\n \"title\": \"sales by month\",\n \"description\": \"\",\n \"session_identifier\": \"7b00b801-73f4-4639-af5e-e775584ceba6\",\n \"generation_number\": 1,\n \"tokens\": [\"[sales]\", \"[date].'monthly'\"],\n \"visualization_type\": null,\n \"formulas\": [],\n \"parameters\": [],\n \"sub_queries\": [],\n \"ac_state\": {\n \"transaction_identifier\": \"7f6c9948-b4c7-4098-bb1f-6c67bc0e5699\",\n \"generation_number\": 1\n }\n }\n}\n```\n\n#### Typical usage scenario\n\n1. Call `getConversation` to retrieve the full conversation history.\n2. Locate an `AnswerResponseItem` in `response_items` — note its `answer_id` field.\n3. Call `loadAnswer` with the `conversation_identifier` and `answer_id` as `answer_identifier`.\n4. The returned `tokens` array can be used to open the answer in the ThoughtSpot search interface or rendered as pill chips in the UI.\n\n#### Error responses\n\n| Code | Description |\n|------|-------------|\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or lacks access to the specified conversation. |\n| 404 | Not Found — no conversation or message exists with the given identifiers for the authenticated user. |\n| 422 | Unprocessable Entity — the message does not contain an answer of the expected type. |\n\n> ###### Note:\n>\n> - This endpoint only loads answer-type messages. Other message types are not supported.\n> - `visualization_type` may be `null` if the agent did not produce a visualization suggestion for this answer.\n> - `formulas`, `parameters`, and `sub_queries` are returned as empty arrays when not applicable — they are never `null`.\n> - Available from version 26.7.0.cl and later.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
parameters:
- in: path
name: conversation_identifier
required: true
schema:
type: string
description: Unique identifier of the conversation.
- in: path
name: answer_identifier
required: true
schema:
type: string
description: 'Unique identifier of the answer to load. Use the `answer_id` field from an
`AnswerResponseItem` returned by `getConversation`.'
responses:
'200':
description: Common successful response
content:
application/json:
schema:
$ref: '#/components/schemas/LoadAnswerResponse'
'201':
description: Common error response
content:
application/json:
schema:
$ref: '#/components/schemas/LoadAnswerResponse'
'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/ai/agent/conversations/{conversation_identifier}/update:
post:
operationId: updateConversation
description: "\nUpdates attributes of an existing agent conversation. Currently only the\ndisplay title can be updated; additional conversation attributes may be\nsupported in future versions. At least one updatable attribute must be\nprovided in the request body.
Version: 26.7.0.cl or later\n\nUpdates attributes of an existing saved agent conversation. Currently only the conversation's display `title` can be updated; additional updatable attributes may be supported in future versions. At least one updatable attribute must be supplied in the request body.\n\nRequires `CAN_USE_SPOTTER` privilege and ownership of the conversation being updated.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier` *(path parameter)*: the unique ID of the conversation to update, as returned by `createAgentConversation` or `getConversationList`\n- At least one updatable attribute in the request body:\n - `title` *(optional)*: the new display name for the conversation. When provided, must be a non-empty string.\n\nA successful request returns an empty `204 No Content` response. Updated attributes are reflected immediately in subsequent calls to `getConversationList`.\n\n#### Example request\n\n```bash\nPOST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/update\nContent-Type: application/json\n\n{\n \"title\": \"Revenue Breakdown by Product Line\"\n}\n```\n\n#### Error responses\n\n| Code | Description |\n|------|-------------|\n| 400 | Bad Request — the request body is empty or `title` is provided as an empty string. |\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the authenticated user does not have `CAN_USE_SPOTTER` privilege or does not own the specified conversation. |\n| 404 | Not Found — no conversation exists with the given `conversation_identifier` for the authenticated user. |\n| 422 | Unprocessable Entity — the request body is malformed or contains an invalid field value. |\n\n> ###### Note:\n>\n> - Only conversations created with `enable_save_chat: true` can be updated. Unsaved conversations are not persisted and do not have a retrievable identifier.\n> - Available from version 26.7.0.cl and later.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateConversationRequest'
required: true
parameters:
- in: path
name: conversation_identifier
required: true
schema:
type: string
description: Unique identifier of the conversation to update.
responses:
'204':
description: Successfully updated the agent conversation.
'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/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:
- 26.7.0.cl
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:
- 26.7.0.cl
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:
- 26.7.0.cl
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:
- 26.7.0.cl
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'
/api/rest/2.0/customization/styles/fonts/delete:
post:
operationId: deleteStyleFonts
description: "\n Version: 26.7.0.cl or later\n\nDeletes one or more custom fonts from the cluster-level or org-level font library. If a deleted font is assigned to visualization areas, those assignments automatically fallback to the cluster/system default font. The response lists all affected areas where the font was explicitly set. Note: dry_run defaults to true. To actually delete fonts, you must explicitly pass dry_run: false.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\n\n#### Usage guidelines\n\n- Provide one or more font UUIDs or names in `font_identifiers`.\n- Set `scope` to `CLUSTER` to delete from the cluster-level library. Set `scope` to `ORG` (default) to delete from the authenticated user's org library.\n- Use `dry_run: true` to preview which visualization areas would be affected without actually deleting the font. The response lists affected assignments; no changes are applied.\n- Deletions cannot be undone. Re-upload the font file using `uploadStyleFont` if needed.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteStyleFontsRequest'
required: true
parameters: []
responses:
'200':
description: Font deleted successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StyleFontDeleteData'
examples:
example_1:
summary: Font deleted with affected assignments
value:
affected_assignments:
- org:
id: 1234567890
name: Sales
visualization_areas:
- CHART_X_AXIS_LABELS
- CHART_Y_AXIS_LABELS
example_2:
summary: Font deleted with no affected assignments
value:
affected_assignments: []
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalid_request:
summary: Invalid request
value:
error:
message:
code: 10002
incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
debug: Field 'font_identifiers' must contain at least one identifier.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized_access:
summary: Unauthorized access
value:
error:
message:
code: 10097
incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
debug: Authentication required to delete custom fonts from the font library.
'403':
description: Forbidden access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden_access:
summary: Forbidden access
value:
error:
message:
code: 10023
incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
debug: Only Tenant admin can delete cluster-level fonts.
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unexpected_error:
summary: Unexpected error
value:
error:
message:
code: 10038
incident_id_guid: d4e5f678-9012-3456-defa-456789012345
trace_id_guid: d4e5f678-9012-3456-defa-456789012345
debug: Unexpected server error while deleting fonts from the font library.
/api/rest/2.0/customization/styles/logos/export:
post:
operationId: exportStyleLogos
description: "\n Version: 26.7.0.cl or later\n\nDownloads the active logos (default and wide slots) at the requested scope as a single ZIP archive containing both logo image files. If no custom logo has been uploaded at the ORG scope, the archive contains the resolved logo falling through from the cluster. If no cluster logo has been uploaded, no file is returned.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\n\n#### Usage guidelines\n\n- Set `scope` to `CLUSTER` to download cluster-level logos.\n- Set `scope` to `ORG` (default) to download logos for the authenticated user's org.\n- The response is a ZIP archive (`application/zip`). Save the response body directly to a `.zip` file.\n- The archive always contains two files — one for the DEFAULT slot and one for the WIDE slot — even if no custom logo is set at the requested scope.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExportStyleLogosRequest'
required: true
parameters:
- name: Accept
in: header
schema:
type: string
enum:
- application/zip
default: application/zip
responses:
'200':
description: Logo ZIP archive retrieved successfully.
content:
application/zip: {}
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized_access:
summary: Unauthorized access
value:
error:
message:
code: 10097
incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
debug: Authentication required to export style logos.
'403':
description: Forbidden access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden_access:
summary: Forbidden access
value:
error:
message:
code: 10023
incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
debug: Cluster-level logos can only be exported from PRIMARY org.
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unexpected_error:
summary: Unexpected error
value:
error:
message:
code: 10038
incident_id_guid: d4e5f678-9012-3456-defa-456789012345
trace_id_guid: d4e5f678-9012-3456-defa-456789012345
debug: Unexpected server error while exporting style logos.
/api/rest/2.0/customization/styles/search:
post:
operationId: searchStyleCustomizations
description: "\n Version: 26.7.0.cl or later\n\nRetrieves style preferences at cluster level or for the authenticated user's org. Cluster-level preferences serve as defaults for all orgs. Org-level preferences override cluster defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\n\n#### Usage guidelines\n\n- Set `scope` to `CLUSTER` to retrieve cluster-level style defaults.\n- Set `scope` to `ORG` (default) to retrieve preferences for the authenticated user's org.\n- Each field in the response includes an `is_overridden` flag indicating whether the value was explicitly set at the requested scope or inherited from a parent scope (cluster or system default).\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchStyleCustomizationsRequest'
required: true
parameters: []
responses:
'200':
description: Style preferences retrieved successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StylePreference'
examples:
example_1:
value:
- scope: CLUSTER
navigation_panel:
theme: DARK
is_overridden: false
chart_color_palette:
colors:
- primary: '#2359B6'
secondary:
- '#1A4690'
- '#0E2E66'
- '#07194A'
- '#030D30'
- primary: '#E8552D'
secondary:
- '#C4421A'
- '#9E2F0D'
- '#7A2005'
- '#581302'
- primary: '#F5A623'
secondary:
- '#D08B0E'
- '#A86E05'
- '#825202'
- '#5E3900'
- primary: '#7ED321'
secondary:
- '#62A815'
- '#488009'
- '#305A03'
- '#1C3800'
- primary: '#9B59B6'
secondary:
- '#7D3F9A'
- '#612C7E'
- '#481C62'
- '#320F48'
- primary: '#1ABC9C'
secondary:
- '#0E9E81'
- '#077F67'
- '#03624E'
- '#014838'
- primary: '#E74C3C'
secondary:
- '#C0392B'
- '#9A2518'
- '#761409'
- '#540703'
- primary: '#3498DB'
secondary:
- '#1A7DC0'
- '#0E60A0'
- '#074580'
- '#032C60'
disable_color_rotation: false
is_overridden: false
embedded_footer_text:
value: ''
is_overridden: false
logo:
default_logo:
id: a1b2c3d4-0001-0001-0001-000000000001
is_overridden: false
wide_logo:
id: a1b2c3d4-0002-0002-0002-000000000002
is_overridden: false
visualization_fonts:
chart_visualization_fonts:
- visualization_area: CHART_X_AXIS_LABELS
font_id: null
font_name: null
is_overridden: false
table_visualization_fonts:
- visualization_area: TABLE_VALUE_CELLS
font_id: null
font_name: null
is_overridden: false
- scope: ORG
org:
id: 1234567890
name: Sales
navigation_panel:
theme: CUSTOM
base_color: '#2359B6'
is_overridden: true
chart_color_palette:
colors:
- primary: '#2359B6'
secondary:
- '#1A4690'
- '#0E2E66'
- '#07194A'
- '#030D30'
- primary: '#E8552D'
secondary:
- '#C4421A'
- '#9E2F0D'
- '#7A2005'
- '#581302'
- primary: '#F5A623'
secondary:
- '#D08B0E'
- '#A86E05'
- '#825202'
- '#5E3900'
- primary: '#7ED321'
secondary:
- '#62A815'
- '#488009'
- '#305A03'
- '#1C3800'
- primary: '#9B59B6'
secondary:
- '#7D3F9A'
- '#612C7E'
- '#481C62'
- '#320F48'
- primary: '#1ABC9C'
secondary:
- '#0E9E81'
- '#077F67'
- '#03624E'
- '#014838'
- primary: '#E74C3C'
secondary:
- '#C0392B'
- '#9A2518'
- '#761409'
- '#540703'
- primary: '#3498DB'
secondary:
- '#1A7DC0'
- '#0E60A0'
- '#074580'
- '#032C60'
disable_color_rotation: false
is_overridden: false
embedded_footer_text:
value: Powered by Sales Analytics
is_overridden: true
logo:
default_logo:
id: b2c3d4e5-0001-0001-0001-000000000011
is_overridden: true
wide_logo:
id: b2c3d4e5-0002-0002-0002-000000000022
is_overridden: true
visualization_fonts:
chart_visualization_fonts:
- visualization_area: CHART_X_AXIS_LABELS
font_id: c3d4e5f6-1111-1111-1111-111111111111
font_name: Acme Sans
is_overridden: true
table_visualization_fonts:
- visualization_area: TABLE_VALUE_CELLS
font_id: null
font_name: Optimo-Plain, Helvetica Neue, Helvetica, Arial, sans-serif
is_overridden: false
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalid_request:
summary: Invalid request
value:
error:
message:
code: 10002
incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
debug: Field 'org_identifiers' is only allowed when scope is ORG.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized_access:
summary: Unauthorized access
value:
error:
message:
code: 10097
incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
debug: Authentication required to retrieve style preferences for the cluster or org.
'403':
description: Forbidden access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden_access:
summary: Forbidden access
value:
error:
message:
code: 10023
incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
debug: Cluster config can only be accessed from PRIMARY org.
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unexpected_error:
summary: Unexpected error
value:
error:
message:
code: 10038
incident_id_guid: d4e5f678-9012-3456-defa-456789012345
trace_id_guid: d4e5f678-9012-3456-defa-456789012345
debug: Unexpected server error while retrieving style customization preferences.
/api/rest/2.0/customization/styles/fonts/search:
post:
operationId: searchStyleFonts
description: "\n Version: 26.7.0.cl or later\n\nReturns custom fonts from the cluster-level or org-level font library. Omitting all filter fields returns all fonts in the target scope.\n\nWhen `include_font_assignments` is `true`, the response includes only the visualization areas explicitly assigned to each font. For cluster-scoped fonts, `org` is returned as `null`.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\n\n#### Usage guidelines\n\n- Set `scope` to `CLUSTER` to search the cluster-level library. Set `scope` to `ORG` (default) to search the authenticated user's org library.\n- Use `font_identifier` to look up a specific font by UUID or name.\n- Use `name_pattern` for partial, case-insensitive name matching.\n- Set `include_font_assignments` to `true` to include visualization areas this font is currently assigned to. Defaults to `false`.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchStyleFontsRequest'
required: true
parameters: []
responses:
'200':
description: Custom fonts retrieved successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StyleFontRecord'
examples:
example_1:
value:
- id: c3d4e5f6-1111-1111-1111-111111111111
scope: ORG
org:
id: 1234567890
name: Sales
name: Acme Sans
weight: NORMAL
style: NORMAL
color: '#333333'
creation_time_in_millis: 1714000000000
assignments:
- org:
id: 1234567890
name: Sales
visualization_areas:
- CHART_X_AXIS_LABELS
- CHART_Y_AXIS_LABELS
- id: d4e5f6a7-2222-2222-2222-222222222222
scope: CLUSTER
name: Corporate Bold
weight: BOLD
style: NORMAL
color: '#000000'
creation_time_in_millis: 1713500000000
assignments: []
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalid_request:
summary: Invalid request
value:
error:
message:
code: 10002
incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
debug: Only one of 'font_identifier' or 'name_pattern' may be provided.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized_access:
summary: Unauthorized access
value:
error:
message:
code: 10097
incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
debug: Authentication required to search the cluster-level or org-level font library.
'403':
description: Forbidden access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden_access:
summary: Forbidden access
value:
error:
message:
code: 10023
incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
debug: Cluster config can only be accessed from PRIMARY org.
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unexpected_error:
summary: Unexpected error
value:
error:
message:
code: 10038
incident_id_guid: d4e5f678-9012-3456-defa-456789012345
trace_id_guid: d4e5f678-9012-3456-defa-456789012345
debug: Unexpected server error while searching the font library.
/api/rest/2.0/customization/styles/update:
post:
operationId: updateStyleCustomization
description: "\n Version: 26.7.0.cl or later\n\nUpdates style preferences at cluster level or for the authenticated user's org, including navigation panel color, chart color palette, embedded footer text, logo, and font assignments per visualization area. Cluster-level preferences serve as defaults for all orgs. Org-level preferences override cluster defaults. Resetting an Org-level preference falls back to Cluster-level preference, which on reset falls back to system defaults.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\n\n#### Usage guidelines\n\nTwo operations are supported via the `operation` field:\n\n- **REPLACE** (default): Applies the fields provided in the request. Omitted fields remain unchanged.\n- **RESET**: Reverts specific fields to defaults. Specify which fields to reset using `reset_options.style` (for style fields) and `reset_options.visualization_areas` (for font assignments). Fields not listed in `reset_options` are not affected.\n\n#### Logo upload\n\nLogo files are uploaded as binary fields using `multipart/form-data`:\n\n- `default_logo`: Square app icon and favicon. Recommended size: 140×140 px. Accepted formats: PNG, JPG.\n- `wide_logo`: Horizontal top nav bar logo. Recommended size: 230×45 px. Accepted formats: PNG, JPG.\n\nTo reset a logo to the default, use `operation: RESET` with `reset_options.style` set to `DEFAULT_LOGO` or `WIDE_LOGO`.\n\n#### Navigation panel color\n\nSet `navigation_panel.theme` to one of:\n\n- `DARK`: Default dark theme.\n- `TWO_TONE`: Dual-tone panel style.\n- `CUSTOM`: User-defined color. Provide `navigation_panel.base_color` as a 6-digit hex string (e.g. `#2359B6`).\n\n#### Chart color palette\n\nProvide exactly 8 color entries in `chart_color_palette.colors`. Each entry requires a `primary` hex color. If `secondary` shades are omitted, the server auto-generates 4 shades from the primary color.\n\n#### Font assignments\n\nSpecify `visualization_fonts.chart_visualization_fonts`, `visualization_fonts.table_visualization_fonts`, and `visualization_fonts.advanced_chart_visualization_fonts` to assign custom fonts to specific visualization areas. Only provide the areas you want to update; omitted areas remain unchanged.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
scope:
description: 'Scope at which to apply the preferences. CLUSTER sets cluster-level
defaults for all orgs. ORG applies to the authenticated user''s org.'
default: ORG
type: string
enum:
- CLUSTER
- ORG
operation:
description: 'Operation to perform. REPLACE (default) applies the provided fields and
leaves omitted fields unchanged. RESET reverts fields listed in
reset_options to defaults.'
default: REPLACE
type: string
enum:
- REPLACE
- RESET
reset_options:
description: 'Fields to reset when operation is RESET. Specify style fields and
visualization areas to revert to defaults.'
allOf:
- $ref: '#/components/schemas/StyleResetOptionsInput'
navigation_panel:
description: 'Navigation panel color. Provide theme and, when theme is CUSTOM, also
provide base_color.'
allOf:
- $ref: '#/components/schemas/NavigationPanelInput'
chart_color_palette:
description: 'Chart color palette. When provided with operation REPLACE, exactly 8
color entries must be specified in colors.'
allOf:
- $ref: '#/components/schemas/StyleColorPaletteInput'
embedded_footer_text:
description: 'Custom footer text for the embedded application. An empty
string clears the footer.'
type: string
visualization_fonts:
description: 'Font assignments per visualization area. Provide only the areas to
update; omitted areas remain unchanged.'
allOf:
- $ref: '#/components/schemas/VisualizationFontsInput'
default_logo:
description: 'Binary image for the DEFAULT logo slot (square app icon and favicon;
recommended 140x140 px). Accepted formats: PNG, JPG.'
type: string
format: binary
wide_logo:
description: 'Binary image for the WIDE logo slot (horizontal top nav bar logo;
recommended 230x45 px). Accepted formats: PNG, JPG.'
type: string
format: binary
required:
- scope
encoding:
reset_options:
contentType: application/json
navigation_panel:
contentType: application/json
chart_color_palette:
contentType: application/json
visualization_fonts:
contentType: application/json
required: true
parameters: []
responses:
'204':
description: Style preferences updated successfully.
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalid_request:
summary: Invalid request
value:
error:
message:
code: 10002
incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
debug: chart_color_palette must specify exactly 8 color entries when operation is REPLACE.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized_access:
summary: Unauthorized access
value:
error:
message:
code: 10097
incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
debug: Authentication required to update style customization preferences.
'403':
description: Forbidden access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden_access:
summary: Forbidden access
value:
error:
message:
code: 10023
incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
debug: Cluster-level style customization can only be updated from PRIMARY org.
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unexpected_error:
summary: Unexpected error
value:
error:
message:
code: 10038
incident_id_guid: d4e5f678-9012-3456-defa-456789012345
trace_id_guid: d4e5f678-9012-3456-defa-456789012345
debug: Unexpected server error while updating style customization preferences.
/api/rest/2.0/customization/styles/fonts/{font_identifier}/update:
post:
operationId: updateStyleFont
description: "\n Version: 26.7.0.cl or later\n\nUpdates the metadata of an existing custom font in the cluster-level or org-level font library. Only the fields provided in the request are modified; omitted fields remain unchanged.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\n\n#### Usage guidelines\n\n- Identify the font using `font_identifier` (UUID or name).\n- Set `scope` to `CLUSTER` to target the cluster-level library. Set `scope` to `ORG` (default) to target the authenticated user's org library.\n- To replace the font file itself (WOFF/WOFF2 binary), delete the existing font and re-upload using `uploadStyleFont`.\n- `color` must be a valid 6-digit hex string (e.g. `#333333`) if provided.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStyleFontRequest'
required: true
parameters:
- in: path
name: font_identifier
required: true
schema:
type: string
description: UUID or name of the font to update.
responses:
'204':
description: Font metadata updated successfully.
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalid_request:
summary: Invalid request
value:
error:
message:
code: 10002
incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
debug: Font color must be a valid 6-digit hex string (e.g. '#333333').
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized_access:
summary: Unauthorized access
value:
error:
message:
code: 10097
incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
debug: Authentication required to update a custom font.
'403':
description: Forbidden access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden_access:
summary: Forbidden access
value:
error:
message:
code: 10023
incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
debug: Only Tenant admin can update cluster-level fonts.
'500':
description: Unexpected error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unexpected_error:
summary: Unexpected error
value:
error:
message:
code: 10038
incident_id_guid: d4e5f678-9012-3456-defa-456789012345
trace_id_guid: d4e5f678-9012-3456-defa-456789012345
debug: Unexpected server error while updating the custom font.
/api/rest/2.0/customization/styles/fonts/upload:
post:
operationId: uploadStyleFont
description: "\n Version: 26.7.0.cl or later\n\nUploads a custom font to the cluster-level or org-level font library. Cluster-level fonts are available as defaults for all orgs. Org-level fonts are only available within that org.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege.\n\n#### Usage guidelines\n\n- Only **WOFF** and **WOFF2** font formats are accepted. TTF and OTF files are rejected with an error.\n- Set `scope` to `CLUSTER` to upload to the cluster-level library. Set `scope` to `ORG` (default) to upload to the authenticated user's org library.\n- `weight` defaults to `NORMAL` if omitted. Supported values: `NORMAL`, `LIGHT`, `BOLD`.\n- `style` defaults to `NORMAL` if omitted. Supported values: `NORMAL`, `ITALIC`, `OBLIQUE`.\n- `color` defaults to `#000000` (black) if omitted. Provide as a 6-digit hex string (e.g. `#333333`).\n- The uploaded font can be assigned to visualization areas using the `updateStyleCustomization` endpoint.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
scope:
description: 'Scope of the font library to upload to. CLUSTER uploads to the
cluster-level library, making the font available as a default for all
orgs. ORG uploads to the authenticated user''s org library. Defaults to
ORG if omitted.'
default: ORG
type: string
enum:
- CLUSTER
- ORG
name:
description: Display name for the font (e.g. "Acme Sans").
type: string
weight:
description: 'Weight of the font. Supported values: NORMAL, LIGHT, BOLD. Defaults to
NORMAL if omitted.'
default: NORMAL
type: string
enum:
- NORMAL
- LIGHT
- BOLD
style:
description: 'Style of the font. Supported values: NORMAL, ITALIC, OBLIQUE. Defaults
to NORMAL if omitted.'
default: NORMAL
type: string
enum:
- NORMAL
- ITALIC
- OBLIQUE
color:
description: 'Color of the font as a 6-digit hex string (e.g. "#333333"). Defaults to
#000000 (black) if omitted. Returns an error if the value is malformed.'
type: string
file_content:
description: 'Binary WOFF or WOFF2 font file to upload. Only WOFF and WOFF2 formats
are accepted; TTF and OTF are rejected. The file is validated on upload.'
type: string
format: binary
required:
- name
- file_content
required: true
parameters: []
responses:
'200':
description: Font uploaded successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StyleFontUploadData'
examples:
example_1:
value:
id: c3d4e5f6-1111-1111-1111-111111111111
name: Acme Sans
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalid_request:
summary: Invalid request
value:
error:
message:
code: 10002
incident_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
trace_id_guid: a1b2c3d4-e5f6-7890-abcd-ef1234567890
debug: Unsupported font format. Only WOFF and WOFF2 are accepted.
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized_access:
summary: Unauthorized access
value:
error:
message:
code: 10097
incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
debug: Authentication required to upload a custom font to the font library.
'403':
description: Forbidden access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden_access:
summary: Forbidden access
value:
error:
message:
code: 10023
incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
debug: Cluster config can only be accessed from PRIMARY org.
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unexpected_error:
summary: Unexpected error
value:
error:
message:
code: 10038
incident_id_guid: d4e5f678-9012-3456-defa-456789012345
trace_id_guid: d4e5f678-9012-3456-defa-456789012345
debug: Unexpected server error while uploading the custom font.
/api/rest/2.0/webhooks/storage-config:
get:
operationId: getWebhookStorageConfig
description: "\n Version: 26.7.0.cl or later\n\nReturns cluster-level storage setup information for configuring customer-managed storage. Use this endpoint to obtain the IAM identity details required before configuring a webhook storage destination. For S3 destinations, returns the platform AWS account ID and IAM trust policy template. For GCS destinations, returns the platform GCP service account email and the IAM role to grant for service account impersonation.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) or `DEVELOPER` (**Has developer privilege**) privilege. If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, users with `CAN_MANAGE_WEBHOOKS` (**Can manage webhooks**) privilege are also authorized to perform this action.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.7.0.cl
parameters: []
responses:
'200':
description: Storage setup information retrieved successfully
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/WebhookStorageConfigInfo'
examples:
example_1:
description: AWS-hosted cluster — customer configuring S3 storage destination
value:
- storage_type: OBJECT_STORAGE
provider: AWS_S3
config:
config_type: AWS_TO_S3_STORAGE
aws_account_id: '123456789012'
trust_policy_template:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
AWS: arn:aws:iam::123456789012:root
Action: sts:AssumeRole
Condition:
StringEquals:
sts:ExternalId: ts-webhook-a1b2c3d4-7890
setup_instructions:
- 1. Create an IAM role in your AWS account
- 2. Attach the trust policy template to the role
- 3. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role
- 4. Use the role ARN in your webhook storage configuration
example_2:
description: GCP-hosted cluster — customer configuring S3 storage destination
value:
- storage_type: OBJECT_STORAGE
provider: AWS_S3
config:
config_type: GCP_TO_S3_STORAGE
gcp_service_account_id: '115663769112811637952'
oidc_provider: accounts.google.com
trust_policy_template:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Federated: arn:aws:iam::YOUR_AWS_ACCOUNT_ID:oidc-provider/accounts.google.com
Action: sts:AssumeRoleWithWebIdentity
Condition:
StringEquals:
accounts.google.com:sub: '115663769112811637952'
setup_instructions:
- 1. Add accounts.google.com as an Identity Provider in AWS IAM
- 2. Create an IAM role with Web Identity Federation trust
- 3. Configure the trust policy with the GCP service account ID
- 4. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role
- 5. Use the role ARN in your webhook storage configuration
example_3:
description: GCP-hosted cluster — customer configuring both S3 and GCS storage destinations
value:
- storage_type: OBJECT_STORAGE
provider: AWS_S3
config:
config_type: GCP_TO_S3_STORAGE
gcp_service_account_id: '115663769112811637952'
oidc_provider: accounts.google.com
trust_policy_template:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Federated: arn:aws:iam::YOUR_AWS_ACCOUNT_ID:oidc-provider/accounts.google.com
Action: sts:AssumeRoleWithWebIdentity
Condition:
StringEquals:
accounts.google.com:sub: '115663769112811637952'
setup_instructions:
- 1. Add accounts.google.com as an Identity Provider in AWS IAM
- 2. Create an IAM role with Web Identity Federation trust
- 3. Configure the trust policy with the GCP service account ID
- 4. Attach S3 permissions (s3:PutObject, s3:PutObjectAcl) to the role
- 5. Use the role ARN in your webhook storage configuration
- storage_type: OBJECT_STORAGE
provider: GCP_GCS
config:
config_type: GCP_TO_GCS_STORAGE
service_account_email: webhook-sa@example-project.iam.gserviceaccount.com
required_role: roles/iam.serviceAccountTokenCreator
setup_instructions:
- 1. In GCP Console, go to IAM & Admin > Service Accounts
- 2. Click on the service account that has write access to your GCS bucket
- 3. Open the 'Principals with access' tab and click 'Grant Access'
- 4. Enter the service account email as the principal
- 5. Assign the roles/iam.serviceAccountTokenCreator role and save
- 6. Use your service account email in the webhook storage configuration
'400':
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthorized_access:
summary: Unauthorized access
value:
error:
message:
code: 10097
incident_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
trace_id_guid: b2c3d4e5-f678-9012-bcde-f23456789012
debug: Authentication required to retrieve webhook storage configuration.
'403':
description: Forbidden access.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
forbidden_access:
summary: Forbidden access
value:
error:
message:
code: 10023
incident_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
trace_id_guid: c3d4e5f6-7890-1234-cdef-345678901234
debug: Insufficient privileges to retrieve webhook storage configuration.
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unexpected_error:
summary: Unexpected error
value:
error:
message:
code: 10038
incident_id_guid: d4e5f678-9012-3456-defa-456789012345
trace_id_guid: d4e5f678-9012-3456-defa-456789012345
debug: Unexpected server error while retrieving webhook storage configuration.
components:
schemas:
StyleNavigationPanel:
type: object
properties:
theme:
type: string
enum:
- DARK
- TWO_TONE
- CUSTOM
description: Navigation panel color mode.
nullable: true
base_color:
type: string
description: Base color as a 6-digit hex string. Present only when theme is CUSTOM.
nullable: true
is_overridden:
type: boolean
description: True if explicitly set at this scope, overriding any inherited value.
nullable: true
description: Navigation panel color configuration for a specific scope.
AgentConversationHistoryResponse:
type: object
properties:
conversations:
type: array
items:
$ref: '#/components/schemas/AgentConversationList'
description: List of saved agent conversations for the current user.
nullable: true
has_more:
type: boolean
description: 'Whether additional conversations exist beyond this page. `true` when one or
more conversations remain after the current page; `false` when the current
page is the last. Use `offset` to fetch the next page.'
nullable: true
description: Response returned by getConversationList.
StyleFontRecord:
type: object
required:
- id
- name
properties:
id:
type: string
description: Unique UUID identifier of the font.
scope:
type: string
enum:
- CLUSTER
- ORG
description: Scope indicating whether this font belongs to the cluster or org library.
nullable: true
org:
$ref: '#/components/schemas/StyleOrgInfo'
description: Org associated with this font. Present only when scope is ORG.
nullable: true
name:
type: string
description: Display name of the font.
weight:
type: string
enum:
- NORMAL
- LIGHT
- BOLD
description: Weight of the font.
nullable: true
style:
type: string
enum:
- NORMAL
- ITALIC
- OBLIQUE
description: Style of the font.
nullable: true
color:
type: string
description: Color of the font as a 6-digit hex string.
nullable: true
creation_time_in_millis:
type: number
format: float
description: Timestamp in milliseconds when the font was uploaded.
nullable: true
assignments:
type: array
items:
$ref: '#/components/schemas/StyleFontAssignment'
description: 'Visualization areas currently assigned to this font. Empty if not assigned
to any area. Populated only when include_font_assignments is true.'
nullable: true
description: A custom font record in the font library.
StyleFontDeleteAffectedAssignment:
type: object
properties:
org:
$ref: '#/components/schemas/StyleOrgInfo'
description: Org context for this assignment. Present only when scope is ORG.
nullable: true
visualization_areas:
type: array
items:
type: string
enum:
- CHART_X_AXIS_LABELS
- CHART_X_AXIS_TITLE
- CHART_Y_AXIS_LABELS
- CHART_Y_AXIS_TITLE
- CHART_TOOLTIP
- CHART_SCATTER_DATA_LABELS
- CHART_DONUT_DATA_LABELS
- CHART_LINE_DATA_LABELS
- CHART_COLUMN_DATA_LABELS
- CHART_BAR_DATA_LABELS
- CHART_AREA_DATA_LABELS
- TABLE_VALUE_CELLS
- ADVANCED_CHART_LABELS
description: 'Visualization areas that used the deleted font and were automatically reset
to the system default font.'
nullable: true
description: A visualization area assignment affected by a font deletion.
ChartFontAssignmentInput:
type: object
required:
- visualization_area
- font_identifier
properties:
visualization_area:
type: string
enum:
- CHART_X_AXIS_LABELS
- CHART_X_AXIS_TITLE
- CHART_Y_AXIS_LABELS
- CHART_Y_AXIS_TITLE
- CHART_TOOLTIP
- CHART_SCATTER_DATA_LABELS
- CHART_DONUT_DATA_LABELS
- CHART_LINE_DATA_LABELS
- CHART_COLUMN_DATA_LABELS
- CHART_BAR_DATA_LABELS
- CHART_AREA_DATA_LABELS
description: Chart visualization area to assign the font to.
font_identifier:
type: string
description: UUID or name of the font to assign to this area.
description: Font assignment for a single chart visualization area.
StyleColorEntry:
type: object
properties:
primary:
type: string
description: Primary color as a 6-digit hex string.
nullable: true
secondary:
type: array
items:
type: string
description: Array of 4 secondary shade hex strings.
nullable: true
description: A single color entry in the chart color palette.
StyleEmbeddedFooterText:
type: object
properties:
value:
type: string
description: Footer text value. Empty string indicates no footer is set.
nullable: true
is_overridden:
type: boolean
description: True if explicitly set at this scope, overriding any inherited value.
nullable: true
description: Embedded footer text configuration for a specific scope.
NavigationPanelInput:
type: object
properties:
theme:
type: string
enum:
- DARK
- TWO_TONE
- CUSTOM
description: 'Color mode for the navigation panel. DARK applies the default dark theme.
TWO_TONE applies a dual-tone style. CUSTOM enables a user-defined base
color; base_color is required when theme is CUSTOM.'
nullable: true
base_color:
type: string
description: 'Base color as a 6-digit hex string (e.g. "#2359B6"). Required when theme
is CUSTOM.'
nullable: true
description: Navigation panel color configuration.
StyleOrgInfo:
type: object
properties:
id:
type: integer
format: int32
description: Unique integer ID of the org.
nullable: true
name:
type: string
description: Name of the org.
nullable: true
description: Org information returned in style API responses.
StyleFontDeleteData:
type: object
properties:
affected_assignments:
type: array
items:
$ref: '#/components/schemas/StyleFontDeleteAffectedAssignment'
description: 'Visualization areas that used the deleted font(s) and were automatically
reset to the system default font. Empty if no areas were affected.'
nullable: true
description: Result data for font deletion.
ACState:
type: object
properties:
transaction_identifier:
type: string
description: Unique identifier of the transaction.
nullable: true
generation_number:
type: integer
format: int32
description: Generation number of the transaction.
nullable: true
StyleFontAssignment:
type: object
properties:
org:
$ref: '#/components/schemas/StyleOrgInfo'
description: Org context for this assignment. Present only when scope is ORG.
nullable: true
visualization_areas:
type: array
items:
type: string
enum:
- CHART_X_AXIS_LABELS
- CHART_X_AXIS_TITLE
- CHART_Y_AXIS_LABELS
- CHART_Y_AXIS_TITLE
- CHART_TOOLTIP
- CHART_SCATTER_DATA_LABELS
- CHART_DONUT_DATA_LABELS
- CHART_LINE_DATA_LABELS
- CHART_COLUMN_DATA_LABELS
- CHART_BAR_DATA_LABELS
- CHART_AREA_DATA_LABELS
- TABLE_VALUE_CELLS
- ADVANCED_CHART_LABELS
description: Visualization areas using this font.
nullable: true
description: Visualization areas assigned to a font, grouped by org context.
ErrorResponse:
type: object
properties:
error:
type: object
nullable: true
StyleChartColorPalette:
type: object
properties:
colors:
type: array
items:
$ref: '#/components/schemas/StyleColorEntry'
description: Ordered array of 8 color entries.
nullable: true
disable_color_rotation:
type: boolean
description: When true, automatic color rotation across chart data series is disabled.
nullable: true
is_overridden:
type: boolean
description: True if explicitly set at this scope, overriding any inherited value.
nullable: true
description: Chart color palette configuration for a specific scope.
ConversationMessage:
type: object
required:
- message_id
- timestamp_in_millis
properties:
message_id:
type: string
description: 'Stable identifier for the turn. For liveboard-started synthetic first turns,
this is the root node identifier.'
timestamp_in_millis:
type: object
description: Milliseconds since Unix epoch for the turn.
user_prompt:
$ref: '#/components/schemas/UserPrompt'
description: 'User-authored prompt that started the turn: the user''s message and any files
or connector resources attached to it. Null for liveboard-started synthetic
first turns.'
nullable: true
response_items:
type: array
items:
type: object
description: 'Agent-side output produced in response to this turn. Empty array for
in-progress turns where the agent has not yet produced output.'
nullable: true
description: 'One conversational exchange: an optional user prompt (message and attachments),
followed by the agent''s response items for that turn.'
TableVisualizationFontRecord:
type: object
properties:
visualization_area:
type: string
enum:
- TABLE_VALUE_CELLS
description: Table visualization area.
nullable: true
font_id:
type: string
description: 'UUID of the font assigned to this area. Null when the system default font
is active.'
nullable: true
font_name:
type: string
description: 'Display name of the font assigned to this area. Null when the system
default font is active.'
nullable: true
is_overridden:
type: boolean
description: True if explicitly set at this scope, overriding any inherited value.
nullable: true
description: Font assignment for a table visualization area in the response.
AdvancedChartFontAssignmentInput:
type: object
required:
- visualization_area
- font_identifier
properties:
visualization_area:
type: string
enum:
- ADVANCED_CHART_LABELS
description: 'Advanced chart visualization area to assign the font to.
Version: 26.7.0.cl or later'
font_identifier:
type: string
description: 'UUID or name of the font to assign to this area.
Version: 26.7.0.cl or later'
description: Font assignment for a single advanced chart visualization area.
StyleLogoSlot:
type: object
properties:
id:
type: string
description: UUID of the active logo.
nullable: true
is_overridden:
type: boolean
description: 'True if a custom logo is uploaded at this scope. False if the system
default or cluster logo is active.'
nullable: true
description: Status of a single logo slot.
StyleFontUploadData:
type: object
required:
- id
- name
properties:
id:
type: string
description: Unique UUID identifier of the uploaded font.
name:
type: string
description: Display name of the uploaded font.
description: Font data returned after a successful upload.
UpdateConversationRequest:
type: object
properties:
title:
description: 'New display title for the conversation. Omit to leave the title
unchanged.'
type: string
UserPrompt:
type: object
properties:
message:
$ref: '#/components/schemas/UserMessage'
description: User query that started the turn. Null for liveboard-started synthetic first turns.
nullable: true
attachments:
type: array
items:
type: object
description: 'Files or connector resources attached to the user message. Empty array when
there are no attachments.'
nullable: true
description: 'User-authored prompt for a conversation turn: the user''s text message and any
files or connector resources attached to it.'
StyleColorEntryInput:
type: object
required:
- primary
properties:
primary:
type: string
description: Primary color as a 6-digit hex string (e.g. "#2359B6"). Required.
secondary:
type: array
items:
type: string
description: 'Array of exactly 4 secondary shade hex strings. If omitted, the server
auto-generates 4 shades from the primary color. If provided, must contain
exactly 4 valid 6-digit hex color strings.'
nullable: true
description: A single color entry in the chart color palette.
VisualizationFontsInput:
type: object
properties:
chart_visualization_fonts:
type: array
items:
$ref: '#/components/schemas/ChartFontAssignmentInput'
description: 'Font assignments for chart visualization areas. Provide only the areas to
update; omitted areas remain unchanged.'
nullable: true
table_visualization_fonts:
type: array
items:
$ref: '#/components/schemas/TableFontAssignmentInput'
description: 'Font assignments for table visualization areas. Provide only the areas to
update; omitted areas remain unchanged.'
nullable: true
advanced_chart_visualization_fonts:
type: array
items:
$ref: '#/components/schemas/AdvancedChartFontAssignmentInput'
description: 'Font assignments for advanced chart visualization areas. Provide only the
areas to update; omitted areas remain unchanged.
Version: 26.7.0.cl or later'
nullable: true
description: Font assignments grouped by visualization type.
StyleColorPaletteInput:
type: object
properties:
colors:
type: array
items:
$ref: '#/components/schemas/StyleColorEntryInput'
description: Ordered array of exactly 8 color entries defining the chart color palette.
nullable: true
disable_color_rotation:
type: boolean
description: When true, disables automatic color rotation across chart data series.
nullable: true
description: Chart color palette configuration.
DataSourceEntry:
type: object
required:
- id
- name
properties:
id:
type: string
description: Unique identifier of the data source.
name:
type: string
description: Display name of the data source.
description: A data source associated with a conversation, returned as a typed entry.
AnswerDetails:
type: object
properties:
title:
type: string
description: Display title of the answer.
nullable: true
description:
type: string
description: Description of the answer.
nullable: true
session_identifier:
type: string
description: Unique identifier of the session.
nullable: true
generation_number:
type: integer
format: int32
description: Generation number of the answer.
nullable: true
tokens:
type: array
items:
type: string
description: Ordered list of TML token strings that make up the answer query.
nullable: true
visualization_type:
type: string
enum:
- Chart
- CHART
- Table
- TABLE
- Undefined
- UNDEFINED
description: Visualization type for the answer.
nullable: true
formulas:
type: array
items:
type: string
description: List of formulas used in the answer.
nullable: true
parameters:
type: array
items:
type: string
description: List of parameters used in the answer.
nullable: true
sub_queries:
type: array
items:
type: object
description: List of sub-queries used in the answer.
nullable: true
ac_state:
$ref: '#/components/schemas/ACState'
description: Agent context state for the answer.
nullable: true
UpdateStyleFontRequest:
type: object
properties:
scope:
description: 'Scope of the font library containing this font. CLUSTER targets the
cluster-level library. ORG targets the authenticated user''s org library.
Defaults to ORG if omitted.'
default: ORG
type: string
enum:
- CLUSTER
- ORG
name:
description: New display name for the font.
type: string
weight:
description: 'New weight for the font. Supported values: NORMAL, LIGHT, BOLD.'
type: string
enum:
- NORMAL
- LIGHT
- BOLD
style:
description: 'New style for the font. Supported values: NORMAL, ITALIC, OBLIQUE.'
type: string
enum:
- NORMAL
- ITALIC
- OBLIQUE
color:
description: 'New color for the font as a 6-digit hex string (e.g. "#333333"). Returns
an error if the value is malformed.'
type: string
StyleLogoStatus:
type: object
properties:
default_logo:
$ref: '#/components/schemas/StyleLogoSlot'
description: 'Status of the DEFAULT logo slot (square app icon and favicon; recommended
140x140 px).'
nullable: true
wide_logo:
$ref: '#/components/schemas/StyleLogoSlot'
description: 'Status of the WIDE logo slot (horizontal top nav bar logo; recommended
230x45 px).'
nullable: true
description: Logo status per slot.
SearchStyleFontsRequest:
type: object
properties:
scope:
description: 'Scope of the font library to search. CLUSTER searches the cluster-level
library. ORG searches the authenticated user''s org library. Returns both Cluster and Org
level font if omitted.'
type: string
enum:
- CLUSTER
- ORG
font_identifier:
description: Filter by UUID or name of a specific font.
type: string
name_pattern:
description: Filter by font display name. Supports partial, case-insensitive matching.
type: string
include_font_assignments:
description: 'When true, includes visualization areas this font is assigned to in the
response. Defaults to false if omitted.'
default: false
type: boolean
nullable: true
CodeExecutionFileMetadata:
type: object
required:
- file_id
- expired
properties:
file_id:
type: string
description: 'Unique identifier of the code-execution-generated file. Stable across
conversation turns.'
display_name:
type: string
description: Human-readable file name.
nullable: true
file_type:
type: string
description: 'File type hint. Either a MIME string (e.g. `text/csv`) or an extension
(e.g. `csv`).'
nullable: true
created_time_in_millis:
type: object
description: Milliseconds since Unix epoch when the file was created.
nullable: true
expired:
type: boolean
description: True when the file is no longer downloadable (storage expired or evicted).
description: 'Sanitized public metadata for a code-execution-generated file. Internal
storage identifiers (e.g. Azure blob ids) are deliberately not exposed.'
StyleResetOptionsInput:
type: object
properties:
style:
type: array
items:
type: string
enum:
- CHART_COLOR_PALETTE
- EMBEDDED_FOOTER_TEXT
- NAV_PANEL_COLOR
- DEFAULT_LOGO
- WIDE_LOGO
description: 'Style fields to reset. Supported values: CHART_COLOR_PALETTE,
EMBEDDED_FOOTER_TEXT, NAV_PANEL_COLOR, DEFAULT_LOGO, WIDE_LOGO.'
nullable: true
visualization_areas:
type: array
items:
type: string
enum:
- CHART_X_AXIS_LABELS
- CHART_X_AXIS_TITLE
- CHART_Y_AXIS_LABELS
- CHART_Y_AXIS_TITLE
- CHART_TOOLTIP
- CHART_SCATTER_DATA_LABELS
- CHART_DONUT_DATA_LABELS
- CHART_LINE_DATA_LABELS
- CHART_COLUMN_DATA_LABELS
- CHART_BAR_DATA_LABELS
- CHART_AREA_DATA_LABELS
- TABLE_VALUE_CELLS
- ADVANCED_CHART_LABELS
description: 'Visualization areas whose font assignments should revert to the system
default font.'
nullable: true
description: Fields to revert to defaults when operation is RESET.
ConversationMessageResponse:
type: object
properties:
messages:
type: array
items:
$ref: '#/components/schemas/ConversationMessage'
description: Ordered conversation messages. Empty array when the conversation has no messages.
nullable: true
code_execution_files:
type: array
items:
$ref: '#/components/schemas/CodeExecutionFileMetadata'
description: 'Sanitized code-execution file metadata for files referenced by this
conversation. Empty array when the conversation has no code-execution files.'
nullable: true
description: 'Response body of getConversation. `messages` is ordered oldest to newest.
`code_execution_files` is a list of sanitized code-execution file metadata
entries, keyed in upstream by `file_id`.'
DeleteStyleFontsRequest:
type: object
properties:
scope:
description: 'Scope of the font library to delete from. CLUSTER deletes from the
cluster-level library. ORG deletes from the authenticated user''s org
library. Defaults to ORG if omitted.'
default: ORG
type: string
enum:
- CLUSTER
- ORG
font_identifiers:
description: 'UUIDs or names of the fonts to delete. At least one identifier is
required.'
type: array
items:
type: string
dry_run:
description: 'When true, returns affected assignments without applying the deletion.
Use this to preview the impact before committing. Defaults to true if
omitted.'
default: true
type: boolean
nullable: true
required:
- font_identifiers
ChartVisualizationFontRecord:
type: object
properties:
visualization_area:
type: string
enum:
- CHART_X_AXIS_LABELS
- CHART_X_AXIS_TITLE
- CHART_Y_AXIS_LABELS
- CHART_Y_AXIS_TITLE
- CHART_TOOLTIP
- CHART_SCATTER_DATA_LABELS
- CHART_DONUT_DATA_LABELS
- CHART_LINE_DATA_LABELS
- CHART_COLUMN_DATA_LABELS
- CHART_BAR_DATA_LABELS
- CHART_AREA_DATA_LABELS
description: Chart visualization area.
nullable: true
font_id:
type: string
description: 'UUID of the font assigned to this area. Null when the system default font
is active.'
nullable: true
font_name:
type: string
description: 'Display name of the font assigned to this area. Null when the system
default font is active.'
nullable: true
is_overridden:
type: boolean
description: True if explicitly set at this scope, overriding any inherited value.
nullable: true
description: Font assignment for a chart visualization area in the response.
AdvancedChartVisualizationFontRecord:
type: object
properties:
visualization_area:
type: string
enum:
- ADVANCED_CHART_LABELS
description: Advanced chart visualization area.
nullable: true
font_id:
type: string
description: 'UUID of the font assigned to this area. Null when the system default font
is active.'
nullable: true
font_name:
type: string
description: 'Display name of the font assigned to this area. Null when the system
default font is active.'
nullable: true
is_overridden:
type: boolean
description: True if explicitly set at this scope, overriding any inherited value.
nullable: true
description: Font assignment for an advanced chart visualization area in the response.
SearchStyleCustomizationsRequest:
type: object
properties:
scope:
description: 'Scope of the style preferences to retrieve. CLUSTER returns cluster-level
defaults. ORG returns preferences for the authenticated user''s org, which
may override cluster defaults. If not specified, returns both cluster and
org preferences based on user privileges.'
type: string
enum:
- CLUSTER
- ORG
ExportStyleLogosRequest:
type: object
properties:
scope:
description: 'Scope of the logos to export. CLUSTER exports cluster-level logos. ORG
exports logos for the authenticated user''s org, falling back to cluster
or defaults if no custom logo is set. Defaults to ORG if
omitted.'
default: ORG
type: string
enum:
- CLUSTER
- ORG
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
StyleVisualizationFonts:
type: object
properties:
chart_visualization_fonts:
type: array
items:
$ref: '#/components/schemas/ChartVisualizationFontRecord'
description: Font assignments for chart visualization areas.
nullable: true
table_visualization_fonts:
type: array
items:
$ref: '#/components/schemas/TableVisualizationFontRecord'
description: Font assignments for table visualization areas.
nullable: true
advanced_chart_visualization_fonts:
type: array
items:
$ref: '#/components/schemas/AdvancedChartVisualizationFontRecord'
description: 'Font assignments for advanced chart visualization areas.
Version: 26.7.0.cl or later'
nullable: true
description: Effective font assignments per visualization type.
LoadAnswerResponse:
type: object
properties:
answer:
$ref: '#/components/schemas/AnswerDetails'
description: Answer details for the loaded message.
nullable: true
AgentConversationList:
type: object
required:
- conversation_identifier
properties:
conversation_identifier:
type: string
description: Unique identifier of the conversation.
conversation_title:
type: string
description: Display title of the conversation.
nullable: true
created_at:
type: string
description: ISO 8601 timestamp when the conversation was created.
nullable: true
updated_at:
type: string
description: ISO 8601 timestamp when the conversation was last updated.
nullable: true
data_source_identifiers:
type: array
items:
type: string
description: Unique identifiers of the data sources associated with the conversation.
nullable: true
data_source_names:
type: array
items:
$ref: '#/components/schemas/DataSourceEntry'
description: Data sources associated with the conversation, each with an `id` and `name`.
nullable: true
description: A saved agent conversation item returned in list responses.
UserMessage:
type: object
required:
- message_id
- content
properties:
message_id:
type: string
description: Unique identifier of the user message.
content:
type: string
description: Text body of the user query.
description: 'User-authored text message that begins a conversation turn.
Null when the turn is a synthetic liveboard-started first turn.'
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
StylePreference:
type: object
properties:
scope:
type: string
enum:
- CLUSTER
- ORG
description: Scope at which these style preferences apply.
nullable: true
org:
$ref: '#/components/schemas/StyleOrgInfo'
description: Org associated with these preferences. Present only when scope is ORG.
nullable: true
navigation_panel:
$ref: '#/components/schemas/StyleNavigationPanel'
description: Navigation panel color configuration.
nullable: true
chart_color_palette:
$ref: '#/components/schemas/StyleChartColorPalette'
description: Chart color palette configuration.
nullable: true
embedded_footer_text:
$ref: '#/components/schemas/StyleEmbeddedFooterText'
description: Embedded footer text configuration.
nullable: true
logo:
$ref: '#/components/schemas/StyleLogoStatus'
description: Logo status per slot.
nullable: true
visualization_fonts:
$ref: '#/components/schemas/StyleVisualizationFonts'
description: Effective font assignments per visualization area.
nullable: true
description: Style preferences for a single scope entry.
TableFontAssignmentInput:
type: object
required:
- visualization_area
- font_identifier
properties:
visualization_area:
type: string
enum:
- TABLE_VALUE_CELLS
description: Table visualization area to assign the font to.
font_identifier:
type: string
description: UUID or name of the font to assign to this area.
description: Font assignment for a single table visualization area.
WebhookStorageConfigInfo:
type: object
required:
- storage_type
- provider
- config
properties:
storage_type:
type: string
enum:
- OBJECT_STORAGE
description: Type of storage destination.
provider:
type: string
enum:
- AWS_S3
- GCP_GCS
description: Storage destination provider.
config:
$ref: '#/components/schemas/WebhookStorageSetupConfig'
description: Setup configuration specific to the upload path.
description: Cluster-level storage setup information for configuring customer-managed storage.
WebhookStorageSetupConfig:
type: object
required:
- config_type
- setup_instructions
properties:
config_type:
type: string
enum:
- AWS_TO_S3_STORAGE
- GCP_TO_S3_STORAGE
- GCP_TO_GCS_STORAGE
description: 'Discriminator identifying the upload path. One of: AWS_TO_S3_STORAGE, GCP_TO_S3_STORAGE, GCP_TO_GCS_STORAGE.'
aws_account_id:
type: string
description: AWS Account ID of the platform. Populated for AWS_TO_S3_STORAGE. Include in your IAM role trust policy.
nullable: true
gcp_service_account_id:
type: string
description: GCP service account numeric ID of the platform (the 'sub' claim in OIDC tokens). Populated for GCP_TO_S3_STORAGE.
nullable: true
oidc_provider:
type: string
description: OIDC identity provider URL. Populated for GCP_TO_S3_STORAGE; always 'accounts.google.com' for GCP.
nullable: true
trust_policy_template:
type: object
description: Sample IAM trust policy JSON. Populated for AWS_TO_S3_STORAGE and GCP_TO_S3_STORAGE.
nullable: true
service_account_email:
type: string
description: GCP service account email of the platform. Populated for GCP_TO_GCS_STORAGE. Grant it roles/iam.serviceAccountTokenCreator on your service account.
nullable: true
required_role:
type: string
description: IAM role the customer must grant to the platform service account. Populated for GCP_TO_GCS_STORAGE.
nullable: true
setup_instructions:
type: array
items:
type: string
description: Step-by-step instructions to configure the storage destination.
description: 'Storage setup configuration for a specific upload path. The populated fields depend on config_type:
AWS_TO_S3_STORAGE: aws_account_id, trust_policy_template, setup_instructions.
GCP_TO_S3_STORAGE: gcp_service_account_id, oidc_provider, trust_policy_template, setup_instructions.
GCP_TO_GCS_STORAGE: service_account_email, required_role, setup_instructions.'
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