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. <br/> <span class="since-beta-tag">Version: 26.7.0.cl or later</span>
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. <br/> <span class=\"since-beta-tag\">Version: 26.7.0.cl or later</span>\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. <br/> <span class=\"since-beta-tag\">Version: 26.7.0.cl or later</span>\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. <br/> <span class=\"since-beta-tag\">Version: 26.7.0.cl or later</span>\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\
# --- truncated at 32 KB (133 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/thoughtspot/refs/heads/main/openapi/thoughtspot-26-7-0-cl-api-openapi.yml