Skip to main content
POST
/
api
/
public
/
organizations
/
{orgId}
/
data-sources
Create a data source
curl --request POST \
  --url https://charts.basedash.com/api/public/organizations/{orgId}/data-sources \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "type": "direct",
  "dialect": "POSTGRES",
  "displayName": "<string>",
  "snowflakeAccountId": "<string>",
  "snowflakeWarehouse": "<string>",
  "snowflakeRole": "<string>",
  "snowflakePrivateKey": "<string>",
  "snowflakePrivateKeyPassphrase": "<string>",
  "databaseName": null,
  "username": "<string>",
  "host": "<string>",
  "port": 32767,
  "password": "<string>",
  "bigQueryJsonKey": "<string>",
  "bigQueryProjectId": "<string>",
  "spannerInstanceId": "<string>",
  "sslEnabled": true,
  "sshEnabled": false,
  "sshHost": "<string>",
  "sshPort": 32767,
  "sshUsername": "<string>",
  "sshPassword": "<string>",
  "sshPrivateKey": "<string>",
  "sshPrivateKeyPassphrase": "<string>"
}
'
{
  "data": {
    "id": "<string>",
    "displayName": "<string>",
    "description": "<string>",
    "dialect": "POSTGRES",
    "databaseName": "<string>",
    "username": "<string>",
    "host": "<string>",
    "port": 123,
    "sslEnabled": true,
    "sslCustomCertificatesEnabled": true,
    "sshEnabled": true,
    "sshHost": "<string>",
    "sshPort": 123,
    "sshUsername": "<string>",
    "bigQueryProjectId": "<string>",
    "spannerInstanceId": "<string>",
    "snowflakeAccountId": "<string>",
    "snowflakeWarehouse": "<string>",
    "snowflakeRole": "<string>",
    "lastSuccessfulSyncAt": "2023-11-07T05:31:56Z",
    "lastSyncStatus": "PENDING",
    "lastSyncAttemptAt": "2023-11-07T05:31:56Z",
    "hasCompletedFirstSync": true,
    "syncErrorMessage": "<string>",
    "lastHealthyAt": "2023-11-07T05:31:56Z",
    "lastHealthStatus": "HEALTHY",
    "lastHealthCheckAttemptAt": "2023-11-07T05:31:56Z",
    "isDemo": true,
    "isBasedashWarehouse": true,
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z"
  }
}

Side effects

When a data source is successfully created:
  1. Schema sync - A background job is triggered to connect to the database and sync its schema (tables, columns, etc.)
  2. Trial activation - If the organization has never been on a trial, a trial period is automatically started
  3. Initial report - An initial analytics report is created for the organization

Authorizations

Authorization
string
header
required

API key authentication using Bearer token format: Bearer <basedash_api_key>

Path Parameters

orgId
string
required

Organization ID

Body

application/json
type
enum<string>
required

Connection type (currently only direct)

Available options:
direct
dialect
required

Database dialect/type

Available options:
POSTGRES
displayName
string
required

Display name for the data source

Minimum string length: 1
snowflakeAccountId
string

Snowflake account ID

snowflakeWarehouse
string

Snowflake warehouse

snowflakeRole
string

Snowflake role

snowflakePrivateKey
string

Snowflake private key

snowflakePrivateKeyPassphrase
string

Snowflake private key passphrase

databaseName
string | null

Database name

username
string

Database username

host
string

Database host

port
integer

Database port

Required range: 0 <= x <= 65535
password
string

Database password

bigQueryJsonKey
string

BigQuery JSON key

bigQueryProjectId
string

BigQuery project ID

spannerInstanceId
string

Spanner instance ID

sslEnabled
boolean
default:true

Enable SSL connection

sshEnabled
boolean
default:false

Enable SSH tunnel

sshHost
string

SSH tunnel host

sshPort
integer

SSH tunnel port

Required range: 0 <= x <= 65535
sshUsername
string

SSH tunnel username

sshPassword
string

SSH tunnel password

sshPrivateKey
string

SSH private key

sshPrivateKeyPassphrase
string

SSH private key passphrase

Response

Data source created successfully

data
object
required