Skip to content

API: Data Sources

Create, test, and sync connections. All endpoints require authentication unless noted. 20 endpoints.

List data sources

Responses: 200 · 400 · 401

Create a new data source

Request body (JSON)

Field Type Required Description
name string yes
type "mssql" | "fabric_warehouse" | "azure_sql" | "postgresql" | "redshift" | "cockroachdb" | "timescaledb" | "greenplum" | "yugabytedb" | "tidb" | "singlestore" | "azure_synapse" | "clickhouse" | "vertica" | "amazon_athena" | "ibm_db2" | "duckdb" | "motherduck" | "trino" | "presto" | "starburst" | "elasticsearch" | "opensearch" | "mysql" | "mariadb" | "oracle" | "snowflake" | "databricks" | "bigquery" yes
config object yes

Responses: 201 · 400 · 401 · 409

Get data source by ID

Path parameters

Name Type Required Description
id string yes

Responses: 200 · 400 · 401 · 404

Update a data source

Path parameters

Name Type Required Description
id string yes

Request body (JSON)

Field Type Required Description
name string no
type "mssql" | "fabric_warehouse" | "azure_sql" | "postgresql" | "redshift" | "cockroachdb" | "timescaledb" | "greenplum" | "yugabytedb" | "tidb" | "singlestore" | "azure_synapse" | "clickhouse" | "vertica" | "amazon_athena" | "ibm_db2" | "duckdb" | "motherduck" | "trino" | "presto" | "starburst" | "elasticsearch" | "opensearch" | "mysql" | "mariadb" | "oracle" | "snowflake" | "databricks" | "bigquery" no
config object no

Responses: 200 · 400 · 401 · 404

Delete a data source

Path parameters

Name Type Required Description
id string yes

Responses: 204 — No content · 401 · 404

Start async schema discovery (returns jobId to poll)

Path parameters

Name Type Required Description
id string yes

Responses: 202 · 400 · 401

Poll schema discovery job status

Path parameters

Name Type Required Description
id string yes
jobId string yes

Responses: 200 · 400 · 401 · 404

List discovered schemas for a data source

Path parameters

Name Type Required Description
id string yes

Responses: 200 · 400 · 401

GET /api/sources/{id}/schemas/{schema}/tables

Section titled “GET /api/sources/{id}/schemas/{schema}/tables”

List tables for a discovered schema

Path parameters

Name Type Required Description
id string yes
schema string yes

Responses: 200 · 400 · 401

GET /api/sources/{id}/schemas/{schema}/tables/{table}/columns

Section titled “GET /api/sources/{id}/schemas/{schema}/tables/{table}/columns”

List columns for a discovered table

Path parameters

Name Type Required Description
id string yes
schema string yes
table string yes

Responses: 200 · 400 · 401 · 404

Get schema sync history

Path parameters

Name Type Required Description
id string yes

Query parameters

Name Type Required Description
limit integer no
offset integer no

Responses: 200 · 400 · 401

Test a saved data source connection

Path parameters

Name Type Required Description
id string yes

Responses: 200 · 400 · 401 · 404

Create a data source from a Google Sheet

Request body (JSON)

Field Type Required Description
name string yes
spreadsheetId string yes
credentials string yes

Responses: 201 · 400 · 401 · 409

Create a data source from a JSON REST endpoint

Request body (JSON)

Field Type Required Description
name string yes
url string yes
headers object no
recordsPath string no
tableName string no

Responses: 201 · 400 · 401 · 409

Test a data source connection

Request body (JSON)

Field Type Required Description
type "mssql" | "fabric_warehouse" | "azure_sql" | "postgresql" | "redshift" | "cockroachdb" | "timescaledb" | "greenplum" | "yugabytedb" | "tidb" | "singlestore" | "azure_synapse" | "clickhouse" | "vertica" | "amazon_athena" | "ibm_db2" | "duckdb" | "motherduck" | "trino" | "presto" | "starburst" | "elasticsearch" | "opensearch" | "mysql" | "mariadb" | "oracle" | "snowflake" | "databricks" | "bigquery" yes
host string no
port integer no
database string no
user string no
username string no
password string no
encrypt boolean no
trustServerCertificate boolean no
account string no
warehouse string no
role string no
schema string no
httpPath string no
token string no
catalog string no
projectId string no
credentials string no
location string no
dataset string no

Responses: 200 · 400 · 401 · 404

Create a data source by uploading a CSV file

Multipart form with a file (CSV) and a name field. The file’s rows are loaded into a managed staging table and registered as a ‘csv’ data source.

Responses: 201 · 400 · 401 · 409

Create a data source by uploading an Excel (.xlsx) workbook

Multipart form with a file (.xlsx) and a name field. Every non-empty sheet is loaded into a per-source staging schema and registered as an ‘excel’ data source.

Responses: 201 · 400 · 401 · 409

Create a data source by uploading a JSON/NDJSON file

Multipart form with a file (.json/.ndjson), a name field, and an optional recordsPath (dot path to the record array). Staged as one ‘json_file’ data source.

Responses: 201 · 400 · 401 · 409

Create a data source by uploading a Parquet (.parquet) file

Multipart form with a file (.parquet) and a name field. The file is decoded in memory and staged as one table registered as a ‘parquet’ data source.

Responses: 201 · 400 · 401 · 409

Create a data source by uploading a SQLite database file

Multipart form with a file (.sqlite/.db) and a name field. Every table in the file is loaded into a per-source staging schema and registered as a ‘sqlite’ data source.

Responses: 201 · 400 · 401 · 409