openapi: 3.0.0
info:
title: ThoughtSpot Public REST 10.1.0.cl 26.9.0.cl API
version: '2.0'
servers:
- url: '{base-url}'
variables:
base-url:
default: https://localhost:443
security:
- bearerAuth: []
tags:
- name: 26.9.0.cl
paths:
/api/rest/2.0/ai/agent/conversations/{conversation_identifier}/get-shared-content:
get:
operationId: getSharedContent
description: "\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.
Version: 26.9.0.cl or later\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 group) that has been granted access via `shareConversation`.\n\nUse this endpoint to render a shared conversation in a UI or to retrieve its content for post-processing. The full answer payload is not embedded in messages — fetch it separately via `loadAnswer` using the `shared_conversation_id` from this response as the `conversation_identifier` parameter, along with the `answer_id` from each `answer` response item.\n\n> **Important**: `shared_conversation_id` is not the same as `conversation_id`. It identifies the shared snapshot, which is a separate internal object from the source conversation. You must use the `shared_conversation_id` value — not `conversation_id` — as the `conversation_identifier` parameter when calling `loadAnswer` to hydrate answers from a shared view.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier` _(query parameter)_: the unique ID of the source conversation.\n\n#### Response fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `conversation_id` | `String` | Echoes the request parameter. |\n| `shared_conversation_id` | `String` | Identifier for the shared snapshot. **This is not the same as `conversation_id`.** Pass this value as the `conversation_identifier` parameter in `loadAnswer` calls. It changes each time the snapshot is refreshed via `shareConversation` with `refresh_shared_content: true` — re-fetch this response to get the current value before calling `loadAnswer`. |\n| `conversation_title` | `String` | Display title of the conversation. `null` if no title was set. |\n| `data_sources` | `DataSourceEntry[]` | Data sources used by the conversation, each with an `id` and display `name`. |\n| `messages` | `ConversationMessage[]` | Ordered conversation messages, oldest to newest. Same structure as returned by `getConversation`. Empty when the conversation has no messages. |\n| `code_execution_files` | `CodeExecutionFileMetadata[]` | Sanitized metadata for files generated by the code-execution tool. Empty when there are none. |\n\n#### DataSourceEntry fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | `String` | Unique identifier of the data source. |\n| `name` | `String` | Display name of the data source. |\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 `answer` response item in `messages[].response_items` contains an `answer_id` field. To retrieve the full answer payload (TML tokens, visualization metadata, chart config), call `loadAnswer` with:\n\n- `conversation_identifier`: the `shared_conversation_id` from **this** response (not `conversation_id`)\n- `answer_identifier`: the `answer_id` from the `answer` item\n\nIf the snapshot has been refreshed since you last called `getSharedContent`, the `shared_conversation_id` will have changed. Always use the `shared_conversation_id` from the most recent `getSharedContent` response; stale values return 404.\n\n#### Example request\n\n```bash\nGET /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/get-shared-content\n```\n\n#### Example response\n\n```json\n{\n \"conversation_id\": \"conv-abc-123\",\n \"shared_conversation_id\": \"snap-xyz-456\",\n \"conversation_title\": \"Sales by Region Q1\",\n \"data_sources\": [{ \"id\": \"ds-001\", \"name\": \"Retail Sales\" }],\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.\"\n },\n \"attachments\": []\n },\n \"response_items\": [\n {\n \"type\": \"tool_call\",\n \"tool_call_id\": \"toolu-01\",\n \"tool_name\": \"search_datasets\",\n \"step_title\": \"Searching datasets\",\n \"arguments\": { \"query\": \"revenue by region\" },\n \"timestamp_in_millis\": 1744000001000,\n \"is_thinking\": false\n },\n {\n \"type\": \"answer\",\n \"answer_id\": \"ans-01\",\n \"tool_call_id\": \"toolu-02\",\n \"tool_name\": \"fetch_and_visualize\",\n \"step_title\": \"Visualizing\",\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\": null\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\nFor the `ConversationMessage` field structure, see `getConversation`.\n\n#### Error responses\n\n| Code | Description |\n| --- | --- |\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the caller is neither the conversation owner nor a principal with access, or does not have `CAN_USE_SPOTTER` privilege. |\n| 404 | Not Found — no active shared view exists for the given conversation identifier. |\n\n> ###### Note:\n>\n> - The shared view is a point-in-time copy of the conversation. It may not reflect edits made after sharing. Check `is_shared_content_outdated` via `getShareInfo` and use `shareConversation` with `refresh_shared_content: true` to update.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\nVersion: 26.9.0.cl or later\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.9.0.cl
parameters:
- in: path
name: conversation_identifier
required: true
schema:
type: string
description: Unique identifier of the source conversation.
responses:
'200':
description: Common successful response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedConversationResponse'
examples:
example_1:
summary: Shared conversation with one message and an answer
value:
conversation_id: conv-abc-123
shared_conversation_id: snap-xyz-456
conversation_title: Sales by Region Q1
data_sources:
- id: ds-001
name: Retail Sales
messages:
- message_id: node-u-01
timestamp_in_millis: 1744000000000
user_prompt:
message:
message_id: msg-u-01
content: Show me revenue by region.
attachments: []
response_items:
- type: answer
answer_id: ans-01
tool_call_id: toolu-01
tool_name: fetch_and_visualize
step_title: Visualizing
timestamp_in_millis: 1744000004000
is_thinking: false
- type: text
content: Revenue is highest in APAC at $4.2M.
content_type: TEXT_MARKDOWN
timestamp_in_millis: 1744000005000
is_thinking: false
step_title: null
file_reference: null
code_execution_files:
- file_id: revenue_by_region.csv
display_name: revenue_by_region.csv
file_type: csv
created_time_in_millis: 1744027200000
expired: false
'201':
description: Common error response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedConversationResponse'
'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}/get-share-info:
get:
operationId: getShareInfo
description: "\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.
Version: 26.9.0.cl or later\n\nReturns the current share state for a conversation the caller owns: whether the shared view reflects the latest conversation content, and the list of principals that currently have access.\n\nUse this endpoint to render a share management UI, audit who has access to a conversation, or determine whether the shared view needs to be refreshed before sending a link.\n\nRequires ownership of the specified conversation.\n\n#### Usage guidelines\n\nThe request must include:\n\n- `conversation_identifier` _(query parameter)_: the unique ID of the conversation, as returned by `createAgentConversation` or `getConversationList`.\n\n#### Response fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `conversation_id` | `String` | Echoes the request parameter. |\n| `is_shared_content_outdated` | `Boolean` | `true` when the shared view was generated before the last edit to the conversation and does not reflect the latest content. `false` when the shared view is current. `null` when the conversation has never been shared. |\n| `principals` | `ConversationPrincipalInfo[]` | List of principals with access. Empty when no access has been granted. The conversation owner is never included. |\n\n#### ConversationPrincipalInfo fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `id` | `String` | Unique identifier of the user or group. |\n| `type` | `Principals` | `USER` for individual users, `USER_GROUP` for groups. |\n| `display_name` | `String` | Display name as shown in the ThoughtSpot UI. |\n| `name` | `String` | Internal name of the user or group. |\n| `permission` | `String` | Access level. Always `READ_ONLY` for shared conversations. |\n\n#### Example request\n\n```bash\nGET /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/get-share-info\n```\n\n#### Example response — conversation shared and current\n\n```json\n{\n \"conversation_id\": \"conv-abc-123\",\n \"is_shared_content_outdated\": false,\n \"principals\": [\n {\n \"id\": \"user-001\",\n \"type\": \"USER\",\n \"display_name\": \"Alice Example\",\n \"name\": \"alice.example\",\n \"permission\": \"READ_ONLY\"\n },\n {\n \"id\": \"group-001\",\n \"type\": \"USER_GROUP\",\n \"display_name\": \"Sales Team\",\n \"name\": \"sales-team\",\n \"permission\": \"READ_ONLY\"\n }\n ]\n}\n```\n\n#### Example response — conversation never shared\n\n```json\n{\n \"conversation_id\": \"conv-abc-123\",\n \"is_shared_content_outdated\": null,\n \"principals\": []\n}\n```\n\n#### Example response — shared view outdated\n\n```json\n{\n \"conversation_id\": \"conv-abc-123\",\n \"is_shared_content_outdated\": true,\n \"principals\": [\n {\n \"id\": \"user-001\",\n \"type\": \"USER\",\n \"display_name\": \"Alice Example\",\n \"name\": \"alice.example\",\n \"permission\": \"READ_ONLY\"\n }\n ]\n}\n```\n\nWhen `is_shared_content_outdated` is `true`, call `shareConversation` with `refresh_shared_content: true` to update the shared view with the latest conversation content.\n\n#### Error responses\n\n| Code | Description |\n| --- | --- |\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the caller does not own the specified conversation, or does not have `CAN_USE_SPOTTER` privilege. |\n| 404 | Not Found — no conversation exists with the given identifier for the authenticated user. |\n\n> ###### Note:\n>\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\nVersion: 26.9.0.cl or later\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.9.0.cl
parameters:
- in: path
name: conversation_identifier
required: true
schema:
type: string
description: Unique identifier of the conversation.
responses:
'200':
description: Common successful response
content:
application/json:
schema:
$ref: '#/components/schemas/ConversationShareStatusResponse'
examples:
example_1:
summary: Conversation shared with two principals, content is current
value:
conversation_id: conv-abc-123
is_shared_content_outdated: false
principals:
- id: user-001
type: USER
display_name: Alice Example
name: alice.example
permission: READ_ONLY
- id: group-001
type: USER_GROUP
display_name: Sales Team
name: sales-team
permission: READ_ONLY
example_2:
summary: Conversation never shared
value:
conversation_id: conv-abc-123
is_shared_content_outdated: null
principals: []
example_3:
summary: Shared view is outdated — conversation was edited after sharing
value:
conversation_id: conv-abc-123
is_shared_content_outdated: true
principals:
- id: user-001
type: USER
display_name: Alice Example
name: alice.example
permission: READ_ONLY
'201':
description: Common error response
content:
application/json:
schema:
$ref: '#/components/schemas/ConversationShareStatusResponse'
'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}/share:
post:
operationId: shareConversation
description: "\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.
Version: 26.9.0.cl or later\n\nGrants or revokes access to a shared conversation for one or more principals (users or groups). When principals are added, a read-only shared view of the conversation is created from its current state. The shared view is a point-in-time copy — use `refresh_shared_content` to regenerate it with the latest conversation content.\n\nRequires ownership of the specified conversation. Only the user who created the conversation can manage its share access.\n\n#### Usage guidelines\n\nThe conversation to share is identified by the `{conversation_identifier}` URL path parameter. At least one of the following must be true: `grant` is non-empty, `revoke` is non-empty, or `refresh_shared_content` is `true`. A principal cannot appear in both lists in the same request.\n\n| Field | Type | Default | Description |\n| --- | --- | --- | --- |\n| `refresh_shared_content` | `Boolean` | `false` | When `true`, always regenerates the shared view from the latest conversation state, even if a shared view already exists. When `false`, reuses the existing shared view. |\n| `grant` | `PrincipalRefInput[]` | `[]` | Principals to grant read-only access. |\n| `revoke` | `PrincipalRefInput[]` | `[]` | Principals to revoke access from. |\n| `notify_on_share` | `Boolean` | `true` | *(available from 26.10.0.cl)* When `true`, newly granted principals are notified of the share. When `false`, access is granted without sending a notification. Has no effect on principals passed in `revoke`, and does not re-notify a principal who already had access. |\n\n#### PrincipalRefInput fields\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `principal_identifier` | `String` | Unique identifier of the user or group. |\n| `principal_type` | `Principals` | `USER` for individual users, `USER_GROUP` for groups. |\n\n#### Example request — granting access\n\n```bash\nPOST /api/rest/2.0/ai/agent/conversations/{conversation_identifier}/share\n```\n\n```json\n{\n \"refresh_shared_content\": false,\n \"grant\": [\n { \"principal_identifier\": \"user-001\", \"principal_type\": \"USER\" },\n { \"principal_identifier\": \"group-001\", \"principal_type\": \"USER_GROUP\" }\n ],\n \"revoke\": [],\n \"notify_on_share\": true\n}\n```\n\n#### Example request — revoking access\n\n```json\n{\n \"refresh_shared_content\": false,\n \"grant\": [],\n \"revoke\": [\n { \"principal_identifier\": \"user-001\", \"principal_type\": \"USER\" }\n ]\n}\n```\n\nSet `refresh_shared_content: true` with empty `grant` and `revoke` to regenerate the shared snapshot for existing recipients without changing access. Combine with non-empty `grant` or `revoke` to update access and refresh the snapshot in a single call.\n\n#### Error responses\n\n| Code | Description |\n| --- | --- |\n| 401 | Unauthorized — authentication token is missing, expired, or invalid. |\n| 403 | Forbidden — the caller does not own the specified conversation, or does not have `CAN_USE_SPOTTER` privilege. |\n| 404 | Not Found — no conversation exists with the given identifier for the authenticated user. |\n| 422 | Unprocessable — `refresh_shared_content` is `false` and both `grant` and `revoke` are empty, or a principal appears in both lists. |\n\n> ###### Note:\n>\n> - The shared view is a read-only snapshot of the conversation at the time of sharing. Recipients cannot send messages or modify the conversation.\n> - Use `getShareInfo` to check whether the shared view is outdated relative to the current conversation state.\n> - `notify_on_share: false` only suppresses the share notification; access is still granted.\n> - This endpoint requires Spotter — please contact ThoughtSpot Support to enable Spotter on your cluster.\nVersion: 26.9.0.cl or later\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.9.0.cl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ShareConversationRequest'
required: true
parameters:
- in: path
name: conversation_identifier
required: true
schema:
type: string
description: Unique identifier of the conversation to share.
responses:
'204':
description: Successfully updated the share access for the 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/semantic-integrations/create:
post:
operationId: createSemanticIntegration
description: "\n Version: 26.9.0.cl or later\n\nCreates a new semantic integration in ThoughtSpot from a CDW semantic view.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- **Can manage data models**\n\n#### About create semantic integration\n\nA semantic integration imports an externally defined semantic view from a Cloud Data Warehouse (CDW) into ThoughtSpot. The API resolves the source semantic view from the specified `connection_identifier`, `database_name`, `schema_name`, and `semantic_view_name`, generates a ThoughtSpot model from it, and returns the model GUID along with a per-formula import report (`semantic_report`) summarizing how many formulas were successfully imported, failed, or skipped.\n\n- `connection_identifier`, `name`, `database_name`, `schema_name`, `semantic_view_name`, and `type` are required.\n- `name` must be unique across the user's organization. The integration's display name is also used as the generated model name.\n- Supported `type` values are listed in the `SemanticIntegrationType` enum (currently `RDBMS_SNOWFLAKE`).\n- The response includes a `semantic_report.summary` with `total`, `imported`, `failed`, and `skipped` counts, and a `formulas` array with the per-formula translation details.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.9.0.cl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSemanticIntegrationRequest'
required: true
parameters: []
responses:
'200':
description: Semantic integration created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SemanticIntegrationResponse'
'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: Connection not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'409':
description: Duplicate integration name.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/rest/2.0/semantic-integrations/{semantic_integration_identifier}/delete:
post:
operationId: deleteSemanticIntegration
description: "\n Version: 26.9.0.cl or later\n\nDeletes a semantic integration and its associated ThoughtSpot model.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- **Can manage data models**\n\n#### About delete semantic integration\n\nRemoves the specified semantic integration and its generated ThoughtSpot model from the system.\n\n- `semantic_integration_identifier` is the GUID or name of the integration to delete.\n- Deletions cannot be undone. Re-import the integration with `createSemanticIntegration` if needed.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.9.0.cl
parameters:
- in: path
name: semantic_integration_identifier
required: true
schema:
type: string
description: ID or name of the semantic integration to delete.
responses:
'204':
description: Semantic integration deleted successfully.
'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'
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/rest/2.0/semantic-integrations/{semantic_integration_identifier}/import:
post:
operationId: importSemanticIntegration
description: "\n Version: 26.9.0.cl or later\n\nImports semantic updates for an existing semantic integration from its CDW source and refreshes the associated ThoughtSpot model.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- **Can manage data models**\n\n#### About import semantic integration\n\nRe-imports the semantic view from the CDW for the specified integration and rebuilds the corresponding ThoughtSpot model. Use this after the source semantic view has been updated in the CDW (added, removed, or modified formulas, dimensions, or measures) to bring the ThoughtSpot model back in line.\n\n- `semantic_integration_identifier` is the GUID or name of the integration to import updates for.\n- Import preserves the integration's GUID, name, and `model_id`; only the underlying formula set is refreshed.\n- The response includes the same `semantic_report` as create, with an additional `change_status` per formula indicating whether each formula is `NEW`, `UPDATED`, or `UNCHANGED` since the previous import.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.9.0.cl
parameters:
- in: path
name: semantic_integration_identifier
required: true
schema:
type: string
description: ID or name of the semantic integration to import updates for.
responses:
'200':
description: Semantic integration imported successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SemanticIntegrationResponse'
'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: Semantic integration not 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/semantic-integrations/search:
post:
operationId: searchSemanticIntegrations
description: "\n Version: 26.9.0.cl or later\n\nSearches and lists semantic integrations available to the authenticated user in the current organization, with optional filters, sort, and pagination.\n\nRequires `ADMINISTRATION` (**Can administer ThoughtSpot**) privilege or `DATAMANAGEMENT` (**Can manage data**) privilege.\nIf [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your instance, the following Data control privileges may be required:\n\n- `CAN_CREATE_OR_EDIT_CONNECTIONS` (**Can create/edit Connections**)\n- **Can manage data models**\n\n#### About search semantic integrations\n\nReturns a paginated batch of semantic integrations, each with its identifier, name, description, source connection, generated model identifier, author, creation/modification timestamps, and associated tags. Use the filters to narrow results by author, connection, tag, or name pattern.\n\n- `pattern` matches the integration name as a case-insensitive substring.\n- `author_identifiers` and `connection_identifiers` accept either GUIDs or names.\n- `sort_options.field_name` defaults to `MODIFIED_TIME`; set `sort_options.order` to `ASC` or `DESC` to control sort direction.\n- `record_offset` and `record_size` control pagination. Use `record_size: 0` to return all matching records in a single response.\n\n\n\n\n#### Endpoint URL\n"
tags:
- 26.9.0.cl
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchSemanticIntegrationsRequest'
required: true
parameters: []
responses:
'200':
description: Semantic integrations retrieved successfully.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SemanticIntegrationSearchResponse'
'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'
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
SearchSemanticIntegrationsRequest:
type: object
properties:
sort_options:
description: Sort options for the search results.
allOf:
- $ref: '#/components/schemas/SemanticIntegrationSortOptions'
record_offset:
description: Number of records to skip for pagination. Minimum value is 0.
default: 0
type: integer
format: int32
record_size:
description: Maximum number of records to return. Use 0 to return all records (no pagination).
default: 10
type: integer
format: int32
pattern:
description: Name filter substring to narrow search results.
type: string
author_identifiers:
description: Filter by author IDs or names who created the integrations.
type: array
items:
type: string
connection_identifiers:
description: Filter by connection IDs or names associated with the integrations.
type: array
items:
type: string
ErrorResponse:
type: object
properties:
error:
type: object
nullable: true
ShareConversationRequest:
type: object
properties:
refresh_shared_content:
description: 'When `true`, always regenerates the shared view from the latest conversation
state, even if one already exists. When `false` (default), reuses the
existing shared view.'
default: false
type: boolean
nullable: true
grant:
description: Principals to grant read-only access to the conversation.
default: []
type: array
items:
$ref: '#/components/schemas/PrincipalRefInput'
revoke:
description: Principals to revoke access from the conversation.
default: []
type: array
items:
$ref: '#/components/schemas/PrincipalRefInput'
notify_on_share:
description: '