ThoughtSpot Collections API

The Collections API from ThoughtSpot — 4 operation(s) for collections.

Operations 4

POST /api/rest/2.0/collections/create Create collection #
POST /api/rest/2.0/collections/delete Delete collection #
POST /api/rest/2.0/collections/search Search collections #
POST /api/rest/2.0/collections/{collection_identifier}/update Update collection #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/thoughtspot-collections-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

thoughtspot-collections-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ThoughtSpot Public REST 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: 'Version: 26.4.0.cl or later


        Creates a new collection in ThoughtSpot.


        Collections 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.


        #### Supported operations


        The API endpoint lets you perform the following operations:


        * Create a new collection

        * Add metadata objects (Liveboards, Answers, Logical Tables) to the collection

        * Create nested collections by adding sub-collections


        #### Endpoint URL'
      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'
      summary: Create collection
      x-summary-source: derived
  /api/rest/2.0/collections/delete:
    post:
      operationId: deleteCollection
      description: 'Version: 26.4.0.cl or later


        Deletes one or more collections from ThoughtSpot.


        #### Delete options


        * **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.

        * **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.


        #### Response


        The response includes:

        * **metadata_deleted**: List of metadata objects that were successfully deleted

        * **metadata_skipped**: List of metadata objects that were skipped due to lack of permissions or other constraints


        #### Endpoint URL'
      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'
      summary: Delete collection
      x-summary-source: derived
  /api/rest/2.0/collections/search:
    post:
      operationId: searchCollections
      description: 'Version: 26.4.0.cl or later


        Gets a list of collections available in ThoughtSpot.


        To 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.


        #### Search options


        * **name_pattern**: Use ''%'' as a wildcard character to match collection names

        * **collection_identifiers**: Search for specific collections by their GUIDs or names

        * **include_metadata**: When set to `true`, includes the metadata objects within each collection in the response


        **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.


        **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`.


        #### Endpoint URL'
      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'
      summary: Search collections
      x-summary-source: derived
  /api/rest/2.0/collections/{collection_identifier}/update:
    post:
      operationId: updateCollection
      description: 'Version: 26.4.0.cl or later


        Updates an existing collection in ThoughtSpot.


        #### Supported operations


        This API endpoint lets you perform the following operations:


        * Update collection name and description

        * Change visibility settings

        * Add metadata objects to the collection (operation: ADD)

        * Remove metadata objects from the collection (operation: REMOVE)

        * Replace all metadata objects in the collection (operation: REPLACE)


        #### Operation types


        * **ADD**: Adds the specified metadata objects to the existing collection without removing current items

        * **REMOVE**: Removes only the specified metadata objects from the collection

        * **REPLACE**: Replaces all existing metadata objects with the specified items (default behavior)


        #### Endpoint URL'
      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'
      summary: Update collection
      x-summary-source: derived
components:
  schemas:
    CollectionEntityIdentifier:
      type: object
      properties:
        identifier:
          type:
          - string
          - 'null'
          description: Unique identifier of the entity.
        name:
          type:
          - string
          - 'null'
          description: Name of the entity.
      description: Entity identifier with name.
    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
          - 'null'
          format: int32
          description: The starting record number from where the records are included.
        record_size:
          type:
          - integer
          - 'null'
          format: int32
          description: The number of records returned.
        is_last_batch:
          type:
          - boolean
          - 'null'
          description: Indicates if this is the last batch of results.
        count:
          type:
          - integer
          - 'null'
          format: int32
          description: Total count of records returned.
      description: Response object for search collections operation.
    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
          - 'null'
        sort_options:
          description: Sort options.
          allOf:
          - $ref: '#/components/schemas/SortOptions'
    GenericInfo:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
        name:
          type:
          - string
          - 'null'
    CollectionDeleteTypeIdentifiers:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          description: Type of the metadata object (e.g., Collection, Worksheet, Table).
        identifiers:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/GenericInfo'
          description: List of metadata identifiers belonging to the given type.
      description: Group of metadata objects identified by type.
    CollectionMetadataItem:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
          description: Type of the metadata object.
        identifiers:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CollectionEntityIdentifier'
          description: List of identifiers for this metadata type.
      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
    CollectionDeleteResponse:
      type: object
      properties:
        metadata_deleted:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CollectionDeleteTypeIdentifiers'
          description: List of metadata objects that were successfully deleted.
        metadata_skipped:
          type:
          - array
          - 'null'
          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.'
      description: Response object for delete collection operation.
    SortOptions:
      type: object
      properties:
        field_name:
          type:
          - string
          - 'null'
          enum:
          - NAME
          - DISPLAY_NAME
          - AUTHOR
          - CREATED
          - MODIFIED
          description: Name of the field to apply the sort on.
        order:
          type:
          - string
          - 'null'
          enum:
          - ASC
          - DESC
          description: 'Sort order : ASC(Ascending) or DESC(Descending).'
      description: Sort options.
    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
          - 'null'
    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
          - 'null'
          description: 'Custom object ID (obj_id) of the collection, if one is set. <br/>  <span class="since-beta-tag">Version: 26.9.0.cl or later</span>'
        description:
          type:
          - string
          - 'null'
          description: Description of the collection.
        metadata:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/CollectionMetadataItem'
          description: Metadata objects in the collection.
        created_at:
          type:
          - string
          - 'null'
          description: Creation timestamp in milliseconds.
        updated_at:
          type:
          - string
          - 'null'
          description: Last updated timestamp in milliseconds.
        author_name:
          type:
          - string
          - 'null'
          description: Name of the author who created the collection.
        author_id:
          type:
          - string
          - 'null'
          description: Unique identifier of the author.
        org:
          $ref: '#/components/schemas/CollectionEntityIdentifier'
          description: Org associated with the collection.
      description: Response object for a collection.
    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
          - 'null'
        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
          - 'null'
      required:
      - collection_identifiers
    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
  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