The GET /tables/{tableId}/rows endpoint returns enriched row data with support for
filtering, sorting, column selection, and CSV export.
Basic request
curl "https://origami.chat/api/v1/tables/TABLE_ID/rows" \
-H "Authorization: Bearer og_live_YOUR_KEY"
By default this returns up to 50 rows per page, with your table’s saved filters and
sort order applied (the same view you see in the Origami dashboard).
Use page (zero-based) and pageSize (max 500) to paginate through results.
curl "https://origami.chat/api/v1/tables/TABLE_ID/rows?page=2&pageSize=100" \
-H "Authorization: Bearer og_live_YOUR_KEY"
The response includes total (total matching rows), page, and pageSize so you
know when you’ve reached the end.
Filtering
Pass a JSON-encoded array of filter objects in the filters query parameter.
Each filter uses a column slug (from GET /tables), an operator, and a value.
curl -G "https://origami.chat/api/v1/tables/TABLE_ID/rows" \
-H "Authorization: Bearer og_live_YOUR_KEY" \
--data-urlencode 'filters=[{"column":"website","operator":"is_not_empty","value":""}]'
Available operators: contains, not_contains, equals, not_equals,
is_empty, is_not_empty, greater_than, greater_than_or_equal,
less_than, less_than_or_equal.
When you pass filters, the table’s saved default filters are replaced — not merged.
Sorting
Pass a JSON-encoded sort object with a column slug and direction (asc or desc).
curl -G "https://origami.chat/api/v1/tables/TABLE_ID/rows" \
-H "Authorization: Bearer og_live_YOUR_KEY" \
--data-urlencode 'sort={"column":"quality-score","direction":"desc"}'
Like filters, this replaces the table’s default sort order.
Column selection
Return only specific columns by passing a comma-separated list of slugs.
curl "https://origami.chat/api/v1/tables/TABLE_ID/rows?columns=company-name,website,ceo-email" \
-H "Authorization: Bearer og_live_YOUR_KEY"
Omit the columns parameter to return all columns.
Bypassing saved defaults
By default, the API applies the same filters and sort order you see in the Origami
dashboard. Set defaults=false to get all rows unfiltered, in insertion order.
curl "https://origami.chat/api/v1/tables/TABLE_ID/rows?defaults=false" \
-H "Authorization: Bearer og_live_YOUR_KEY"
CSV export
Set format=csv to get the response as a CSV file instead of JSON.
curl "https://origami.chat/api/v1/tables/TABLE_ID/rows?format=csv&pageSize=500" \
-H "Authorization: Bearer og_live_YOUR_KEY" \
-o export.csv
This returns a standard CSV with column names as headers — ready for Excel,
Google Sheets, or any other spreadsheet tool.