API endpoint | Available from |
---|---|
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
| ThoughtSpot Cloud ts7.aug.cl |
Admin APIs
- Supported operations
- Get configuration details
- Get details of configuration overrides
- Update configuration
- Get details of the embed actions
- Get details of a specific custom action
- Create custom actions
- Modify a custom action
- Delete a custom action
- Associate a custom action to ThoughtSpot objects
- Get details of custom action associations
- Delete custom action associations
The admin API service allows you to query and update configuration information for a ThoughtSpot cluster. You can also use these APIs to migrate data from one cluster to another.
Supported operations🔗
Required permissions🔗
To make an API request to the /tspublic/v1/admin/configinfo
, /tspublic/v1/admin/configinfo/update
/tspublic/v1/admin/configinfo/overrides
endpoints, you must have administrator access.
Get configuration details🔗
To get details of the current configuration of a ThoughtSpot cluster, send a GET
request to the /tspublic/v1/admin/configinfo
API.
Resource URL🔗
POST /tspublic/v1/admin/configinfo
Example request🔗
Make sure the API request has the following headers:
-
the
Accept
header is set asAccept: application/json
-
the
X-requested-by
header is set asX-Requested-By: ThoughtSpot
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/configinfo'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/configinfo
Request parameters🔗
None
Example response🔗
If the request is successful, the API returns a response with details of the configuration and flags enabled on the cluster.
The following example shows a snippet of the configuration information:
{
"highCardinalityMaxDataSize": 20000,
"fetchPivotSummaryFromBackend": true,
"vizRenderingQueueTimeoutMS": 30000,
"enableColumnSummariesByDefault": true,
"defaultChartDataSize": 5000,
"maxFilterValues": 10000,
"useDomainQualifiedName": true,
"enableInstantSearch": false,
"defaultFilterNonCascading": false,
"pinboardFilterConfiguratorDisabled": false,
"isAnswerUndoStackEnabled": false,
"answerV2Experience": true,
"enablePinboardV2": false,
"blinkHelpConfigList": [
{
"enabled": true,
"title": "How search works",
"id": "BLINK_HOW_SEARCH_WORKS",
"url": "https://cloud-docs.thoughtspot.com/{versionNameForLink}/release/help-center.html",
"iconFilePath": ""
},
{
"enabled": true,
"title": "Keywords",
"id": "BLINK_KEYWORDS",
"url": "https://cloud-docs.thoughtspot.com/{versionNameForLink}/reference/keywords.html",
"iconFilePath": ""
}
],
"blinkActionConfigList": [],
"embedActionConfigList": [
{
"id": "f4a19262-e93a-4233-8511-2eaa91b32514",
"name": "dave test action",
"version": "v2",
"type": "URL",
"detail": {
"link": "http://unpkg.com",
"function": "dave-test-action",
"authSelect": "NONE",
"authToken": "",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"additionalUrlHeaders": "{}"
},
"actionAssociationMap": {
"WORKSHEET": {
"47c22122-779e-41e1-afa6-5247192b845a": {
"enabled": "true",
"context": "PRIMARY"
}
}
},
"context": "NONE",
"availability": []
},
{
"id": "3f7eac93-cce1-4ffc-b7a8-429353edbc6b",
"name": "unpkg test",
"version": "v2",
"type": "URL",
"detail": {
"link": "https://unpkg.com",
"function": "unpkg-test",
"authSelect": "BEARER",
"authToken": "AbCdEf123456",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"additionalUrlHeaders": "{\"url_header1\":{\"id\":\"6a82908c-9328-40ff-b347-65adeda12f57\",\"key\":\"key1\",\"value\":\"value1\"}}"
},
"actionAssociationMap": {
"ANSWER": {
"e783038e-95fc-494b-a52a-7da3487b90ea": {
"enabled": "true",
"context": "MENU"
}
}
},
"context": "NONE",
"availability": [
"GLOBAL"
]
},
"ldapConfiguration": {
"enabled": false,
"realms": "",
"enforceBindingPriorToAuthentication": false,
"bindUsername": "",
"bindPassword": "",
"updateLdapAttributes": true,
"displayNameAttributeKey": "displayName",
"emailAttributeKey": "mail"
},
"autoCompleteConfig": {
"requestTimeout": 10000
},
"samlConfiguration": {
"enabled": false,
"samlLoginPageRedirect": false,
"forceAuthn": false,
"updateSamlAttributes": true,
"logoutEnabledInUI": false,
"mobileAppRedirectEnabled": true,
"emailAttributeKey": "mail",
"displayNameAttributeKey": "displayName",
"samlGroupAttributeKey": "roles",
"disableMaxAuthenticationAgeCheck": false,
"updateUserGroupsFromSAML": false
},
"oidcConfiguration": {
"enabled": false,
"forceAuthn": false,
"oidcLoginPageRedirect": false,
"updateOIDCAttributes": true,
"logoutEnabledInUI": false,
"emailAttributeKey": "email",
"displayNameAttributeKey": "displayName",
"subjectAttributeKey": "preferred_username",
"callbackUri": "/callosum/v1/oidc/callback",
"oidcLoginUri": "/callosum/v1/oidc/login",
"scope": "openid profile email"
},
"materializationConfig": {
"enabled": false,
"maxMaterializedViewsPerCluster": 50,
"refreshWindowStartTime": "08:00PM",
"materializationHours": 8
},
"emailConfig": {
"companyName": "Your Company",
"productName": "ThoughtSpot",
"fromEmail": "no-reply@notification.thoughtspot.com",
"thoughtspotLogoUrl": "https://storage.pardot.com/710713/5660/TS_logo_260x68.png",
"welcomeEmailConfig": {
"enabled": true,
"fromEmail": "ThoughtSpot Administrator <noreply@cloud.thoughtspot.com>",
"supportEmail": "ThoughtSpot Administrator <contact@cloud.thoughtspot.com>",
"customMessage": "",
"getStartedLink": "https://notyetset",
"learnMoreLink": "https://docs.thoughtspot.com",
"addMixpanelTokens": true
}
},
"notificationConfig": {
"groupMemberShareNotificationLimit": 500,
"asyncShareEmailServiceThreadCount": 10,
"accessRequestEmailThreadCount": 5,
"useNotificationService": true
},
"sharingConfiguration": {
"enableVizSharing": true,
"enableDataSourceSharing": true,
"enableVizSharingWithLink": true
},
"userPersonaConfiguration": {
"dataManagementCheckEnabled": true
},
"demoDataConfiguration": {
"demoConnectionGuids": [
"2aa36dbd-dda6-4497-a6db-bc47e128862e"
],
"demoWorksheetGuids": [
"cd252e5c-b552-49a8-821d-3eadaa049cca"
],
"demoTableGuids": [
"a633dccd-b449-46df-a0fc-92034d6858cb",
"7d174ef2-2482-4e61-9d6e-1e1d709d96b0",
"757f2434-66ef-43ad-9820-ba9008072155"
],
"demoPinboardGuids": [
"d084c256-e284-4fc4-b80c-111cb606449a"
]
},
"analystOnboardingConfig": {
"enabled": true,
"videoURL": "https://fast.wistia.net/embed/iframe/dmue1pc6fp",
"setupV2Enabled": true
},
"fullEmbedConfiguration": {
"primaryNavHidden": true,
"profileAndHelpOptionsInNavBarHidden": false,
"alertBarHidden": false,
"poweredFooterHidden": false,
"pinboardCreationPrivilegeEnabled": false,
"isPinboardDownloadAsPDFEnabled": true,
"isPinboardVizDownloadAsPDFEnabled": true,
"isPinboardVizDownloadAsPNGEnabled": true,
"isPinboardVizDownloadAsCSVEnabled": true,
"isPinboardVizDownloadAsXLSXEnabled": true
},
"walkMeConfiguration": {
"enableWalkme": false,
"enableTestEnvForWalkme": false
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful retrieval of the configuration information |
401 | Unauthorized request |
Get details of configuration overrides🔗
To get the details of configuration overrides, send a GET request to the /tspublic/v1/admin/configinfo/overrides
API endpoint.
Resource URL🔗
GET /tspublic/v1/admin/configinfo/overrides
Request parameters🔗
None
Example request🔗
Make sure the API request has the following headers:
-
the
Accept
header is set asAccept: application/json
-
the
X-requested-by
header must beX-Requested-By: ThoughtSpot
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/configinfo/overrides'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/configinfo/overrides
Example response🔗
If the request is successful, the API returns the details of the configuration overrides. The following example shows a snippet of the configuration details:
{
"enableColumnSummariesByDefault": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "Enable column summaries by default from backend",
"current": true
},
"analystOnboardingConfig.setupV2Enabled": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "If setup v2 is to be enabled.",
"current": true
},
"notificationConfig.asyncShareEmailServiceThreadCount": {
"category": "MAIN",
"dataType": "INTEGER",
"description": "Number of threads sending asynchronous email notifications for share.",
"current": 10
},
"samlConfiguration.groupMapping": {
"category": "MAIN",
"dataType": "STRING",
"description": "SAML Group mapping in string format.",
"regex": ".*",
"current": ""
},
"samlConfiguration.updateUserGroupsFromSAML": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "Whether to check if update userGroups from SAML is enabled.",
"current": false
},
"signUpConfiguration.signUpButtonLink": {
"category": "MAIN",
"dataType": "STRING",
"description": "Flag to configure the end point of Sign up button",
"regex": ".*",
"current": ""
},
"enablePendo": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "Flag to enable or disable Pendo.",
"current": true
},
"disableFeedback": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "Disable send feedback on the cluster",
"current": false
},
"pinboardFilterConfiguratorDisabled": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "Disables Configure Filter option on a Liveboard",
"current": false
},
"embedActionConfigList": {
"category": "MAIN",
"dataType": "ARRAYLIST",
"description": "Embed Action items added by user",
"current": [
{
"id": "f4a19262-e93a-4233-8511-2eaa91b32514",
"name": "dave test action",
"version": "v2",
"type": "URL",
"detail": {
"link": "http://unpkg.com",
"function": "dave-test-action",
"authSelect": "NONE",
"authToken": "",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"additionalUrlHeaders": "{}"
},
"actionAssociationMap": {
"WORKSHEET": {
"47c22122-779e-41e1-afa6-5247192b845a": {
"enabled": "true",
"context": "PRIMARY"
}
}
},
"context": "NONE",
"availability": []
},
{
"id": "3f7eac93-cce1-4ffc-b7a8-429353edbc6b",
"name": "unpkg test",
"version": "v2",
"type": "URL",
"detail": {
"link": "https://unpkg.com",
"function": "unpkg-test",
"authSelect": "BEARER",
"authToken": "AbCdEf123456",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"additionalUrlHeaders": "{\"url_header1\":{\"id\":\"6a82908c-9328-40ff-b347-65adeda12f57\",\"key\":\"key1\",\"value\":\"value1\"}}"
},
"actionAssociationMap": {
"ANSWER": {
"e783038e-95fc-494b-a52a-7da3487b90ea": {
"enabled": "true",
"context": "MENU"
}
}
},
"context": "NONE",
"availability": [
"GLOBAL"
]
},
{
"id": "8b9f5009-bbcf-46b0-8076-9593c75d2ea2",
"name": "my url",
"version": "v2",
"type": "URL",
"detail": {
"link": "http://thoughtspot.com/ ",
"function": "my-url",
"authSelect": "NONE",
"authToken": "",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"additionalUrlHeaders": "{}"
},
"actionAssociationMap": {
"ANSWER": {
"e783038e-95fc-494b-a52a-7da3487b90ea": {
"enabled": "true",
"context": "CONTEXT_MENU"
}
}
},
"context": "NONE",
"availability": [
"GLOBAL"
]
}
]
},
"sharingConfiguration.enableVizSharingWithLink": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "enable/disable sharing of viz from using copy link button.",
"current": true
},
"analystOnboardingConfig.enabled": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "If onboarding is to be enabled.",
"current": true
},
"adminPortalDevEnabled": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "Enable AdminPortal for dev",
"current": false
},
"rememberedSessionIdleTimeoutMs": {
"category": "MAIN",
"dataType": "INTEGER",
"description": "Session idle timeout for an authenticated session with remember me set to true.",
"current": 3600000
},
"maxNumSearchIQPreferredColumnsAllowed": {
"category": "MAIN",
"dataType": "INTEGER",
"description": "Maximum number of searchIQ preferred columns within a table.",
"current": 15
},
"vizEmbedConfiguration.disableTransformations": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "Whether transformations are permitted within an embedded viz.",
"current": false
},
"loginConfig.allowSystemUserUILogin": {
"category": "MAIN",
"dataType": "BOOLEAN",
"description": "Allow system user to login through UI",
"current": false
},
"maxNumDataApiRows": {
"category": "MAIN",
"dataType": "INTEGER",
"description": "Size for maximum number of rows that can be returned using data api.",
"current": 100000
},
"callosumSaaSTest": {
"category": "MAIN",
"dataType": "INTEGER",
"description": "Does not matter right now",
"current": 1
},
"batchSize": {
"category": "MAIN",
"dataType": "INTEGER",
"description": "Data result set batch size. Data is exported in batches of batchSize up to a maximum of maxNumPaginatedRows.",
"current": 1000
},
"dataGenRules.enableUniqueCountTransformEmbrace": {
"category": "DATA",
"dataType": "BOOLEAN",
"description": "Flag to enable unique count transformation for embrace.",
"current": true
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful retrieval of the configuration information |
401 | Unauthorized request |
Update configuration🔗
To update the configuration settings for your cluster, send a POST
request to the /tspublic/v1/admin/configinfo/update
API endpoint.
Resource URL🔗
POST /tspublic/v1/admin/configinfo/update
Request parameters🔗
Form parameter | Description |
---|---|
| String. A JSON file with the key-value pair of configuration attributes. |
Example request🔗
Make sure the API request has the following headers:
-
the
Accept
header is set asAccept: application/json
-
the
X-requested-by
header must beX-Requested-By: ThoughtSpot
-
the Content-Type is set as
application/x-www-form-urlencoded
curl -X POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
-d 'configchanges=@import-embed-objects-b.json' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/configinfo/update'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/configinfo/update
Example response🔗
If the request is successful, the API returns the following response code:
Response Code 204
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful operation |
204 | Successful update of the configuration information |
401 | Unauthorized request |
Get details of the embed actions🔗
To get a list of custom actions available on a ThoughtSpot instance, send a GET
request to the /tspublic/v1/admin/embed/actions
API endpoint.
Resource URL🔗
GET /tspublic/v1/admin/embed/actions
Request parameters🔗
Query parameter | Description |
---|---|
| String. A JSON array of tag GUIDs. If tags are applied to worksheets, search answers, or Liveboard visualizations, and custom actions are associated to these objects, you can use this parameter to filter the custom action data by tags. |
Example request🔗
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot'
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions
Example response🔗
If the cluster has custom actions, the API returns a list of custom actions.
[
{
"id": "d86e9c55-2ac7-4c37-a3ff-2efa965ee221",
"name": "Send Survey",
"version": "v4",
"detail": {
"additionalUrlHeaders": "{}",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"function": "send-survey",
"authToken": "",
"link": "https://mysurvey.com/",
"authSelect": "NONE",
"appActionType": ""
},
"type": "URL",
"context": "NONE",
"availability": [
"GLOBAL"
],
"application": "NONE",
"actionAssociationMap": {},
"userGroupList": []
},
{
"id": "c3d847d3-1eda-4903-97a0-4caefbffa406",
"name": "send email",
"version": "v4",
"detail": {
"additionalUrlHeaders": "{}",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"function": "send-email",
"authToken": "",
"link": "",
"authSelect": "NONE",
"appActionType": ""
},
"type": "CALLBACK",
"context": "NONE",
"availability": [
"GLOBAL"
],
"application": "NONE",
"actionAssociationMap": {},
"userGroupList": []
},
{
"id": "e5a2467d-8d0b-45ea-bf72-bab9d1e456fd",
"name": "Send to Slack",
"version": "v4",
"detail": {
"additionalUrlHeaders": "{}",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"function": "send-to-slack",
"authToken": "",
"link": "",
"authSelect": "NONE",
"appActionType": "SLACK"
},
"type": "APP",
"context": "NONE",
"availability": [
"GLOBAL"
],
"application": "NONE",
"actionAssociationMap": {},
"userGroupList": []
}
]
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful operation |
401 | Unauthorized request |
Get details of a specific custom action🔗
To get details of a specific custom action configured in the ThoughtSpot system, send a GET
request to the GET /tspublic/v1/admin/embed/actions/{actionid}
API endpoint.
Resource URL🔗
GET /tspublic/v1/admin/embed/actions/{actionid}
Request parameters🔗
Path Parameter | Description |
---|---|
| String. The GUID of the action. |
Example request🔗
Make sure the API request has the following headers:
-
the
Accept
header is set asAccept: application/json
-
The
X-requested-by
header is set asX-Requested-By: ThoughtSpot
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions/f1192d2f-6e2e-4669-a73d-d8997d6598ff'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions/f1192d2f-6e2e-4669-a73d-d8997d6598ff
Example response🔗
If the request is successful, the API returns the JSON data for the specified action ID:
{
"id": "f1192d2f-6e2e-4669-a73d-d8997d6598ff",
"name": "Send Survey",
"version": "v4",
"detail": {
"additionalUrlHeaders": "{}",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"function": "send-survey",
"authToken": "",
"link": "",
"authSelect": "NONE"
},
"type": "CALLBACK",
"context": "NONE",
"availability": [],
"application": "NONE",
"actionAssociationMap": {
"WORKSHEET": {
"2b9d083a-275c-4984-9cfe-90b036affa17": {
"context": "PRIMARY",
"enabled": "true"
}
},
"ANSWER": {
"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5": {
"context": "PRIMARY",
"enabled": "true"
}
}
},
"userGroupList": []
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful operation |
401 | Unauthorized request |
404 | Invalid action ID |
Create custom actions🔗
To programmatically create custom actions on ThoughtSpot clusters that support embedding configuration, send a POST
request with action configuration details to the /tspublic/v1/admin/embed/actions
API endpoint.
Resource URL🔗
POST /tspublic/v1/admin/embed/actions
Request parameters🔗
Form parameter | Description |
---|---|
| String. A JSON map of the configuration attributes presented as key-value pairs. |
Example request🔗
curl -X POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
--d 'embedaction={
"availability": [
"GLOBAL"
],
"context": "NONE",
"detail": {
"link": "",
"encodeUser": "",
"authToken": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"authSelect": "NONE",
"additionalUrlHeaders": "{}",
"function": "test",
"appActionType": "SLACK"
},
"name": "test",
"type": "APP",
"version": "v4",
"userGroupList": []
} \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions
Example JSON map🔗
{
"availability": [
"GLOBAL"
],
"context": "NONE",
"detail": {
"link": "",
"encodeUser": "",
"authToken": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"authSelect": "NONE",
"additionalUrlHeaders": "{}",
"function": "test",
"appActionType": "SLACK"
},
"name": "test",
"type": "APP",
"version": "v4",
"userGroupList": []
}
Example response🔗
If the request is successful, the API returns the JSON data for the custom action in the response body:
{
"id": "eab63fb9-2b04-48fe-89fe-871317c16b55",
"name": "Send Survey",
"version": "v4",
"detail": {
"additionalUrlHeaders": "{\"url_header1\":{\"id\":\"6a82908c-9328-40ff-b347-65adeda12f57\",\"key\":\"key1\",\"value\":\"value1\"}}",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"function": "send-survey",
"authToken": "asdfasadf3q4534534",
"link": "https://unpkg.com",
"authSelect": "BEARER"
},
"type": "URL",
"context": "NONE",
"availability": [
"GLOBAL"
],
"application": "NONE",
"schemaVersion": "4",
"actionAssociationMap": {
"ANSWER": {
"e4079d3f-ae71-4b0a-a70a-f17ecaf157a5": {
"context": "MENU",
"enabled": "true"
}
}
},
"userGroupList": [
"d0326b56-ef23-4c8a-8327-a30e99bcc72b"
]
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful operation |
401 | Unauthorized request |
Modify a custom action🔗
You can programmatically edit an existing custom action by sending a PUT
request to the /tspublic/v1/admin/embed/actions/{actionid}
API endpoint.
Resource URL🔗
PUT /tspublic/v1/admin/embed/actions/{actionid}
Request parameters🔗
Parameter | Parameter Type | Description |
---|---|---|
| Path parameter | String. The GUID of the custom action. |
| Form data parameter | String. A JSON map of the configuration attributes presented as key-value pairs. |
Example request🔗
curl -X PUT \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
-d 'embedaction=={
"id": "173f7c2f-4081-48a3-9a25-556947bedfdb",
"name": "Send to Slack",
"version": "v4",
"detail": {
"additionalUrlHeaders": "{}",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"authToken": "",
"function": "send-to-slack",
"link": "",
"authSelect": "NONE",
"appActionType": "SLACK"
},
"type": "APP",
"context": "NONE",
"availability": [
"GLOBAL"
],
"application": "NONE",
"userGroupList": []
}' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions/173f7c2f-4081-48a3-9a25-556947bedfdb'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions/173f7c2f-4081-48a3-9a25-556947bedfdb
Example response🔗
If the request is successful, the API returns the JSON data for the specified action ID:
{
"id":"0f1b18f9-2dbd-4742-bc70-7bfc1322ad3f",
"name":"Send email",
"version":"v2",
"type":"CALLBACK",
"detail":{
"link":"",
"function":"send-email",
"authSelect":"NONE",
"authToken":"",
"encodeUser":"",
"apiKey":"X-API-KEY",
"apiValue":"",
"additionalUrlHeaders":"{}"
},
"context":"NONE",
"availability":[
"LOCAL"
],
"userGroupList":[
"d0326b56-ef23-4c8a-8327-a30e99bcc72b"
]
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful operation |
401 | Unauthorized request |
404 | Invalid action ID |
Delete a custom action🔗
To programmatically delete a custom action, send a DELETE
request to the DELETE /tspublic/v1/admin/embed/actions/{actionid}
API endpoint.
Resource URL🔗
DELETE /tspublic/v1/admin/embed/actions/{actionid}
Request parameters🔗
Path Parameter | Description |
---|---|
| String. The GUID of the action. |
Example request🔗
Make sure the API request has the following headers:
-
the
Accept
header is set asAccept: application/json
-
The
X-requested-by
header asX-Requested-By: ThoughtSpot
curl -X DELETE \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions/0f1b18f9-2dbd-4742-bc70-7bfc1322ad3f'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions/0f1b18f9-2dbd-4742-bc70-7bfc1322ad3f
Example response🔗
On successful deletion of the action, the API returns a response body indicating that the specified action ID is no longer available:
{
"id": "eab63fb9-2b04-48fe-89fe-871317c16b55",
"name": "unpkg test",
"version": "v4",
"detail": {
"additionalUrlHeaders": "{\"url_header1\":{\"id\":\"6a82908c-9328-40ff-b347-65adeda12f57\",\"key\":\"key1\",\"value\":\"value1\"}}",
"encodeUser": "",
"apiKey": "X-API-KEY",
"apiValue": "",
"function": "unpkg-test",
"authToken": "asdfasadf3q4534534",
"link": "https://unpkg.com",
"authSelect": "BEARER"
},
"type": "URL",
"context": "NONE",
"availability": [
"GLOBAL"
],
"application": "NONE"
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful operation |
401 | Unauthorized request |
404 | Invalid action ID |
Associate a custom action to ThoughtSpot objects🔗
ThoughtSpot supports associating custom actions to Liveboards, answers, and worksheets, To programmatically associate a custom action to a ThoughtSpot object, send a POST
request to the /tspublic/v1/admin/embed/actions/{actionid}/associations
API endpoint.
Resource URL🔗
POST /tspublic/v1/admin/embed/actions/{actionid}/associations
Request parameters🔗
Parameter | Parameter Type | Description |
---|---|---|
| Path parameter | String. The GUID of the custom action. |
| Form data parameter | String. A JSON map of the attributes for associating the action to a ThoughtSpot object ID. |
Example request🔗
curl-X POST \
--header 'Content-Type:application/x-www-form-urlencoded' \
--header 'Accept:application/json' \
--header 'X-Requested-By: ThoughtSpot' \
-d' actionassociation={
"actionAssociationMap": {
"ANSWER": {
"f605dbc7-db19-450b-8613-307118f74c3c": {
"enabled": "true",
"context": "PRIMARY"
}
}
}
}' \
'https://{ThoughtSpot-host}/callosum/v1/tspublic/v1/admin/embed/actions/67495d70-f08b-4a48-ade7-46ed64c02e23/associations'
https://{ThoughtSpot-host}/callosum/v1/tspublic/v1/admin/embed/actions/67495d70-f08b-4a48-ade7-46ed64c02e23/associations
Example response🔗
If the API request is successful, the object association map is appended to the custom action property and the API returns the object association JSON in the response body.
{
"ANSWER": {
"f605dbc7-db19-450b-8613-307118f74c3c": {
"context": "PRIMARY",
"enabled": "true"
}
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful operation |
401 | Unauthorized request |
404 | Invalid action ID |
500 | Request parsing error |
Get details of custom action associations🔗
To get the details of the ThoughtSpot objects associated with a custom action, send a GET
request to the /tspublic/v1/admin/embed/actions/{actionid}/associations
API endpoint.
Resource URL🔗
GET /tspublic/v1/admin/embed/actions/{actionid}/associations
Request parameters🔗
Path Parameter | Description |
---|---|
| String. The GUID of the custom action. |
Example request🔗
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions/67495d70-f08b-4a48-ade7-46ed64c02e23/associations'
https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/admin/embed/actions/67495d70-f08b-4a48-ade7-46ed64c02e23/associations
Example response🔗
If the custom action is associated to a ThoughtSpot object, the API returns the action association map:
{
"ANSWER": {
"f605dbc7-db19-450b-8613-307118f74c3c": {
"enabled": "true",
"context": "PRIMARY"
}
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful operation |
401 | Unauthorized request |
404 | Invalid action ID |
Delete custom action associations🔗
To remove custom action associations to ThoughtSpot objects, send a DELETE
request to the /tspublic/v1/admin/embed/actions/{actionid}/associations
API endpoint.
Resource URL🔗
DELETE /tspublic/v1/admin/embed/actions/{actionid}/associations
Request parameters🔗
Parameter | Parameter Type | Description |
---|---|---|
| Path parameter | String. The GUID of the custom action. |
| Form data parameter | String. A JSON map of the attributes for associating the action to a ThoughtSpot object ID. |
Example request🔗
curl -X DELETE \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
-d 'actionassociation={
"actionAssociationMap": {
"ANSWER": {
"f605dbc7-db19-450b-8613-307118f74c3c": {
"enabled": "true",
"context": "PRIMARY"
}
}
}
}' \
'https://{ThoughtSpot-host}/callosum/v1/tspublic/v1/admin/embed/actions/67495d70-f08b-4a48-ade7-46ed64c02e23/associations'
https://{ThoughtSpot-host}/callosum/v1/tspublic/v1/admin/embed/actions/67495d70-f08b-4a48-ade7-46ed64c02e23/associations
Example response🔗
The API response shows the deleted association map:
{
"ANSWER": {
"f605dbc7-db19-450b-8613-307118f74c3c": {
"enabled": "true",
"context": "PRIMARY"
}
}
}
Response codes🔗
HTTP status code | Description |
---|---|
200 | Successful operation |
400 | Invalid operation |
401 | Unauthorized request |
404 | Invalid action ID |