{
  "opencollection": "1.0.0",
  "info": {
    "name": "ThoughtSpot Public REST 10.1.0.cl AI API",
    "version": "2.0"
  },
  "request": {
    "auth": {
      "type": "bearer",
      "token": "{{bearerToken}}"
    }
  },
  "items": [
    {
      "info": {
        "name": "AI",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "createAgentConversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversation/create",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n <span class=\"since-beta-tag\">Version: 26.2.0.cl or later</span>\n\n<span class=\"since-beta-tag\">Version: 26.2.0.cl or later</span>\n\nCreates a new Spotter agent conversation based on the provided context and settings. The endpoint was in Beta from 26.2.0.cl through 26.4.0.cl.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe request must include the `metadata_context` parameter to define the conversation con"
        },
        {
          "info": {
            "name": "createConversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/conversation/create",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 10.4.0.cl or later</span>\n\n<span class=\"since-beta-tag\">Version: 10.4.0.cl or later</span>\n\nCreates a new conversation session tied to a specific data model for AI-driven natural language querying.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe request must include:\n- `metadata_identifier`: the unique ID of the data source th"
        },
        {
          "info": {
            "name": "deleteConversation",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversations/:conversation_identifier/delete",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the conversation to delete."
              }
            ]
          },
          "docs": "\nDeletes an existing agent conversation. <br/>  <span class=\"since-beta-tag\">Version: 26.7.0.cl or later</span>\n\nPermanently deletes an existing saved agent conversation and all its associated messages. This operation is irreversible — deleted conversations cannot be recovered.\n\nRequires `CAN_USE_SPOTTER` privilege and ownership of the conversation being deleted.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier` *(path parameter)*: the unique ID of the conversation t"
        },
        {
          "info": {
            "name": "exportMemory",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/memory/export",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\nExports memory entries (rules, recipes, and always-apply rules) for\nthe specified data-models as a single YAML payload. The payload can\nbe edited locally and re-submitted through `importMemory`.\nRequires Spotter access (use/manage) and either edit or memory\naccess on corresponding data model sources. <br/> <span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 26.8.0.cl or later</span>\n\nThis API allows users to export data-model memories for a given list of data-models. "
        },
        {
          "info": {
            "name": "getAgentInstructions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{base-url}/api/rest/2.0/ai/agent/instructions/get"
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 26.6.0.cl or later</span>\n\nRetrieves the admin instructions currently configured for the AI agent (Spotter). Admin instructions are tenant- and org-scoped text that guide agent behavior across all conversations.\n\nRequires admin privileges. Only users with org admin access can retrieve agent instructions.\n\n#### Usage guidelines\n\nNo input parameters are required. The API returns the stored `AgentInstructions` record fo"
        },
        {
          "info": {
            "name": "getConversation",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversations/:conversation_identifier/messages",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the conversation to load."
              }
            ]
          },
          "docs": "\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 c"
        },
        {
          "info": {
            "name": "getConversationList",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversations",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of conversations to return. Used for pagination."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "Number of conversations to skip before returning results. Used for pagination."
              },
              {
                "name": "skip_empty",
                "value": "",
                "type": "query",
                "description": "When true, excludes conversations with no messages. Defaults to true."
              }
            ]
          },
          "docs": "\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"
        },
        {
          "info": {
            "name": "getDataSourceSuggestions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/data-source-suggestions",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 10.15.0.cl or later</span>\n\nSuggests the most relevant data sources for a given natural language query, ranked by confidence with LLM-generated reasoning.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view-level access to the underlying metadata entities referenced in the response.\n\n#### Usage guidelines\n\nThe request must include:\n- `query`: the natural language question to find relevant data sources for\n\nIf the"
        },
        {
          "info": {
            "name": "getNLInstructions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/instructions/get",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 10.15.0.cl or later</span>\n\nRetrieves existing natural language (NL) instructions configured for a specific data model. These instructions guide the AI system in understanding data context and generating more accurate responses.\n\nRequires `CAN_USE_SPOTTER` privilege, at least view access on the data model, and a bearer token corresponding to the org where the data model exists.\n\n#### Usage guidelines\n\nThe request mus"
        },
        {
          "info": {
            "name": "getRelevantQuestions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/relevant-questions/",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 10.13.0.cl or later</span>\n\nBreaks down a natural language query into a series of smaller analytical sub-questions, each mapped to a relevant data source.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view-level access to the referenced metadata objects.\n\n#### Usage guidelines\n\nThe request must include:\n- `query`: the natural language question to decompose into analytical sub-questions\n- `metadata_context`: at l"
        },
        {
          "info": {
            "name": "getSharedContent",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversations/:conversation_identifier/get-shared-content",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the source conversation."
              }
            ]
          },
          "docs": "\nReturns the full read-only view of a shared conversation, including ordered\nmessages and data source metadata. Accessible by the conversation owner and\nany principal (user or group) that has been granted access.\nRequires `CAN_USE_SPOTTER` privilege. <br/>  <span class=\"since-beta-tag\">Version: 26.9.0.cl or later</span>\n\nReturns the full read-only view of a shared conversation, including ordered messages and data source metadata. Accessible by the conversation owner and any principal (user or gr"
        },
        {
          "info": {
            "name": "getShareInfo",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversations/:conversation_identifier/get-share-info",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the conversation."
              }
            ]
          },
          "docs": "\nReturns the current share state for a conversation the caller owns: whether\nthe shared view is outdated relative to the latest conversation content, and\nthe list of principals that currently have access.\nRequires `CAN_USE_SPOTTER` privilege and ownership of the specified conversation. <br/>  <span class=\"since-beta-tag\">Version: 26.9.0.cl or later</span>\n\nReturns the current share state for a conversation the caller owns: whether the shared view reflects the latest conversation content, and the"
        },
        {
          "info": {
            "name": "importMemory",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/memory/import",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\nImports memory entries (rules, recipes, and always-apply rules) from\na YAML payload, typically a payload produced by `exportMemory` and\nedited locally. The imported entries replace the existing memory for\nthe data-models referenced in the payload.\n`dry_run` is required. Pass `true` first to validate the payload and\nreview the preview counts and any row-level failures without making\nchanges, then re-run with `dry_run = false` to apply the import. An\nimport is not applied if any row fails validat"
        },
        {
          "info": {
            "name": "loadAnswer",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversations/:conversation_identifier/answers/:answer_identifier/details",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the conversation."
              },
              {
                "name": "answer_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the answer to load. Use the `answer_id` field from an\n`AnswerResponseItem` returned by `getConversation`."
              }
            ]
          },
          "docs": "\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 deta"
        },
        {
          "info": {
            "name": "queryGetDecomposedQuery",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/analytical-questions",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 10.7.0.cl or later</span>\n\n<span class=\"since-beta-tag\">Version: 10.7.0.cl or later</span>\n\n**Deprecated** — Use `getRelevantQuestions` instead (available from 10.13.0.cl).\n\nBreaks down a topical or goal-oriented natural language question into smaller, actionable analytical sub-questions, each mapped to a relevant data source for independent execution.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view-level acc"
        },
        {
          "info": {
            "name": "sendAgentConversationMessage",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversation/:conversation_identifier/send",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier for the conversation (used to track context)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n <span class=\"since-beta-tag\">Version: 26.5.0.cl or later</span>\n\n<span class=\"since-beta-tag\">Version: 26.5.0.cl or later</span>\n\nSends natural language messages to an existing Spotter agent conversation and returns the complete response synchronously.\n\nRequires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`. A conversation must first be created using t"
        },
        {
          "info": {
            "name": "sendAgentConversationMessageStreaming",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversation/:conversation_identifier/send/stream",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier for the conversation (used to track context)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n <span class=\"since-beta-tag\">Version: 26.5.0.cl or later</span>\n\n<span class=\"since-beta-tag\">Version: 26.5.0.cl or later</span>\n\nSends one or more natural language messages to an existing Spotter agent conversation and returns the response as a real-time Server-Sent Events stream.\n\nRequires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`. A conversation"
        },
        {
          "info": {
            "name": "sendAgentMessage",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/agent/:conversation_identifier/converse",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier for the conversation (used to track context)"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 26.2.0.cl or later</span>\n\n**Deprecated** — Use `sendAgentConversationMessage` instead.\n\nSend natural language messages to an existing Spotter agent conversation and returns the complete response synchronously.\n\nRequires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session referenced by `conversation_identifier`.\nA conver"
        },
        {
          "info": {
            "name": "sendAgentMessageStreaming",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/agent/converse/sse",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 26.2.0.cl or later</span>\n\n**Deprecated** — Use `sendAgentConversationMessageStreaming` instead.\n\nSends one or more natural language messages to an existing Spotter agent conversation and returns the response as a real-time Server-Sent Events stream.\n\nRequires `CAN_USE_SPOTTER` privilege and access to the metadata object associated with the conversation. The user must have access to the conversation session reference"
        },
        {
          "info": {
            "name": "sendMessage",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/conversation/:conversation_identifier/converse",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the conversation."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 10.4.0.cl or later</span>\n\nSends a follow-up message to an existing conversation within the context of a data model.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request. A conversation must first be created using the `createConversation` API.\n\n#### Usage guidelines\n\nThe request must include:\n- `conversation_identifier`: the unique session ID returned by `crea"
        },
        {
          "info": {
            "name": "setAgentInstructions",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "{base-url}/api/rest/2.0/ai/agent/instructions/set",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 26.6.0.cl or later</span>\n\nCreates or updates the admin instructions for the AI agent (Spotter). Admin instructions are tenant- and org-scoped text that guide agent behavior across all conversations. If instructions already exist for the org, they are replaced (upsert semantics).\n\nRequires admin privileges. Only users with org admin access can set agent instructions.\n\n#### Usage guidelines\n\nThe request must include:\n"
        },
        {
          "info": {
            "name": "setNLInstructions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/instructions/set",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 10.15.0.cl or later</span>\n\nThis API allows users to set natural language (NL) instructions for a specific data-model to improve AI-generated answers and query processing. These instructions help guide the AI system to better understand the data context and provide more accurate responses.\n\nRequires `CAN_USE_SPOTTER` privilege, either edit access or `SPOTTER_COACHING_PRIVILEGE` on the data model, and a bearer token c"
        },
        {
          "info": {
            "name": "shareConversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversations/:conversation_identifier/share",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the conversation to share."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\nGrants or revokes access to a shared conversation for one or more principals\n(users or groups). When principals are added, a read-only shared view of the\nconversation is created from its current state. Use `refresh_shared_content`\nto regenerate the shared view with the latest conversation content.\nRequires `CAN_USE_SPOTTER` privilege and ownership of the specified conversation. <br/>  <span class=\"since-beta-tag\">Version: 26.9.0.cl or later</span>\n\nGrants or revokes access to a shared conversat"
        },
        {
          "info": {
            "name": "singleAnswer",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/answer/create",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\n<span class=\"since-beta-tag\">Beta</span> <span class=\"since-beta-tag\">Version: 10.4.0.cl or later</span>\n\nProcesses a natural language query against a specified data model and returns a single AI-generated answer without requiring a conversation session.\n\nRequires `CAN_USE_SPOTTER` privilege and at least view access to the metadata object specified in the request.\n\n#### Usage guidelines\n\nThe request must include:\n- `query`: a natural language question (e.g., \"What were total sales last quarter?"
        },
        {
          "info": {
            "name": "stopConversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversation/:conversation_identifier/stop-response",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the conversation to stop."
              }
            ]
          },
          "docs": "\nStops an in-progress agent conversation response. <br/>  <span class=\"since-beta-tag\">Version: 26.6.0.cl or later</span>\n\n<span>Version: 26.6.0.cl or later</span>\n\nStops an in-progress agent response for the specified conversation. Use this endpoint to cancel a response that is actively being generated — for example, when the user navigates away, reformulates their question, or no longer needs the current result.\n\nRequires `CAN_USE_SPOTTER` privilege and access to the specified conversation.\n\n#"
        },
        {
          "info": {
            "name": "updateConversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{base-url}/api/rest/2.0/ai/agent/conversations/:conversation_identifier/update",
            "params": [
              {
                "name": "conversation_identifier",
                "value": "",
                "type": "path",
                "description": "Unique identifier of the conversation to update."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "\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. <br/>  <span class=\"since-beta-tag\">Version: 26.7.0.cl or later</span>\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 fut"
        }
      ]
    }
  ],
  "bundled": true
}