Scan query source schema
Scans the schema of one query source into the standard shape: tables with columns of {reference, type}. For the semantic layer, tables are explores and columns are field ids; for warehouse SQL, tables come from the warehouse catalog resolved for your credentials, like the SQL runner; the duckdb source has no schema of its own — its tables are the references given to each query.
Scans the schema of one query source into the standard shape: tables
with columns of {reference, type}. For the semantic layer, tables are
explores and columns are field ids; for warehouse SQL, tables come from
the warehouse catalog resolved for your credentials, like the SQL
runner; the duckdb source has no schema of its own — its tables are the
references given to each query.
Authentication: personal access token. The spec defines an api_key security
scheme — send an Authorization: ApiKey <your-personal-access-token> header
(value format: ApiKey <your key>). A session_cookie scheme (connect.sid)
exists for browser sessions. Operations in this spec declare security: [], an
artifact of the upstream spec generator — authentication is still enforced by the
server.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
projectUuid | string | Yes | |
sourceType | string | Yes |
Responses
200 — Success
{
"results": {
"tables": [
{
"columns": [
{
"description": "string",
"label": "string",
"type": "string",
"reference": "string"
}
],
"description": "string",
"label": "string",
"reference": "string"
}
],
"sourceType": "semanticLayer"
},
"status": "ok"
}default — Error
{
"error": {
"data": "string",
"message": "string",
"name": "string",
"statusCode": 0
},
"status": "error"
}List query sources
Lists the query sources registered for this deployment. Every source supports the same operations: scan its schema, and submit queries that return a queryUuid whose results are fetched with the standard async query results endpoint. Requires the multi-source-query feature flag.
Execute source queries
Submits one or more source queries through the common interface. Every query body is tagged by sourceType and every query returns a queryUuid, polled with the standard async query results endpoint (or Get source query status for many at once). Queries reference each other's results by nodeId: a duckdb query's references expose other queries' results as tables, named by node id (array shorthand) or by alias (map form, which also accepts queryUuids of results from previous submissions). A referenced result keeps the column names of the query that produced it — field ids for semanticLayer queries, SELECT output names for sql queries. All queries are submitted immediately; a query referencing still-running results waits inside its own execution and fails if a referenced query fails, so no orchestration happens outside the queries themselves. Submit queries one at a time (interactive use) or as a whole pipeline in one call — the two are equivalent, so a serialized multi-query analysis is just the bodies of the queries that were run interactively, with queryUuid references swapped for node ids. Note that results expire: re-run upstream queries whose results have expired instead of referencing their old queryUuids.