Skip to main content
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).

Pagination

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.