Skip to main content

Tables API

Create document tables, define extraction columns, connect collections, and query or export results.

📄️Keep table updated from collection

Creates or updates one persistent subscription per table/collection. Imports existing ready documents by default and automatically extracts new or changed documents. Source retries reuse the existing row. Set enabled=false to prepare or pause a connection and receive watch.discoveryPreview with a bounded count of ready versions awaiting discovery. Reconnecting retries scheduling failures. Uses the caller’s current access and usage limits. Generated Insights CSVs are excluded. Enabled connections start billable extraction in the background. Employee authoring tools default to paused; direct API callers retain the enabled default.

📄️Read, filter, and sort table records as JSON

Read authorized live rows with columns, source references, values and cellStatus keyed by column ID. Non-completed values are null. Start with no page or cursor, then follow pagination.type: page uses nextPage; cursor uses nextCursor and omits total unless count=exact. Cursor tables support source-name q, sourceType/externalKey, typed AND filters, id/createdAt/updatedAt/source or columnId:value sorts. Numbered tables support q over names and cell values, and source/columnId:value/columnId:score sorts. Unsupported options return 400. Both use 1–100 rows; sort ties are stable. Preserve the selection between cursor requests; 409 means restart. Table, owner and source permissions apply on every read. No CSV or warehouse load is required. These live pages are not frozen export snapshots. Source-name substring search, typed column filters and sorts, and exact counts may scan the full authorized table. Prefer indexed id, createdAt, updatedAt or source ordering for large tables.

📄️Save record directly to table

Save supplied JSON values without document extraction. First read listTableColumns and key values by column ID. Supply a stable idempotencyKey for each business record and reuse it on retries: the same payload returns the original row; different values or a deleted row return 409. Missing columns are blank. Rows are immediately available through listTableRows; CSV and BigQuery publication is asynchronous. The API records the authenticated caller and external reference; native Docana agents attach their execution identity automatically. Requires the same table access as the UI.