openapi: 3.0.0
info:
title: ThoughtSpot Public REST 10.1.0.cl Collections API
version: '2.0'
servers:
- url: '{base-url}'
variables:
base-url:
default: https://localhost:443
security:
- bearerAuth: []
tags:
- name: Collections
paths:
/api/rest/2.0/collections/create:
post:
operationId: createCollection
description: "\n Version: 26.4.0.cl or later\n\nCreates a new collection in ThoughtSpot.\n\nCollections allow you to organize and group related metadata objects such as Liveboards, Answers, worksheets, and other data objects. You can also create nested collections (sub-collections) to build a hierarchical structure.\n\n#### Supported operations\n\nThe API endpoint lets you perform the following operations:\n\n* Create a new collection\n* Add metadata objects (Liveboards, Answers, Logical Tables) to the collection\n* Create nested collections by adding sub-collections\n\n\n\n\n#### Endpoint URL\n"
tags:
- Collections
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCollectionRequest'
required: true
parameters: []
responses:
'200':
description: Collection created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Collection'
'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/collections/delete:
post:
operationId: deleteCollection
description: "\n Version: 26.4.0.cl or later\n\nDeletes one or more collections from ThoughtSpot.\n\n#### Delete options\n\n* **delete_children**: When set to `true`, deletes the child objects (metadata items) within the collection that the user has access to. Objects that the user does not have permission to delete will be skipped.\n* **dry_run**: When set to `true`, performs a preview of the deletion operation without actually deleting anything. The response shows what would be deleted, allowing you to review before committing the deletion.\n\n#### Response\n\nThe response includes:\n* **metadata_deleted**: List of metadata objects that were successfully deleted\n* **metadata_skipped**: List of metadata objects that were skipped due to lack of permissions or other constraints\n\n\n\n\n#### Endpoint URL\n"
tags:
- Collections
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteCollectionRequest'
required: true
parameters: []
responses:
'200':
description: Collections deleted successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/CollectionDeleteResponse'
'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: Resource 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/collections/search:
post:
operationId: searchCollections
description: "\n Version: 26.4.0.cl or later\n\nGets a list of collections available in ThoughtSpot.\n\nTo get details of a specific collection, specify the collection GUID or name. You can also filter the API response based on the collection name pattern, author, and other criteria.\n\n#### Search options\n\n* **name_pattern**: Use '%' as a wildcard character to match collection names\n* **collection_identifiers**: Search for specific collections by their GUIDs or names\n* **include_metadata**: When set to `true`, includes the metadata objects within each collection in the response\n\n**NOTE**: In addition to the GUID and name, `collection_identifiers` accepts a Custom object ID if one is configured for the collection. The response also includes the `obj_id` field for each collection that has one set.\n\n**NOTE**: If the API returns an empty list, consider increasing the value of the `record_size` parameter. To search across all available collections, set `record_size` to `-1`.\n\n\n\n\n#### Endpoint URL\n"
tags:
- Collections
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchCollectionsRequest'
required: true
parameters: []
responses:
'200':
description: Successfully retrieved list of collections
content:
application/json:
schema:
$ref: '#/components/schemas/CollectionSearchResponse'
'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/collections/{collection_identifier}/update:
post:
operationId: updateCollection
description: "\n Version: 26.4.0.cl or later\n\nUpdates an existing collection in ThoughtSpot.\n\n#### Supported operations\n\nThis API endpoint lets you perform the following operations:\n\n* Update collection name and description\n* Change visibility settings\n* Add metadata objects to the collection (operation: ADD)\n* Remove metadata objects from the collection (operation: REMOVE)\n* Replace all metadata objects in the collection (operation: REPLACE)\n\n#### Operation types\n\n* **ADD**: Adds the specified metadata objects to the existing collection without removing current items\n* **REMOVE**: Removes only the specified metadata objects from the collection\n* **REPLACE**: Replaces all existing metadata objects with the specified items (default behavior)\n\n\n\n\n#### Endpoint URL\n"
tags:
- Collections
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCollectionRequest'
required: true
parameters:
- in: path
name: collection_identifier
required: true
schema:
type: string
description: 'Unique GUID of the collection. Note: Collection names cannot be used as
identifiers since duplicate names are allowed.'
responses:
'204':
description: Collection updated successfully. No content returned.
'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: Resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
DeleteCollectionRequest:
type: object
properties:
collection_identifiers:
description: 'Unique GUIDs of collections to delete. Note: Collection names cannot be
used as identifiers since duplicate names are allowed.'
type: array
items:
type: string
delete_children:
description: Flag to delete child objects of the collection that the user has access to.
default: false
type: boolean
nullable: true
dry_run:
description: 'Preview deletion without actually deleting. When set to true, returns
what would be deleted without performing the actual deletion.'
default: false
type: boolean
nullable: true
required:
- collection_identifiers
GenericInfo:
type: object
properties:
id:
type: string
nullable: true
name:
type: string
nullable: true
CollectionMetadataItem:
type: object
properties:
type:
type: string
description: Type of the metadata object.
nullable: true
identifiers:
type: array
items:
$ref: '#/components/schemas/CollectionEntityIdentifier'
description: List of identifiers for this metadata type.
nullable: true
description: Metadata item in a collection response.
UpdateCollectionRequest:
type: object
properties:
name:
description: Name of the collection.
type: string
description:
description: Description of the collection.
type: string
metadata:
description: Metadata objects to add, remove, or replace in the collection.
type: array
items:
$ref: '#/components/schemas/CollectionMetadataInput'
operation:
description: Type of update operation. Default operation type is REPLACE.
default: REPLACE
type: string
enum:
- ADD
- REMOVE
- REPLACE
CollectionSearchResponse:
type: object
required:
- collections
properties:
collections:
type: array
items:
$ref: '#/components/schemas/Collection'
description: List of collections matching the search criteria.
record_offset:
type: integer
format: int32
description: The starting record number from where the records are included.
nullable: true
record_size:
type: integer
format: int32
description: The number of records returned.
nullable: true
is_last_batch:
type: boolean
description: Indicates if this is the last batch of results.
nullable: true
count:
type: integer
format: int32
description: Total count of records returned.
nullable: true
description: Response object for search collections operation.
CollectionDeleteTypeIdentifiers:
type: object
properties:
type:
type: string
description: Type of the metadata object (e.g., Collection, Worksheet, Table).
nullable: true
identifiers:
type: array
items:
$ref: '#/components/schemas/GenericInfo'
description: List of metadata identifiers belonging to the given type.
nullable: true
description: Group of metadata objects identified by type.
CollectionMetadataInput:
type: object
required:
- type
- identifiers
properties:
type:
type: string
enum:
- LIVEBOARD
- ANSWER
- LOGICAL_TABLE
- COLLECTION
description: Type of metadata object.
identifiers:
type: array
items:
type: string
description: List of unique IDs or names of metadata objects.
description: Input type for metadata to be added to a collection.
ErrorResponse:
type: object
properties:
error:
type: object
nullable: true
Collection:
type: object
required:
- id
- name
properties:
id:
type: string
description: Unique identifier of the collection.
name:
type: string
description: Name of the collection.
obj_id:
type: string
description: 'Custom object ID (obj_id) of the collection, if one is set.
Version: 26.9.0.cl or later'
nullable: true
description:
type: string
description: Description of the collection.
nullable: true
metadata:
type: array
items:
$ref: '#/components/schemas/CollectionMetadataItem'
description: Metadata objects in the collection.
nullable: true
created_at:
type: string
description: Creation timestamp in milliseconds.
nullable: true
updated_at:
type: string
description: Last updated timestamp in milliseconds.
nullable: true
author_name:
type: string
description: Name of the author who created the collection.
nullable: true
author_id:
type: string
description: Unique identifier of the author.
nullable: true
org:
$ref: '#/components/schemas/CollectionEntityIdentifier'
description: Org associated with the collection.
nullable: true
description: Response object for a collection.
SortOptions:
type: object
properties:
field_name:
type: string
enum:
- NAME
- DISPLAY_NAME
- AUTHOR
- CREATED
- MODIFIED
description: Name of the field to apply the sort on.
nullable: true
order:
type: string
enum:
- ASC
- DESC
description: 'Sort order : ASC(Ascending) or DESC(Descending).'
nullable: true
description: Sort options.
SearchCollectionsRequest:
type: object
properties:
name_pattern:
description: 'A pattern to match case-insensitive name of the Collection object.
Use ''%'' for wildcard match.'
type: string
record_offset:
description: The starting record number from where the records should be included.
default: 0
type: integer
format: int32
record_size:
description: 'The number of records that should be included.
-1 implies no pagination.'
default: 10
type: integer
format: int32
collection_identifiers:
description: 'Unique GUIDs of collections to search. Note: Collection names cannot be
used as identifiers since duplicate names are allowed.'
type: array
items:
type: string
created_by_user_identifiers:
description: 'Filter collections by author. Provide unique IDs or names of users
who created the collections.'
type: array
items:
type: string
include_metadata:
description: Include collection metadata items in the response.
default: false
type: boolean
nullable: true
sort_options:
description: Sort options.
allOf:
- $ref: '#/components/schemas/SortOptions'
CreateCollectionRequest:
type: object
properties:
name:
description: Name of the collection.
type: string
description:
description: Description of the collection.
type: string
metadata:
description: Metadata objects to add to the collection.
type: array
items:
$ref: '#/components/schemas/CollectionMetadataInput'
required:
- name
CollectionDeleteResponse:
type: object
properties:
metadata_deleted:
type: array
items:
$ref: '#/components/schemas/CollectionDeleteTypeIdentifiers'
description: List of metadata objects that were successfully deleted.
nullable: true
metadata_skipped:
type: array
items:
$ref: '#/components/schemas/CollectionDeleteTypeIdentifiers'
description: 'List of metadata objects that were skipped during deletion.
Objects may be skipped due to lack of permissions, dependencies, or other constraints.'
nullable: true
description: Response object for delete collection operation.
CollectionEntityIdentifier:
type: object
properties:
identifier:
type: string
description: Unique identifier of the entity.
nullable: true
name:
type: string
description: Name of the entity.
nullable: true
description: Entity identifier with name.
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