Skip to main content
GET
List rows (typed cells; ?cells=flat / ?format=csv)

Authorizations

Authorization
string
header
required

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

Path Parameters

tableId
string<uuid>
required

Query Parameters

cursor
string

Opaque pagination cursor. Pass the nextCursor from the previous page to fetch the next one; omit for the first page.

limit
integer
default:50

Max rows to return. Default 50; rows allow up to 200 (vs. 100 elsewhere).

Required range: 1 <= x <= 200
filters
string

JSON array of { column, operator, value } filters. column is an input-column slug, or one of the row-level fields (relevance_score, duplicates, excluded, disapproved, triage_state); operators: contains, not_contains, equals, not_equals, is_empty, is_not_empty, greater_than, greater_than_or_equal, less_than, less_than_or_equal. Unknown columns → UNKNOWN_COLUMN. Supplying this replaces the table's saved filters entirely, even when the array is empty.

sort
string

JSON object { column, direction: "asc"|"desc" } (slug-keyed).

cells
enum<string>

Pass flat for v1-style { slug: value } rows instead of typed cells.

Available options:
flat
format
enum<string>

Pass csv to stream the (flat) rows as CSV.

Available options:
csv
defaults
enum<string>
default:true

Whether to apply the table's saved filters and sort order - the same ones shown in the Origami dashboard. Defaults to true. Most tables carry a quality filter that hides disqualified rows, so this is usually the difference between the dashboard's row count and the full table. Pass false to get every row, in insertion order.

Duplicate, excluded and removed rows are hidden by default on every read; defaults=false does not surface them. Include them with an explicit filter ({"column":"duplicates","operator":"equals","value":"include"}, likewise excluded and disapproved), or leave defaults=true on a table whose saved view already unhides them.

Available options:
true,
false

Response

A page of rows (list envelope + total).

The canonical v2 list envelope. Every list endpoint returns this shape; per-endpoint items element types (and documented extras like total) are declared on each operation.

object
string
required
Allowed value: "list"
items
object[]
required

The page of objects. Element type is per-endpoint.

nextCursor
string | null
required

Cursor for the next page; null means this is the last page.

url
string
required

The path this list was fetched from (query string excluded).

total
integer
required

Total row count for the query's scope (all pages) - i.e. after the request's filters, or the table's saved filters when defaults is left on, and always after the invariant hiding of duplicate, excluded and removed rows.