Skip to main content
POST
Query table rows

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

table_id
string<uuid>
required

Body

application/json

Request body for the rows query.

A POST rather than a GET because a filter list has no honest query-string encoding. column_ids is the projection: send the columns the grid will actually render and the response carries only those cells.

column_ids
string<uuid>[] | null

Project each row's cells to these columns. Omit for every column. The response echoes the projection in column_ids so a client can tell a blank cell from one it did not ask for.

Maximum array length: 500
cursor
string | null

Opaque cursor from a previous page's next_cursor.

Maximum string length: 1024
limit
integer
default:100

Maximum rows per page.

Required range: 1 <= x <= 100
offset
integer | null

Start the listing this many rows in, rather than at the top: a jump-to-row seek. Mutually exclusive with cursor, which resumes a listing rather than starting one. Postgres walks the skipped rows, so this is for a deliberate jump — keep paging with next_cursor.

Required range: x >= 0
record_ids
string<uuid>[] | null

Hydrate exactly these rows, instead of describing a listing. Mutually exclusive with sorts, where, row_status, offset and cursor — those select rows, and this names them. Pair with /rows/ids/ to fetch an ordering once and then fill in row contents a window at a time, which lets re-sorting or re-filtering reuse cells the client already holds.

Maximum array length: 1000
row_status
enum<string> | null

Restrict to rows whose CELLS are in a given state: errored (any cell failed to compute) or fully_computed (none did). ANDed with where. This is a question about computation, which the filter operators — all of which test one column's value — cannot ask.

Available options:
errored,
fully_computed
sorts
TableRowSortSchema · object[]

Order by these columns, in priority order, instead of the display order. Blanks sort last for every key, whichever way that key runs.

Maximum array length: 3
where
TableRowsWhereSchema · object | null

The predicate tree every returned row must satisfy. Omit for an unfiltered listing.

Response

Successful Response

One keyset page of table rows.

column_ids
string<uuid>[] | null
required

The columns whose cells this page carries, or null for all of them. A column outside this list is NOT blank — it was simply not fetched.

has_more
boolean
required
limit
integer
required
next_cursor
string | null
required

Cursor for the next page; None when this is the last page.

rows
TableRowSchema · object[]
required