Dependent objects APIs
The tspublic/v1/dependency
endpoints allow you to query dependent objects for a metadata object type or ID.
Dependency in ThoughtSpot is defined as a relation between the referenced and referencing objects. If the referenced object cannot be deleted without first deleting the referencing object, the referenced object is considered as a dependent object.
Consider a worksheet (Worksheet1
) that has a derived logical column (Column1
), which in turn has a reference to a base logical column (Column2
).

In the above example, Worksheet1
has a dependency on Column2
, which means that Worksheet1
is a referencing object and Column2
is a referenced object. ThoughtSpot does not allow you to delete Column2
if you have not deleted Worksheet1
, because the deletion of Column2
will be prevented by the relationship between Worksheet1’s
Column1
and Column2
. Similarly, Column1
has a dependency on Column2
; that is, Column1
is a referencing object and Column2
is a referenced object. You cannot delete Column2
without first deleting Column1
.
Before deleting a data object such as a worksheet, table, or column, you must check if it has any dependent objects, and remove its associations.
Types of data objects
The tspublic/v1/dependency
endpoint allows you to query dependency details for the following data object types:
-
LOGICAL_TABLE
for data objects such as tables, worksheets, or views. -
QUESTION_ANSWER_BOOK
for answers. -
PINBOARD_ANSWER_BOOK
for pinboards. -
LOGICAL_COLUMN
for columns of a table, worksheet, or view. -
LOGICAL_RELATIONSHIP
for table joins.A join combines columns from one or several data objects by using matching values.
-
PHYSICAL_COLUMN
for the underlying column objects that exist in the physical layer of the data repository. -
PHYSICAL_TABLE
for the underlying table objects that exist in the physical layer of the data repository.
The APIs require you to specify the GUIDs of the data objects that you want to query. You can use the |
Supported operations
|
|
|
|
|
|
|
|
Get dependent objects for metadata type
To get a list of dependents for a specific metadata object type, send a POST
request to the /tspublic/v1/dependency/listdependents
endpoint.
Request parameters
Form parameter | Description |
---|---|
|
String. Type of the data object. Valid values are:
|
|
Array of strings. A JSON array of GUIDs of the objects to associate as dependents. |
|
Integer. The maximum number of batches to fetch in a query. If this attribute is not defined, the |
Example request
curl -X POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
-d 'id=%5B%22cd252e5c-b552-49a8-821d-3eadaa049cca%22%2C%20%2269428b60-58fd-42d7-b645-16ea3d524a06%22%5D&batchsize=1' \
'https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/listdependents'
https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/listdependents
Example response
If the POST
operation is successful, the API returns a response body with dependent object details:
{
"69428b60-58fd-42d7-b645-16ea3d524a06": {},
"cd252e5c-b552-49a8-821d-3eadaa049cca": {
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "d084c256-e284-4fc4-b80c-111cb606449a",
"indexVersion": 12,
"generationNum": 566,
"name": "Sales Performance",
"description": "",
"author": "59481331-ee53-42be-a548-bd87be6ddd4a",
"authorName": "tsadmin",
"authorDisplayName": "Administrator",
"created": 1620247455573,
"modified": 1620247455573,
"modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
"owner": "d084c256-e284-4fc4-b80c-111cb606449a",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
}
}
Get dependent objects for a column
To get the details of dependent objects for a logical column in a worksheet, table, or view, send a GET
request to /tspublic/v1/dependency/logicalcolumn
API endpoint.
Request parameters
Query parameter | Description |
---|---|
|
Array of strings. A JSON array of GUIDs of the columns of a table, worksheet, or view. |
Example request
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/logicalcolumn?id=%5B%220761cc6a-543b-4db3-a066-43c707a2655e%22%2C%20%2234d09c13-08a3-4b09-907b-92cc6f544f78%22%5D'
https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/logicalcolumn?id=%5B%220761cc6a-543b-4db3-a066-43c707a2655e%22%2C%20%2234d09c13-08a3-4b09-907b-92cc6f544f78%22%5D
Example response
If the GET operation is successful, the API returns a list of dependent objects such as worksheets, pinboard objects, and answers.
{
"34d09c13-08a3-4b09-907b-92cc6f544f78": {
"LOGICAL_TABLE": [
{
"id": "2b9d083a-275c-4984-9cfe-90b036affa17",
"indexVersion": 2280,
"generationNum": 2280,
"name": "Discover Monitoring Data",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604575960913,
"modified": 1616226670804,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "2b9d083a-275c-4984-9cfe-90b036affa17",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
],
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"indexVersion": 15,
"generationNum": 2271,
"name": "Stats and Trends for Search on Answers",
"description": "This pinboard describes how users are searching for existing answers. It provides what users are searching for, where users are successful and where they are not.",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604579772176,
"modified": 1619631844661,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
},
"0761cc6a-543b-4db3-a066-43c707a2655e": {
"LOGICAL_TABLE": [
{
"id": "2b9d083a-275c-4984-9cfe-90b036affa17",
"indexVersion": 2280,
"generationNum": 2280,
"name": "Discover Monitoring Data",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604575960913,
"modified": 1616226670804,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "2b9d083a-275c-4984-9cfe-90b036affa17",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
],
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"indexVersion": 15,
"generationNum": 2271,
"name": "Stats and Trends for Search on Answers",
"description": "This pinboard describes how users are searching for existing answers. It provides what users are searching for, where users are successful and where they are not.",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604579772176,
"modified": 1619631844661,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
}
}
Get dependent details for data objects
To get the details of dependent objects for a worksheet, table, or view, send a GET
request to the /tspublic/v1/dependency/logicaltable
API endpoint.
Request parameters
Query parameter | Description |
---|---|
|
Array of strings. The GUIDs of data objects such as worksheets, tables, or views. |
Example request
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/logicaltable?id=%5B%222b9d083a-275c-4984-9cfe-90b036affa17%22%2C%20%22b8781e3b-6972-4c3b-9581-15fe800eee16%22%2C%20%22f7b13cf6-c2a7-46c1-ae13-d0ef97e98ea4%22%5D'
https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/logicaltable?id=%5B%222b9d083a-275c-4984-9cfe-90b036affa17%22%2C%20%22b8781e3b-6972-4c3b-9581-15fe800eee16%22%2C%20%22f7b13cf6-c2a7-46c1-ae13-d0ef97e98ea4%22%5D
Example response
If the GET
operation is success, the API returns a list of dependent objects:
{
"f7b13cf6-c2a7-46c1-ae13-d0ef97e98ea4": {
"QUESTION_ANSWER_BOOK": [
{
"id": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"indexVersion": 15,
"generationNum": 547,
"name": "Table wise details of data, query and performance - Last 90 days",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1579692750445,
"modified": 1579692930908,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"clientState": {
"queryState": "FALCON",
"hasUserDefinedName": true
},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
],
"LOGICAL_TABLE": [
{
"id": "a4a991b4-7039-4998-b903-ce58688989ee",
"indexVersion": 560,
"generationNum": 560,
"name": "TS: Rows of un-cached tables by Connection [Deprecated]",
"description": "Aggregate Worksheet to keep sum of row for each un-cached tables in a connection",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1572114887820,
"modified": 1598437970534,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "a4a991b4-7039-4998-b903-ce58688989ee",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "AGGR_WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
]
},
"2b9d083a-275c-4984-9cfe-90b036affa17": {
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"indexVersion": 15,
"generationNum": 552,
"name": "Stats and Trends for Search on Answers",
"description": "This pinboard describes how users are searching for existing answers. It provides what users are searching for, where users are successful and where they are not.",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604579772176,
"modified": 1619631844661,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
}
}
Get dependent objects for table joins
To get the details of dependent objects for table joins, send a GET request to the /tspublic/v1/dependency/logicalrelationship
API endpoint.
Request parameters
Query parameter | Description |
---|---|
|
Array of strings. A JSON array of the GUIDs of table joins. |
Example request
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' 'https://j<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/logicalrelationship?id=%5B%22594ac790-4b03-4853-8953-47040332bc36%22%5D'
https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/logicalrelationship?id=%5B%22594ac790-4b03-4853-8953-47040332bc36%22%5D
Example response
If the GET operation is successful, the API returns the following response:
{
"594ac790-4b03-4853-8953-47040332bc36": {
"QUESTION_ANSWER_BOOK": [
{
"id": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"indexVersion": 15,
"generationNum": 547,
"name": "Table wise details of data, query and performance - Last 90 days",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1579692750445,
"modified": 1579692930908,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"clientState": {
"queryState": "FALCON",
"hasUserDefinedName": true
},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
}
}
Get dependent objects for physical columns
To get the details of dependent objects for a physical column, send a GET
request to the /tspublic/v1/dependency/physicalcolumn
API endpoints.
Request parameters
Query parameter | Description |
---|---|
|
Array of strings. A JSON array of GUIDs of the physical columns. |
Example request
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' 'https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/physicalcolumn?id=%5B%2209247580-95b6-4018-9f0f-f5a8b333065c%22%2C%20%22ae3fbcb0-60c9-43b3-98a1-48dd47cb4151%22%5D'
https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/physicalcolumn?id=%5B%2209247580-95b6-4018-9f0f-f5a8b333065c%22%2C%20%22ae3fbcb0-60c9-43b3-98a1-48dd47cb4151%22%5D
Example response
{
"34d09c13-08a3-4b09-907b-92cc6f544f78": {
"LOGICAL_TABLE": [
{
"id": "2b9d083a-275c-4984-9cfe-90b036affa17",
"indexVersion": 2280,
"generationNum": 2280,
"name": "Discover Monitoring Data",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604575960913,
"modified": 1616226670804,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "2b9d083a-275c-4984-9cfe-90b036affa17",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
],
"PINBOARD_ANSWER_BOOK": [
{
"hasTabs": false,
"modelVersion": "V1",
"id": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"indexVersion": 15,
"generationNum": 2271,
"name": "Stats and Trends for Search on Answers",
"description": "This pinboard describes how users are searching for existing answers. It provides what users are searching for, where users are successful and where they are not.",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604579772176,
"modified": 1619631844661,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "eea322db-2b8c-4bb7-922d-a80807a0ba94",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"resolvedObjects": {},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
]
},
"0761cc6a-543b-4db3-a066-43c707a2655e": {
"LOGICAL_TABLE": [
{
"id": "2b9d083a-275c-4984-9cfe-90b036affa17",
"indexVersion": 2280,
"generationNum": 2280,
"name": "Discover Monitoring Data",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1604575960913,
"modified": 1616226670804,
"modifiedBy": "67e15c06-d153-4924-a4cd-ff615393b60f",
"owner": "2b9d083a-275c-4984-9cfe-90b036affa17",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
]
}
}
Get dependent objects for physical tables
To get dependent objects for a physical table, send a GET
request to the /tspublic/v1/dependency/physicaltable
API endpoint.
Request parameters
Query parameter | Description |
---|---|
|
Array of strings. A JSON array of the GUIDs of the physical table. |
Example request
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' 'https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/physicaltable?id=%5B%22182f1e7c-c461-4535-b9da-c5297147631a%22%5D'
https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/physicaltable?id=%5B%22182f1e7c-c461-4535-b9da-c5297147631a%22%5D
Example response
{
"f7b13cf6-c2a7-46c1-ae13-d0ef97e98ea4": {
"QUESTION_ANSWER_BOOK": [
{
"id": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"indexVersion": 15,
"generationNum": 547,
"name": "Table wise details of data, query and performance - Last 90 days",
"description": "",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1579692750445,
"modified": 1579692930908,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "33052ef8-5296-4aa8-8c57-7499ef0cb282",
"isDeleted": false,
"isHidden": false,
"isAutoCreated": false,
"isAutoDelete": false,
"clientState": {
"queryState": "FALCON",
"hasUserDefinedName": true
},
"tags": [],
"isExternal": false,
"isDeprecated": false
}
],
"LOGICAL_TABLE": [
{
"id": "a4a991b4-7039-4998-b903-ce58688989ee",
"indexVersion": 560,
"generationNum": 560,
"name": "TS: Rows of un-cached tables by Connection [Deprecated]",
"description": "Aggregate Worksheet to keep sum of row for each un-cached tables in a connection",
"author": "67e15c06-d153-4924-a4cd-ff615393b60f",
"authorName": "system",
"authorDisplayName": "System User",
"created": 1572114887820,
"modified": 1598437970534,
"modifiedBy": "0f0dd0f7-7411-4195-a4aa-0dc6b58413c9",
"owner": "a4a991b4-7039-4998-b903-ce58688989ee",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "AGGR_WORKSHEET",
"isExternal": false,
"isDeprecated": false
}
]
}
}
Get dependent details for pinboards
When a default pinboard is assigned to a user group in ThoughtSpot, it is used for onboarding new users of that group. Users of this group can also mark the default pinboard as a favorite and use its data source for a new search.
If a pinboard is set as a default pinboard for a user group, the /tspublic/v1/dependency/pinboard
endpoint will return the user group as a dependent object for that pinboard. This API endpoint does not return other dependent data objects such as tables, views, and worksheets.
Example request
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \ 'https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/pinboard?ids=%5B%22d084c256-e284-4fc4-b80c-111cb606449a%22%5D'
https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/pinboard?ids=%5B%22d084c256-e284-4fc4-b80c-111cb606449a%22%5D
Example response
{
"d084c256-e284-4fc4-b80c-111cb606449a": {
"USER_GROUP": [
{
"id": "75e405e2-5bf2-4308-a3ac-e270fe288b51",
"indexVersion": 1074,
"generationNum": 1074,
"name": "Test",
"displayName": "Test",
"description": "",
"author": "59481331-ee53-42be-a548-bd87be6ddd4a",
"created": 1637582831120,
"modified": 1637839396188,
"modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
"owner": "75e405e2-5bf2-4308-a3ac-e270fe288b51",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "LOCAL_GROUP",
"isExternal": false,
"isDeprecated": false
}
]
}
}
Get incomplete objects
To get a list of objects with incomplete metadata, send a GET
request to the /tspublic/v1/dependency/listincomplete
API endpoint.
Example request
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' 'https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/listincomplete'
https://<ThoughtSpot-host>/callosum/v1/tspublic/v1/dependency/listincomplete
Example response
If the cluster has objects with incomplete metadata details, the API returns the headers for the objects that have incomplete information:
{
"worksheet": {
"id": "bcbfde69-d491-4422-bf90-2204cc8675cb",
"indexVersion": 560,
"generationNum": 560,
"name": "Cust_WS",
"author": "5567b729-0031-41bf-9598-16e5046d3ec6",
"authorName": "User4",
"authorDisplayName": "User4",
"created": 1625121896494,
"modified": 1625121896499,
"modifiedBy": "5567b729-0031-41bf-9598-16e5046d3ec6",
"owner": "bcbfde69-d491-4422-bf90-2204cc8675cb",
"isDeleted": false,
"isHidden": false,
"tags": [],
"type": "WORKSHEET",
"isExternal": false,
"isDeprecated": false
},
"incompleteDetails": []
}