client.tables manages workspace tables: structured rows you can insert, update, query with SQL, and import or export as CSV. Great for staging data a workflow or agent will read.
Create a table
Column
type is one of string | number | boolean | datetime | file | reference. Every
table has an implicit id primary key (don’t declare it).Manage tables
Table carries sql_name (the identifier to use in SQL), id_type and
source ("custom", or "platform" for a read-only platform view).
Import a CSV or Excel file
index is the column’s position in the file. Imported columns are string,
number or boolean. An .xlsx path imports a spreadsheet: pick the worksheet
with sheet= (the first visible one by default) and drop banner rows above the
header with skip_rows=. encoding is "utf-8" (default) or "latin-1".
Columns (on a Table object)
Rows (on a Table object)
Rows are plain dicts keyed by column name (RowValues).
order_by and descending, and narrow with typed filters. These work
on list_rows, list_rows_page and iter_rows; export_csv takes search
and filters. list_rows_page also returns the total match count.
op is one of contains, is, is_not, gt, lt, gte, lte, eq,
between (with value2), in and not_in (both with a list value).
SQL query
Run read-only SQL across the workspace’s tables:The query is guarded server-side (read-only, per-tenant). Refer to a table by its
identifier,
table.sql_name, which is generated from the name when the table is
created and never changes. See
how the identifier is generated.limit to page the result server-side. With include_total=True (the
default) the response also carries total, which costs a second run of the
query to count, so ask for it on the first page only:
Stats & CSV
Every method has an
a-prefixed async twin (acreate, aquery, ainsert,
aiter_rows, …).