Skip to main content
Fetch Rows
Returns a paginated page of rows from a custom table.
Row endpoints capture the caller’s identity but enforce no authorization — any caller who can reach your project can read these rows. See Security: open row CRUD.
tableName is the logical name. The server applies the custom_ prefix itself, so pass orders, not custom_orders. Only custom tables are reachable here — a built-in or bundle table returns database/table-not-found, so the existence of built-in tables is never revealed through this surface.

Path Parameters

string
required
Logical name of the custom table. Must match ^[a-zA-Z_][a-zA-Z0-9_]{0,62}$.

Query Parameters

number
1-indexed page number. Defaults to 1.
number
Rows per page. Defaults to 50. Maximum 200.
string
Column to sort by. Must be a real column on the table, or the request fails with database/invalid-sort-column.
string
asc or desc.
string
"true" to include soft-deleted rows on a paranoid table. Defaults to "false".
string
A JSON-encoded array of filter clauses, URL-encoded. Maximum 50 clauses, all AND-combined.Each clause is { "column": string, "operator": string, "value": unknown }.The value, before encoding:
And the same request ready to run — the JSON must be percent-encoded, so let your HTTP client do it rather than pasting raw braces into a URL:
A column that does not exist on the table fails with database/invalid-filter-column.

Response

object[]
The page of rows. Each row is a free-form column map, including the managed columns (id, and createdAt / updatedAt / deletedAt where the table has them).
object

Error Responses

Malformed filters JSON, an unknown operator, a value of the wrong shape for its operator, or an out-of-range page / limit.
Also returned for a built-in or bundle table, which this surface never exposes.