# REST API v1 - Connection API endpoints

> For the complete documentation index, see [llms.txt](https://developers.thoughtspot.com/docs/llms.txt)

Source: https://developers.thoughtspot.com/docs/connections-api-v1

# REST API v1 - Connection API endpoints

> **IMPORTANT:** The REST API v1 endpoints are deprecated and replaced with the REST API v2 endpoints. Your existing integrations with REST API v1 endpoints will continue to function without disruption until further notice. ThoughtSpot strongly recommends migrating your integrations to the REST API v2 endpoints.

This article describes the procedures for setting and managing data connections through the REST APIs. For information about how to set up a data connection, see [Data Connections in ThoughtSpot]({{navprefix}}/{{connections}}).

## Supported operations

 
| API endpoint | Available from |
| --- | --- |
| 
`[**POST** /tspublic/v1/connection/create]({{navprefix}}/{{connections-api}}#cre-connection)`  
Creates a data connection.

 | 

ThoughtSpot Cloud ts7.sep.cl  
ThoughtSpot Software 7.2.1

 |
| 

`[**POST** /tspublic/v1/connection/update]({{navprefix}}/{{connections-api}}#edit-connection)`  
Modifies a data connection.

 | 

ThoughtSpot Cloud ts7.sep.cl  
ThoughtSpot Software 7.2.1

 |
| 

`[**GET** /tspublic/v1/connection/types]({{navprefix}}/{{connections-api}}#connection-types)`  
Gets a list of data connections that are currently operational on the ThoughtSpot cluster.

 | 

ThoughtSpot Cloud ts7.aug.cl  
ThoughtSpot Software 7.1.1

 |
| 

`[**GET** /tspublic/v1/connection/list]({{navprefix}}/{{connections-api}}#live-query-connections)`  
Gets a list of data connections set up for a live query service on the ThoughtSpot cluster.

 | 

ThoughtSpot Cloud ts7.aug.cl  
ThoughtSpot Software 7.1.1

 |
| 

`[**POST** /tspublic/v1/connection/fetchConnection]({{navprefix}}/{{connections-api}}#connMetadata)`  
Gets metadata for a given connection ID.

 | 

ThoughtSpot Cloud 8.2.0.cl  
ThoughtSpot Software 8.4.1-sw

 |
| 

`[**POST** /tspublic/v1/connection/fetchLiveColumns]({{navprefix}}/{{connections-api}}#fetchLiveColums)`  
Gets tables and column metadata a given connection ID.

 | 

ThoughtSpot Cloud 8.2.0.cl  
ThoughtSpot Software 8.4.1-sw

 |
| 

`[**GET** /tspublic/v1/connection/export]({{navprefix}}/{{connections-api}}#export-connections)`  
Exports a data connection map.

 | 

ThoughtSpot Cloud ts7.sep.cl  
ThoughtSpot Software 7.2.1

 |
| 

`[**POST** /tspublic/v1/connection/delete]({{navprefix}}/{{connections-api}}#del-connection)`  
Deletes the specified data connections.

 | 

ThoughtSpot Cloud ts7.sep.cl  
ThoughtSpot Software 7.2.1

 |

### Required permissions

You must have data management permissions to create, edit, delete or query data connection objects. Make sure your user account has the `DATAMANAGEMENT` privilege.

If [Role-Based Access Control (RBAC)](https://developers.thoughtspot.com/docs/rbac) is enabled on your ThoughtSpot cluster, the `CAN_CREATE_OR_EDIT_CONNECTIONS` privilege is required.

## Add a data connection for live query service

ThoughtSpot supports connecting to external data warehouses and using these as data sources for analytics and visualizations. To create a connection to an external data source and set up a live query service, use the `/tspublic/v1/connection/create` API endpoint.

### Resource URL

POST /tspublic/v1/connection/create

### Request parameters

 
| Form parameter | Description |
| --- | --- |
| 
`name`

 | 

_String_. Name of the connection.

 |
| 

`description`

 | 

_String_ A short description of data connection.

 |
| 

`type`

 | 

_String_. Type of the data connection. For example, `RDBMS_SNOWFLAKE`, `RDBMS_REDSHIFT`.

Valid values for `type` map to the **name** property in the API response returned by the [/tspublic/v1/connection/types API endpoint]({{navprefix}}/{{connections-api}}#connection-types).

 |
| 

`createEmpty`

 | 

_Boolean_. Allows creating a connection without tables. If you want to store only the configuration attributes and import tables later, you can set this attribute to `true`. The default value is `false`.

 |
| 

`metadata`

 | 

_String_. A JSON map of the connection metadata. The metadata must include [configuration attributes]({{navprefix}}/{{connections-api}}#connection-attr), database, schema, and table objects. However, you can create a connection without tables by setting the `createEmpty` attribute to `true`.





 |
| 

`state`

 | 

_Integer_. The GUID of the OAuth redirect URI. This attribute is automatically populated and cannot be set by users.

 |

### Example request

cURL

```cURL
curl -X POST \
--header 'Content-Type: application/x-www-form-urlencoded'  \
--header 'Accept: application/json'  \
--header 'X-Requested-By: ThoughtSpot' \
-d 'name=Snowflake&description=Snowflake_connection&type=RDBMS_SNOWFLAKE&metadata=<metadata-JSON-map>' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/create'
```

Request URL

https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/create

#### Example metadata JSON without tables

The following example shows the metadata JSON map for creating a Snowflake data connection without tables.

```JSON
{
   "configuration":{
      "accountName":"thoughtspot_partner",
      "user":"tsadmin",
      "password":"TestConn123",
      "role":"sysadmin",
      "warehouse":"MEDIUM_WH"
   },
   "externalDatabases":[

   ]
}
```

#### Example metadata JSON with tables

The following example shows the metadata JSON map for creating a Snowflake data connection. Note that the example shows the configuration attributes required to authenticate to the data source, and the object metadata (database, schema, and tables) to add to the connection.

```JSON
{
   "configuration":{
      "accountName":"thoughtspot_partner",
      "user":"tsadmin",
      "password":"TestConn123",
      "role":"sysadmin",
      "warehouse":"MEDIUM_WH"
   },
   "externalDatabases":[
      {
         "name":"AllDatatypes",
         "isAutoCreated":false,
         "schemas":[
            {
               "name":"alldatatypes",
               "tables":[
                  {
                     "name":"allDatatypes",
                     "type":"TABLE",
                     "description":"",
                     "selected":true,
                     "linked":true,
                     "columns":[
                        {
                           "name":"CNUMBER",
                           "type":"INT64",
                           "canImport":true,
                           "selected":true,
                           "isLinkedActive":true,
                           "isImported":false,
                           "tableName":"allDatatypes",
                           "schemaName":"alldatatypes",
                           "dbName":"AllDatatypes"
                        },
                        {
                           "name":"CDECIMAL",
                           "type":"INT64",
                           "canImport":true,
                           "selected":true,
                           "isLinkedActive":true,
                           "isImported":false,
                           "tableName":"allDatatypes",
                           "schemaName":"alldatatypes",
                           "dbName":"AllDatatypes"
                        }
                     ]
                  }
               ]
            }
         ]
      }
   ]
}
```

### Example response

If the connection creation is successful, the API returns a response body with the connection metadata header:

```JSON
{
  "header": {
    "id": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
    "indexVersion": 0,
    "generationNum": 0,
    "name": "TEST_conn_1",
    "description": "TEST_conn_private_1",
    "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
    "created": 1632118531177,
    "modified": 1632118531177,
    "modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
    "owner": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
    "tags": [],
    "isExternal": false,
    "isDeprecated": false
  },
  "type": "RDBMS_SNOWFLAKE",
  "authenticationType": "SERVICE_ACCOUNT",
  "logicalTableList": [
    {
      "columns": [
        {
          "physicalColumnGUID": "61d10324-ac22-43e2-8623-fa96f503bab5",
          "position": 0,
          "header": {
            "id": "fd718c83-5e9c-45ae-a4cd-1cb13b03db2f",
            "indexVersion": 381,
            "generationNum": 384,
            "name": "CNUMBER",
            "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
            "created": 1632118531988,
            "modified": 1632118532985,
            "modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
            "owner": "b0248372-5e68-4815-8682-67715456efb2",
            "isDeleted": false,
            "isHidden": false,
            "schemaStripe": "AllDatatypes_alldatatypes_dMSAHvi",
            "databaseStripe": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
            "tags": [],
            "isExternal": false,
            "isDeprecated": false
          },
          "complete": true,
          "incompleteDetail": [],
          "isDerived": false,
          "dataType": "INT64",
          "type": "MEASURE",
          "defaultAggrType": "SUM",
          "physicalColumnName": "CNUMBER",
          "ownerName": "allDatatypes",
          "ownerType": "ONE_TO_ONE_LOGICAL",
          "entityCategory": "DEFAULT",
          "columnMappingInfo": {
            "columnName": "CNUMBER"
          },
          "spotiqPreference": "DEFAULT",
          "isAdditive": true,
          "indexType": "DONT_INDEX",
          "indexPriority": 1,
          "sources": [],
          "synonyms": [],
          "customActionTags": [],
          "injectedInlineValues": [],
          "precision": -1,
          "scale": 0,
          "schemaVersion": "4",
          "isPrimaryKey": false,
          "isAttributionDimension": true
        },
        {
          "physicalColumnGUID": "86c34243-9637-4737-993f-6ed30d3e682c",
          "position": 1,
          "header": {
            "id": "6eed0b58-d195-4236-a376-f135f9b24204",
            "indexVersion": 381,
            "generationNum": 384,
            "name": "CDECIMAL",
            "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
            "created": 1632118531988,
            "modified": 1632118532985,
            "modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
            "owner": "b0248372-5e68-4815-8682-67715456efb2",
            "isDeleted": false,
            "isHidden": false,
            "schemaStripe": "AllDatatypes_alldatatypes_dMSAHvi",
            "databaseStripe": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
            "tags": [],
            "isExternal": false,
            "isDeprecated": false
          },
          "complete": true,
          "incompleteDetail": [],
          "isDerived": false,
          "dataType": "INT64",
          "type": "MEASURE",
          "defaultAggrType": "SUM",
          "physicalColumnName": "CDECIMAL",
          "ownerName": "allDatatypes",
          "ownerType": "ONE_TO_ONE_LOGICAL",
          "entityCategory": "DEFAULT",
          "columnMappingInfo": {
            "columnName": "CDECIMAL"
          },
          "spotiqPreference": "DEFAULT",
          "isAdditive": true,
          "indexType": "DONT_INDEX",
          "indexPriority": 1,
          "sources": [],
          "synonyms": [],
          "customActionTags": [],
          "injectedInlineValues": [],
          "precision": -1,
          "scale": 0,
          "schemaVersion": "4",
          "isPrimaryKey": false,
          "isAttributionDimension": true
        }
      ],
      "tableFilters": [],
      "physicalTableVersion": 0,
      "logicalTableContent": {
        "joinType": "INNER",
        "joinOverrides": {},
        "physicalTableName": "allDatatypes",
        "worksheetType": "VIEW",
        "isAggregatedWorksheet": false,
        "bypassRLS": false,
        "shardingInfo": {
          "primaryKeyColumns": [],
          "shardingKeyColumns": [],
          "numberOfShards": 0
        },
        "tableMappingInfo": {
          "databaseName": "AllDatatypes",
          "schemaName": "alldatatypes",
          "tableName": "allDatatypes",
          "tableType": "TABLE",
          "cachingInfo": {
            "isCached": false,
            "lastLoadTime": 0,
            "type": "UNKNOWN"
          }
        },
        "isOptimized": false,
        "schemaVersion": "4"
      },
      "type": "ONE_TO_ONE_LOGICAL",
      "generationType": "DEFAULT",
      "physicalTableGUID": "14b7589b-8a98-4786-a0c5-0396e05b91ba",
      "relationships": [],
      "dataSourceId": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
      "dataSourceTypeEnum": "DEFAULT",
      "header": {
        "id": "b0248372-5e68-4815-8682-67715456efb2",
        "indexVersion": 381,
        "generationNum": 382,
        "name": "allDatatypes",
        "description": "",
        "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
        "authorName": "su",
        "authorDisplayName": "Administrator Super-User",
        "created": 1632118531988,
        "modified": 1632118532985,
        "modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
        "owner": "b0248372-5e68-4815-8682-67715456efb2",
        "isDeleted": false,
        "isHidden": false,
        "schemaStripe": "AllDatatypes_alldatatypes_dMSAHvi",
        "databaseStripe": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
        "tags": [],
        "type": "ONE_TO_ONE_LOGICAL",
        "isExternal": true,
        "isDeprecated": false
      },
      "complete": true,
      "incompleteDetail": [],
      "destinationRelationships": [],
      "relationshipsWithin": "",
      "isCached": false
    }
  ],
  "dataSourceContent": {
    "statistics": {},
    "dataLoadInfo": {
      "tableToTaskIdMap": {}
    },
    "schemaVersion": "4",
    "configuration": {
      "password": "",
      "role": "DEVELOPER",
      "warehouse": "MEDIUM_WH",
      "accountName": "thoughtspot_partner",
      "user": "tsadmin"
    }
  }
}
```

### Response codes

 
| HTTP status code | Description |
| --- | --- |
| 
**200**

 | 

Successful creation of the connection object

 |
| 

**401**

 | 

Unauthorized or wrong credentials

 |
| 

**500**

 | 

The connection could not be created

 |

## Edit an existing data connection

To update or modify the connection attributes of a data connection, use the `/tspublic/v1/connection/update` API.

### Resource URL

POST /tspublic/v1/connection/update

### Request parameters

 
| Form parameter | Description |
| --- | --- |
| 
`name`

 | 

_String_. Name of the connection.

 |
| 

`description`

 | 

_String_. The description of the data connection.

 |
| 

`type`

 | 

_String_. Type of the data connection. For example, `RDBMS_SNOWFLAKE`, `RDBMS_REDSHIFT`. Valid values for `type` map to the **name** attribute from the in the response to the [/tspublic/v1/connection/types API endpoint]({{navprefix}}/{{connections-api}}#connection-types).

 |
| 

`createEmpty`

 | 

_Boolean_. Allows updating a connection without importing tables. If you want to update only the configuration attributes, you can set this attribute to `true`. The default value is `false`.

 |
| 

`metadata`

 | 

_String_. A JSON map of the connection metadata. The metadata must include [configuration attributes]({{navprefix}}/{{connections-api}}#connection-attr), database, schema, and table objects. However, if the `createEmpty` attribute to `true`, you can update the connection attributes without importing tables.





 |
| 

`id`

 | 

_String_. The GUID of the data connection that you want to modify.

 |
| 

`metadata`

 | 

_String_. A JSON map of the [connection attributes]({{navprefix}}/{{connections-api}}#connection-attr).





 |
| 

`state`

 | 

_Integer_. The GUID of the OAuth redirect URI. This attribute is automatically populated and cannot be set by users.

 |

### Example request

cURL

```cURL
curl -X POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
-d 'name=Snow_TEST&description=Test_connection&type=RDBMS_SNOWFLAKE&id=9114f105-fc9e-48c9-a8f1-57f2fda4f056&metadata=<metadata-JSON-map>' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/update'
```

Request URL

https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/update

#### Example metadata JSON without tables

The following example shows the metadata JSON map for modifying a Snowflake connection without importing tables.

```JSON
{
   "configuration":{
      "accountName":"thoughtspot_partner",
      "user":"tsadmin",
      "password":"Embrace123",
      "role":"sysadmin",
      "warehouse":"MEDIUM_WH"
   },
   "externalDatabases":[

   ]
}
```

#### Example metadata JSON with tables

The following example shows the metadata JSON for modifying a Snowflake data connection. Note that the example shows the configuration attributes to authenticate to the data source, tables, and column data for connection modification.

```JSON
{
   "configuration":{
      "accountName":"thoughtspot_partner",
      "user":"tsadmin",
      "password":"Embrace123",
      "role":"sysadmin",
      "warehouse":"MEDIUM_WH"
   },
   "externalDatabases":[
      {
         "name":"AllDatatypes",
         "isAutoCreated":false,
         "schemas":[
            {
               "name":"alldatatypes",
               "tables":[
                  {
                     "name":"allDatatypes",
                     "type":"TABLE",
                     "description":"",
                     "selected":true,
                     "linked":true,
                     "columns":[
                        {
                           "name":"CDECIMAL",
                           "type":"INT64",
                           "canImport":false,
                           "selected":true,
                           "isLinkedActive":true,
                           "isImported":false,
                           "tableName":"allDatatypes",
                           "schemaName":"alldatatypes",
                           "dbName":"AllDatatypes"
                        },
                        {
                           "name":"CBIGINT",
                           "type":"INT64",
                           "canImport":false,
                           "selected":false,
                           "isLinkedActive":true,
                           "isImported":false,
                           "tableName":"allDatatypes",
                           "schemaName":"alldatatypes",
                           "dbName":"AllDatatypes"
                        }
                     ]
                  }
               ]
            }
         ]
      }
   ]
}
```

### Example response

If the connection modification is successful, the API returns a response body with the updated details:

```JSON
{
  "dataSource": {
    "header": {
      "id": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
      "indexVersion": 385,
      "generationNum": 385,
      "name": "TEST_conn_1",
      "description": "TEST_conn_private_1",
      "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
      "authorName": "tsadmin",
      "authorDisplayName": "Administrator",
      "created": 1632118531177,
      "modified": 1632118751633,
      "modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
      "owner": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
      "isDeleted": false,
      "isHidden": false,
      "isAutoCreated": false,
      "statistics": {
        "dataLoadStatistics": {
          "scheduled": false,
          "connectionType": "",
          "connectionDisplayName": "",
          "dataLoadStatusList": [],
          "header": {
            "id": "a2352b8c-e85e-4d58-8f6a-ac42c0252f2d",
            "indexVersion": 385,
            "generationNum": 385,
            "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
            "owner": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
            "isDeleted": false,
            "isHidden": false,
            "tags": [],
            "isExternal": false,
            "isDeprecated": false
          },
          "complete": true,
          "incompleteDetail": []
        }
      },
      "tags": [],
      "isExternal": false,
      "isDeprecated": false
    },
    "type": "RDBMS_SNOWFLAKE",
    "authenticationType": "SERVICE_ACCOUNT",
    "logicalTableList": [
      {
        "columns": [
          {
            "physicalColumnGUID": "86c34243-9637-4737-993f-6ed30d3e682c",
            "position": 1,
            "header": {
              "id": "6eed0b58-d195-4236-a376-f135f9b24204",
              "indexVersion": 382,
              "generationNum": 382,
              "name": "CDECIMAL",
              "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
              "created": 1632118531988,
              "modified": 1632118532985,
              "modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
              "owner": "b0248372-5e68-4815-8682-67715456efb2",
              "isDeleted": false,
              "isHidden": false,
              "schemaStripe": "AllDatatypes_alldatatypes_dMSAHvi",
              "databaseStripe": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
              "tags": [],
              "isExternal": false,
              "isDeprecated": false
            },
            "complete": true,
            "incompleteDetail": [],
            "isDerived": false,
            "dataType": "INT64",
            "type": "MEASURE",
            "defaultAggrType": "SUM",
            "physicalColumnName": "CDECIMAL",
            "ownerName": "allDatatypes",
            "ownerType": "ONE_TO_ONE_LOGICAL",
            "entityCategory": "DEFAULT",
            "columnMappingInfo": {
              "columnName": "CDECIMAL"
            },
            "spotiqPreference": "DEFAULT",
            "isAdditive": true,
            "indexType": "DONT_INDEX",
            "indexPriority": 1,
            "sources": [],
            "synonyms": [],
            "customActionTags": [],
            "injectedInlineValues": [],
            "precision": -1,
            "scale": 0,
            "isPrimaryKey": false,
            "isAttributionDimension": true
          }
        ],
        "tableFilters": [],
        "physicalTableVersion": 0,
        "logicalTableContent": {
          "joinType": "INNER",
          "joinOverrides": {},
          "physicalTableName": "allDatatypes",
          "worksheetType": "VIEW",
          "isAggregatedWorksheet": false,
          "bypassRLS": false,
          "shardingInfo": {
            "primaryKeyColumns": [],
            "shardingKeyColumns": [],
            "numberOfShards": 0
          },
          "tableMappingInfo": {
            "databaseName": "AllDatatypes",
            "schemaName": "alldatatypes",
            "tableName": "allDatatypes",
            "tableType": "TABLE",
            "cachingInfo": {
              "isCached": false,
              "lastLoadTime": 0,
              "type": "UNKNOWN"
            }
          },
          "isOptimized": false
        },
        "type": "ONE_TO_ONE_LOGICAL",
        "generationType": "DEFAULT",
        "physicalTableGUID": "14b7589b-8a98-4786-a0c5-0396e05b91ba",
        "relationships": [],
        "dataSourceId": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
        "dataSourceTypeEnum": "RDBMS_SNOWFLAKE",
        "header": {
          "id": "b0248372-5e68-4815-8682-67715456efb2",
          "indexVersion": 384,
          "generationNum": 384,
          "name": "allDatatypes",
          "description": "",
          "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
          "authorName": "tsadmin",
          "authorDisplayName": "Administrator",
          "created": 1632118531988,
          "modified": 1632118532985,
          "modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
          "owner": "b0248372-5e68-4815-8682-67715456efb2",
          "isDeleted": false,
          "isHidden": false,
          "schemaStripe": "AllDatatypes_alldatatypes_dMSAHvi",
          "databaseStripe": "d19bec78-4e10-446a-b531-2a0e69c5e62f",
          "tags": [],
          "type": "ONE_TO_ONE_LOGICAL",
          "isExternal": true,
          "isDeprecated": false
        },
        "complete": true,
        "incompleteDetail": [],
        "destinationRelationships": [],
        "relationshipsWithin": "",
        "isCached": false
      }
    ],
    "dataSourceContent": {
      "statistics": {},
      "dataLoadInfo": {
        "tableToTaskIdMap": {}
      },
      "configuration": {
        "password": "",
        "role": "DEVELOPER",
        "warehouse": "MEDIUM_WH",
        "accountName": "thoughtspot_partner",
        "user": "tsadmin"
      }
    }
  },
  "deletedObjects": {
    "deleteStatus": "SUCCESS",
    "deleteFailTables": [],
    "deleteFailColumns": {}
  }
}
```

### Response codes

 
| HTTP status code | Description |
| --- | --- |
| 
**200**

 | 

Successful update operation

 |
| 

**401**

 | 

Unauthorized or wrong credentials

 |
| 

**500**

 | 

Invalid parameters

 |

## Get a list of data connections

To get a list of data connections and their associated attributes, send a `GET` request to the `/tspublic/v1/connection/types` API endpoint.

### Resource URL

GET /tspublic/v1/connection/types

### Request parameters

None

### Example request

cURL

```cURL
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/types'
```

Request URL

https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/types

### Example response

```JSON
[
  {
    "name": "RDBMS_SNOWFLAKE",
    "displayName": "Snowflake",
    "description": "",
    "mode": "PRODUCTION",
    "beta": false,
    "enabled": true
  },
  {
    "name": "RDBMS_REDSHIFT",
    "displayName": "Amazon Redshift",
    "description": "",
    "mode": "PRODUCTION",
    "beta": false,
    "enabled": true
  },
  {
    "name": "RDBMS_GCP_BIGQUERY",
    "displayName": "Google BigQuery",
    "description": "",
    "mode": "PRODUCTION",
    "beta": false,
    "enabled": true
  },
  {
    "name": "RDBMS_AZURE_SQL_DATAWAREHOUSE",
    "displayName": "Azure Synapse",
    "description": "",
    "mode": "PRODUCTION",
    "beta": false,
    "enabled": true
  },
  {
    "name": "RDBMS_PRESTO",
    "displayName": "Starburst",
    "description": "",
    "mode": "PRODUCTION",
    "beta": false,
    "enabled": true
  },
  {
    "name": "RDBMS_ORACLE_ADW",
    "displayName": "Oracle ADW",
    "description": "",
    "mode": "PRODUCTION",
    "beta": false,
    "enabled": true
  },
  {
    "name": "RDBMS_DATABRICKS",
    "displayName": "Databricks",
    "description": "",
    "mode": "PRODUCTION",
    "beta": false,
    "enabled": true
  }
]
```

### Response codes

 
| HTTP status code | Description |
| --- | --- |
| 
**200**

 | 

Successful retrieval of connection types

 |
| 

**401**

 | 

Unauthorized or wrong credentials

 |
| 

**500**

 | 

No data connections set up on the cluster

 |

## Get a list of live query connections

To get a list of data connections that are set up as data sources for live query, send a `GET` request to the `GET /tspublic/v1/connection/list` API endpoint.

### Resource URL

GET /tspublic/v1/connection/list

### Request parameters

 
| Query parameter | Description |
| --- | --- |
| 
`category` _Optional_

 | 

_String_. Type of the live query object. Valid values are:

-   `All`
    
    Gets all live query objects set up on the cluster
    
-   `MY`
    
    Gets a list of live query objects that are set up on your cluster.
    





 |
| 

`sort` _Optional_

 | 

_String_. Sort order for the headers. Valid values are:

-   `DEFAULT` to use the default sort order in the response.
    
-   `NAME` to sort headers by the connection name.
    
-   `DISPLAY_NAME` to sort headers by the display name of the connections.
    
-   `AUTHOR` to sort the headers by the author who set up the live query connection.
    
-   `CREATED` to sort headers by the timestamp at which live query connections were set up.
    
-   `MODIFIED` to sort headers by the timestamp at which the live query connections were modified.
    





 |
| 

`sortascending`

 | 

_Boolean_. A flag to specify the sort order. A null value defines the default order.

-   To set an ascending order, specify `true`.
    
-   To set a descending order, specify `false`.
    





 |
| 

`offset` _Optional_

 | 

_Integer_. Batch offset to value to fetch page headers. The default value is `-1`, which implies first page.

 |
| 

`batchsize` _Optional_

 | 

_Integer_. Number of batches in which you want to fetch page headers in a single query. The default value is `-1`, which implies no pagination.

 |
| 

`tagname` _Optional_

 | 

_Array of strings_. A JSON array of tag names to filter response headers by tags. A tag is a label applied to a ThoughtSpot object.

 |
| 

`pattern` _Optional_

 | 

_String_. A pattern to match the name of the object. This parameter supports matching case-insensitive strings. For a wildcard match, use `%`.

 |

### Example request

cURL

```curl
curl -X GET \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/list'
```

Request URL

https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/list

### Example response

```JSON
{
  "headers": [
    {
      "id": "c1f17251-b2b1-4230-b10b-c81254d5189f",
      "indexVersion": 149,
      "generationNum": 149,
      "name": "test",
      "description": "",
      "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
      "authorName": "tsadmin",
      "authorDisplayName": "Administrator",
      "created": 1625126133409,
      "modified": 1625126133410,
      "modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
      "owner": "c1f17251-b2b1-4230-b10b-c81254d5189f",
      "isDeleted": false,
      "isHidden": false,
      "statistics": {
        "dataLoadStatistics": {
          "scheduled": false,
          "connectionType": "",
          "connectionDisplayName": "",
          "dataLoadStatusList": [],
          "header": {
            "id": "c4831f2f-c0a2-498b-9ac5-98b8bd222058",
            "indexVersion": 149,
            "generationNum": 149,
            "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
            "owner": "c1f17251-b2b1-4230-b10b-c81254d5189f",
            "isDeleted": false,
            "isHidden": false,
            "tags": [],
            "isExternal": false,
            "isDeprecated": false
          },
          "complete": true,
          "incompleteDetail": []
        }
      },
      "tags": [],
      "type": "RDBMS_SNOWFLAKE",
      "isExternal": false,
      "isDeprecated": false
    },
    {
      "id": "55bf4728-bea1-4e89-ae29-822413660daf",
      "indexVersion": 328,
      "generationNum": 328,
      "name": "testsnow",
      "description": "",
      "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
      "authorName": "tsadmin",
      "authorDisplayName": "Administrator",
      "created": 1625139996582,
      "modified": 1625139996583,
      "modifiedBy": "59481331-ee53-42be-a548-bd87be6ddd4a",
      "owner": "55bf4728-bea1-4e89-ae29-822413660daf",
      "isDeleted": false,
      "isHidden": false,
      "statistics": {
        "dataLoadStatistics": {
          "scheduled": false,
          "connectionType": "",
          "connectionDisplayName": "",
          "dataLoadStatusList": [],
          "header": {
            "id": "179697ab-5212-4da8-9508-e0550b7b2327",
            "indexVersion": 328,
            "generationNum": 328,
            "author": "59481331-ee53-42be-a548-bd87be6ddd4a",
            "owner": "55bf4728-bea1-4e89-ae29-822413660daf",
            "isDeleted": false,
            "isHidden": false,
            "tags": [],
            "isExternal": false,
            "isDeprecated": false
          },
          "complete": true,
          "incompleteDetail": []
        }
      },
      "tags": [],
      "type": "RDBMS_SNOWFLAKE",
      "isExternal": false,
      "isDeprecated": false
    }
  ],
  "isLastBatch": true,
  "debugInfo": {}
}
```

### Response codes

 
| HTTP status code | Description |
| --- | --- |
| 
**200**

 | 

Successful retrieval of live query connections list

 |
| 

**401**

 | 

Unauthorized or wrong credentials

 |
| 

**500**

 | 

No live query connections on the cluster

 |

## Get details of a specific connection

To get details of a specific data connection and its associated columns, send a `POST` request to the `/tspublic/v1/connection/fetchConnection` endpoint.

### Resource URL

POST /tspublic/v1/connection/fetchConnection

### Request parameters

 
| Form Data Parameter | Description |
| --- | --- |
| 
`id`

 | 

_String_. GUID of the data connection.

 |
| 

`includeColumns`

 | 

_Boolean_. A flag to include or exclude column metadata in the API response. By default, the API returns data for all columns in the response.

 |
| 

`config`  
_Optional_

 | 

_String_. Configuration attributes to override the connection metadata details in the API response. Use this attribute to query data from a specific database. For example, if your connection has a database named `PROD`, and you want to fetch details with the database name as `DEVELOPMENT`, you can define the `config` string as `{"database":"DEVELOPMENT"}`.

> **NOTE:** Note that the config attribute does not update the connection metadata in the ThoughtSpot system. It only allows you to modify the metadata in the API response. To update a connection, you must use the /tspublic/v1/connection/update endpoint.



 |
| 

`authentication_type`

 | 

_String_. Type of authentication to use when fetching data from the Cloud Data Warehouse. Valid values are:  

-   `SERVICE_ACCOUNT`  
    For data connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.
    
-   `OAUTH`  
    For data connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data.  
    ThoughtSpot data connections to Teradata, Oracle, and Presto Cloud Data Warehouse do not support the `OAuth` authentication type.
    
-   `IAM`  
    For data connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.
    
-   `EXTOAUTH`  
    For data connections that have external OAuth set up. ThoughtSpot supports external OAuth with Microsoft Azure Active Directory (AD) and Okta for Snowflake data connections. For more information, see [Configure Okta OAuth for a Snowflake connection](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth) and [Configure Azure AD external OAuth for a Snowflake connection](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-azure-ad-oauth).
    





 |

### Example request

cURL

```CURL
curl -X POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
-d 'id=abb64e33-1f06-4994-9af7-f6ea8729c9f1&includeColumns=false&config={"database":"RETAILAPPAREL-DEV"}' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/fetchConnection'
```

Request URL

https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/fetchConnection

### Example response

Sample response with column data

```JSON
{
  "type": "RDBMS_SNOWFLAKE",
  "authenticationType": "SERVICE_ACCOUNT",
  "externalDatabases": [
    {
      "name": "RETAILAPPAREL",
      "isAutoCreated": false,
      "schemas": [
        {
          "name": "INFORMATION_SCHEMA",
          "tables": [
            {
              "name": "APPLICABLE_ROLES",
              "type": "VIEW",
              "description": "The roles that can be applied to the current user.",
              "selected": false,
              "linked": true,
              "columns": [
                {
                  "name": "SCHEMA_NAME",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "FILE_NAME",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "LAST_LOAD_TIME",
                  "type": "DATE_TIME",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "STATUS",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "ROW_COUNT",
                  "type": "INT64",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "ROW_PARSED",
                  "type": "INT64",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "FIRST_ERROR_MESSAGE",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "FIRST_ERROR_LINE_NUMBER",
                  "type": "INT64",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "FIRST_ERROR_CHARACTER_POSITION",
                  "type": "INT64",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "FIRST_ERROR_COL_NAME",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "ERROR_COUNT",
                  "type": "INT64",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "ERROR_LIMIT",
                  "type": "INT64",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                }
              ],
              "relationships": []
            },
            {
              "name": "SCHEMATA",
              "type": "VIEW",
              "description": "The schemas defined in this database that are accessible to the current user's role.",
              "selected": false,
              "linked": true,
              "columns": [
                {
                  "name": "CATALOG_NAME",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "SCHEMA_NAME",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "SCHEMA_OWNER",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "IS_TRANSIENT",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "IS_MANAGED_ACCESS",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "RETENTION_TIME",
                  "type": "INT64",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "DEFAULT_CHARACTER_SET_CATALOG",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "DEFAULT_CHARACTER_SET_SCHEMA",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "DEFAULT_CHARACTER_SET_NAME",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "SQL_PATH",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "CREATED",
                  "type": "DATE_TIME",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "LAST_ALTERED",
                  "type": "DATE_TIME",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                },
                {
                  "name": "COMMENT",
                  "type": "VARCHAR",
                  "canImport": true,
                  "selected": false,
                  "isLinkedActive": true
                }
              ],
              "relationships": []
            },
            {
              "name": "FACT_RETAPP_SALES",
              "type": "TABLE",
              "description": "",
              "selected": true,
              "linked": true,
              "columns": [
                {
                  "name": "SALESID",
                  "type": "INT64",
                  "canImport": true,
                  "selected": true,
                  "isLinkedActive": true
                },
                {
                  "name": "PRODUCTID",
                  "type": "INT64",
                  "canImport": true,
                  "selected": true,
                  "isLinkedActive": true
                },
                {
                  "name": "STOREID",
                  "type": "INT64",
                  "canImport": true,
                  "selected": true,
                  "isLinkedActive": true
                },
                {
                  "name": "QUANTITYPURCHASED",
                  "type": "INT64",
                  "canImport": true,
                  "selected": true,
                  "isLinkedActive": true
                },
                {
                  "name": "ITEMPRICE",
                  "type": "DOUBLE",
                  "canImport": true,
                  "selected": true,
                  "isLinkedActive": true
                },
                {
                  "name": "SALES",
                  "type": "DOUBLE",
                  "canImport": true,
                  "selected": true,
                  "isLinkedActive": true
                },
                {
                  "name": "RECORDDATE",
                  "type": "DATE",
                  "canImport": true,
                  "selected": true,
                  "isLinkedActive": true
                }
              ],
              "relationships": []
            }
          ]
        }
      ]
    }
  ],
  "tables": [],
  "selectedTables": [],
  "selectedColumns": [],
  "configuration": {
    "password": "",
    "database": "RETAILAPPAREL-DEV",
    "role": "PUBLIC",
    "accountName": "coa41300.us-east-1",
    "warehouse": "DEMO_WH",
    "user": "tsuser"
  }
}
```

Sample response without column data

```JSON
{
  "type": "RDBMS_SNOWFLAKE",
  "authenticationType": "SERVICE_ACCOUNT",
  "externalDatabases": [
    {
      "name": "RETAILAPPAREL",
      "isAutoCreated": false,
      "schemas": [
        {
          "name": "INFORMATION_SCHEMA",
          "tables": [
            {
              "name": "APPLICABLE_ROLES",
              "type": "VIEW",
              "description": "The roles that can be applied to the current user.",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            },
            {
              "name": "COLUMNS",
              "type": "VIEW",
              "description": "The columns of tables defined in this database that are accessible to the current user's role.",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            },
            {
              "name": "DATABASES",
              "type": "VIEW",
              "description": "The databases that are accessible to the current user's role.",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            },
            {
              "name": "ENABLED_ROLES",
              "type": "VIEW",
              "description": "The roles that are enabled to the current user.",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            },
            {
              "name": "EXTERNAL_TABLES",
              "type": "VIEW",
              "description": "The external tables defined in this database that are accessible to the current user's role.",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            },
            {
              "name": "FILE_FORMATS",
              "type": "VIEW",
              "description": "The file formats defined in this database that are accessible to the current user's role.",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            },
            {
              "name": "FUNCTIONS",
              "type": "VIEW",
              "description": "The user-defined functions defined in this database that are accessible to the current user's role.",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            },
            {
              "name": "INFORMATION_SCHEMA_CATALOG_NAME",
              "type": "VIEW",
              "description": "Identifies the database (or catalog, in SQL terminology) that contains the information_schema",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            },
            {
              "name": "LOAD_HISTORY",
              "type": "VIEW",
              "description": "The loading information of the copy command",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            },
            {
              "name": "SCHEMATA",
              "type": "VIEW",
              "description": "The schemas defined in this database that are accessible to the current user's role.",
              "selected": false,
              "linked": true,
              "columns": [],
              "relationships": []
            }
          ]
        },
        {
          "name": "PUBLIC",
          "tables": [
            {
              "name": "FACT_RETAPP_SALES",
              "type": "TABLE",
              "description": "",
              "selected": true,
              "linked": true,
              "columns": [],
              "relationships": []
            }
          ]
        }
      ]
    }
  ],
  "tables": [],
  "selectedTables": [],
  "selectedColumns": [],
  "configuration": {
    "password": "",
    "database": "RETAILAPPAREL-DEV",
    "role": "PUBLIC",
    "accountName": "coa41300.us-east-1",
    "warehouse": "DEMO_WH",
    "user": "tsuser"
  }
}
```

### Response codes

 
| HTTP status code | Description |
| --- | --- |
| 
**200**

 | 

Successful operation

 |
| 

**400**

 | 

Invalid parameter values

 |
| 

**500**

 | 

Invalid connection object ID

 |

## Get column data for connections with external tables

To get column data for a connection with external tables, send a `POST` request to the `/tspublic/v1/connection/fetchLiveColumns` endpoint.

### Resource URL

POST /tspublic/v1/connection/fetchLiveColumns

### Request parameters

 
| Form Data Parameter | Description |
| --- | --- |
| 
`connection_id`

 | 

_String_. GUID of the data connection.

 |
| 

`tables`

 | 

_String_. The external tables to include in the output. The `tables` string allows you to fetch one or several tables from multiple external databases.

-   To get column data for a specific table, specify the string as shown here:  
    `[{"tableName":"PIPES"}]`
    
-   To get column data for multiple tables, specify the string as shown here:  
    `[{"tableName":"PIPES"},{"tableName":"STAGES"},{"tableName":"SEQUENCES"}]`
    
-   To get column data for tables with a specific schema, specify the string as shown here:  
    `[{"databaseName":"RETAILAPPAREL","schemaName":"INFORMATION_SCHEMA"}]`
    
-   To get column data for a specific table from a specific database, specify the string as shown here:  
    `[{"databaseName":"RETAILAPPAREL","tableName":"PIPES"}]`
    
-   To get column data for a specific table in an external database with a schema, specify the string as shown here:  
    `[{"databaseName":"RETAILAPPAREL","schemaName":"INFORMATION_SCHEMA","tableName":"PIPES"}]`
    
-   To get column data for multiple tables in a specific database, you can specify the string as shown here:  
    `[{"databaseName": "RETAILAPPAREL"},{"tableName": "PIPES"},{"tableName":"STAGES"},{"tableName": "SEQUENCES"}]`
    
-   To get column data for specific tables from multiple databases, you can specify the `tables` string as shown here:  
    `[{"databaseName": "RETAILAPPAREL","tableName": "PIPES"},{"databaseName": "RETAILAPPAREL-DEV","tableName": "STAGES"}]`
    





 |
| 

`config`  
_Optional_

 | 

_String_. Configuration attributes to override the metadata details in the API response. Use this attribute to query data from a specific database. For example, if your connection has a database named `PROD`, and you want to fetch details with the database name as `DEVELOPMENT`, you can define the `config` string as `{"database":"DEVELOPMENT"}`.

> **IMPORTANT:** Note that the config attribute does not update the connection metadata in the ThoughtSpot system. It only allows you to modify the metadata in the API response. To update the connection metadata, you must use the /tspublic/v1/connection/update endpoint.



 |
| 

`authentication_type`

 | 

_String_. Type of authentication to use when fetching data from the Cloud Data Warehouse. Valid values are:  

-   `SERVICE_ACCOUNT` _Default_  
    For data connections that require service account credentials to authenticate to the Cloud Data Warehouse and fetch data.
    
-   `OAUTH`  
    For data connections that require OAuth credentials to authenticate to the Cloud Data Warehouse and fetch data.  
    ThoughtSpot data connections to Teradata, Oracle, and Presto Cloud Data Warehouse do not support the `OAuth` authentication type.
    
-   `IAM`  
    For data connections that have the IAM OAuth set up. This authentication type is supported on Amazon Redshift connections only.
    
-   `EXTOAUTH`  
    For data connections that have external OAuth set up. ThoughtSpot supports external OAuth with Microsoft Azure Active Directory (AD) and Okta for Snowflake data connections. For more information, see [Configure Okta OAuth for a Snowflake connection](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-okta-oauth) and [Configure Azure AD external OAuth for a Snowflake connection](https://docs.thoughtspot.com/cloud/latest/connections-snowflake-azure-ad-oauth).
    





 |

### Example request

cURL

```cURL
curl -X POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
-d 'connection_id=2aa36dbd-dda6-4497-a6db-bc47e128862e&tables=[{"tableName":"PIPES"},{"tableName":"STAGES"},{"tableName":"SEQUENCES"}]&config={"database":"DEVELOPMENT"}' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/fetchLiveColumns'
```

Request URL

https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/fetchLiveColumns

### Example response

Sample response with a single table

```JSON
{
  "..PIPES": [
    {
      "name": "PIPE_CATALOG",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "PIPE_SCHEMA",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "PIPE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "PIPE_OWNER",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "CREATED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "LAST_ALTERED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    }
  ]
}
```

Sample response with multiple tables

```JSON
{
  "..STAGES": [
    {
      "name": "STAGE_CATALOG",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_SCHEMA",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_URL",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_REGION",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_TYPE",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_OWNER",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "CREATED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "LAST_ALTERED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    }
  ],
  "..PIPES": [
    {
      "name": "PIPE_CATALOG",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "PIPE_SCHEMA",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "PIPE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "PIPE_OWNER",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "CREATED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "LAST_ALTERED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    }
  ],
  "..SEQUENCES": [
    {
      "name": "SEQUENCE_CATALOG",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "SEQUENCE_SCHEMA",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "SEQUENCE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "SEQUENCE_OWNER",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "DATA_TYPE",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "CREATED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "LAST_ALTERED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    }
  ]
}
```

Sample response with tables associated to a specific schema

```JSON
{
  "RETAILAPPAREL.INFORMATION_SCHEMA.": [
    {
      "name": "GRANTEE",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "ROLE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "ROLE_OWNER",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "IS_GRANTABLE",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "TABLE_CATALOG",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "TABLE_SCHEMA",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "TABLE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "COLUMN_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "DATA_TYPE",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "DOMAIN_CATALOG",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "DOMAIN_SCHEMA",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "DOMAIN_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "DATABASE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "DATABASE_OWNER",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "IS_TRANSIENT",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "CREATED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "LAST_ALTERED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "SEQUENCE_CATALOG",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "SEQUENCE_SCHEMA",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "SEQUENCE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "SEQUENCE_OWNER",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "CREATED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "LAST_ALTERED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_CATALOG",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_SCHEMA",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_URL",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_REGION",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_TYPE",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_OWNER",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "CREATED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "LAST_ALTERED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    }
  ]
}
```

Sample response with a single table from a specific database

```JSON
{
"RETAILAPPAREL..PIPES": [
{
"name": "PIPE_CATALOG",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "PIPE_SCHEMA",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "PIPE_NAME",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "PIPE_OWNER",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "DEFINITION",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "CREATED",
"type": "DATE_TIME",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "LAST_ALTERED",
"type": "DATE_TIME",
"canImport": true,
"selected": false,
"isLinkedActive": true
}
]
}
```

Sample response with multiple tables from one or more external databases

```JSON
{
"RETAIL.INFORMATION_SCHEMA.PIPES": [
{
"name": "PIPE_CATALOG",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "PIPE_SCHEMA",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "PIPE_NAME",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "PIPE_OWNER",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "DEFINITION",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "CREATED",
"type": "DATE_TIME",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "LAST_ALTERED",
"type": "DATE_TIME",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "COMMENT",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
},
{
"name": "PATTERN",
"type": "VARCHAR",
"canImport": true,
"selected": false,
"isLinkedActive": true
}
],
"RETAILCLOUD.INFORMATION_SCHEMA.STAGES": [
 {
      "name": "STAGE_CATALOG",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_SCHEMA",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_NAME",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_URL",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_REGION",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_TYPE",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "STAGE_OWNER",
      "type": "VARCHAR",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "CREATED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    },
    {
      "name": "LAST_ALTERED",
      "type": "DATE_TIME",
      "canImport": true,
      "selected": false,
      "isLinkedActive": true
    }
]
}
```

### Response codes

 
| HTTP status code | Description |
| --- | --- |
| 
**200**

 | 

Successful operation

 |
| 

**400**

 | 

Invalid connection ID

 |
| 

**500**

 | 

Invalid string format

 |

## Export a connection map

To export the metadata of an active connection map, send a `GET` request to the `/tspublic/v1/connection/export` API.

### Resource URL

GET /tspublic/v1/connection/export

### Request parameters

 
| Query parameter | Description |
| --- | --- |
| 
`id`

 | 

_String_. The GUID of the data connection you want to export.

 |

### Example request

cURL

```cURL
curl -X GET
--header 'Accept: text/yaml'
--header 'X-Requested-By: ThoughtSpot'
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/export?id=627c35cb-768d-45c7-b41d-346a2220cd82'
```

Request URL

https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/export?id=627c35cb-768d-45c7-b41d-346a2220cd82

### Example response

If the specified GUID is valid and points to an existing data connection on your cluster, the API returns a YAML file containing the connection mapping data.

Click the link in the `Response body` to download the YAML file.

### Response codes

 
| HTTP status code | Description |
| --- | --- |
| 
**200**

 | 

Successful export of the connection object

 |
| 

**401**

 | 

Unauthorized request or wrong credentials

 |
| 

**500**

 | 

Invalid connection ID

 |

## Delete a data connection

To delete a data connection, send a `POST` request to the `/tspublic/v1/connection/delete` API.

> **IMPORTANT:** A connection can be used in multiple data sources or visualizations. If a data connection has dependent objects, make sure you remove its associations before running the delete operation.

### Resource URL

POST /tspublic/v1/connection/delete

### Request parameters

 
| Form parameter | Description |
| --- | --- |
| 
`ids`

 | 

_Array of Strings_. A JSON array of data connection GUIDs to delete.

 |

### Example request

cURL

```cURL
curl -X POST \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--header 'X-Requested-By: ThoughtSpot' \
-d 'ids=%5B%229114f105-fc9e-48c9-a8f1-57f2fda4f056%22%5D' \
'https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/delete'
```

Request URL

https://{ThoughtSpot-Host}/callosum/v1/tspublic/v1/connection/delete

### Example response

If the connection deletion is successful, the following response code is returned:

Response Code
204

### Response codes

 
| HTTP status code | Description |
| --- | --- |
| 
**204**

 | 

Successful deletion of the connection object

 |
| 

**401**

 | 

Unauthorized request or wrong credentials

 |
| 

**500**

 | 

The connection could not be deleted due to table dependencies

 |