Get source query status
Gets the status of many submitted queries at once — the standard async query status lifecycle (pending, running, ready, error, ...) plus the error message for failed queries. Poll this after Execute source queries; fetch each ready query's rows with the standard async query results endpoint. Statuses are visible to the query creator only.
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 |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
queryUuids | array[string] | Yes |
Responses
200 — Success
{
"results": {
"statuses": [
{
"error": "string",
"status": "pending",
"queryUuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
]
},
"status": "ok"
}default — Error
{
"error": {
"data": "string",
"message": "string",
"name": "string",
"statusCode": 0
},
"status": "error"
}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.
List my query history
Lists the requesting user's own query history for a project, newest first, with per-trigger and per-window counts. Must stay declared before `getAsyncQueryResults` so the generated `/history` route is matched before `/{queryUuid}`.