Skip to content

Execute cross-table SQL query

POST
/queries

Execute a SQL query across one or more dataset tables.

Request Body:

  • tables: Map of table names (as referenced in SQL) to table IDs
  • sql: SQL query to execute
  • maxRows: Maximum rows to return (default: 1000, max: 10000)
  • includeStats: Whether to include execution statistics

Response Formats (Accept header):

  • application/json (default): JSON response with rows, columns, and metadata
  • application/vnd.apache.arrow.stream: Raw Arrow IPC binary data with metadata in headers:
    • X-Query-Id: Unique query identifier
    • X-Row-Count: Number of rows returned
    • X-Truncated: Whether results were truncated

Phase 1 Constraint: All tables must belong to the same team.

object
tables
required
object
key
additional properties
string
sql
required
string
>= 1 characters
maxRows
integer
>= 1 <= 10000
includeStats
boolean

Query executed successfully

object
queryId
required
string
columns
required
Array<object>
object
name
required
string
type
required
string
rows
required
Array<object>
object
key
additional properties
nullable
rowCount
required
number
truncated
required
boolean
stats
object
executionTimeMs
required
number
planningTimeMs
number
bytesScanned
number
rowsScanned
number
usage
object
getOptsCold
required
number
getOptsWarm
required
number
getRangeCold
required
number
getRangeWarm
required
number
getRangesCold
required
number
getRangesWarm
required
number
headCold
required
number
headWarm
required
number
listCold
required
number
listWarm
required
number
putOperations
required
number
deleteOperations
required
number
cacheHitRatePercent
required
number
readBytesCold
required
number
readBytesWarm
required
number
writeBytes
required
number

Bad request - invalid SQL, query error, or tables from multiple teams

Forbidden - insufficient permissions to access one or more tables

One or more dataset tables not found