Skip to main content
POST
Estimate the credit cost of a column run

Authorizations

X-API-Key
string
header
required

Path Parameters

table_id
string<uuid>
required
column_id
string<uuid>
required

Body

application/json

Scope for an on-demand recompute of one formula column.

scope
enum<string>
required

Row scope: all | errored | unfilled | first_n | cell.

Available options:
all,
errored,
unfilled,
first_n,
cell
limit
integer | null

Row count for scope=first_n (default 10).

Required range: 1 <= x <= 10000
offset
integer | null

Starting-row offset in display order for scope=first_n; omit to start at the first row.

Required range: 0 <= x <= 1000000
record_id
string<uuid> | null

The target row for scope=cell; see also record_ids.

record_ids
string<uuid>[] | null

The target rows for scope=cell: a swept selection re-runs in one request rather than one per cell. Wins over record_id when both are sent; scope=cell requires at least one of the two.

Maximum array length: 1000
row_status
enum<string> | null

The grid's active smart view (errored or fully computed rows). ANDed with where.

Available options:
errored,
fully_computed
sorts
TableRowSortSchema · object[] | null

The grid's active sort, so first_n means the first N rows the person can SEE rather than the first N in stored order. Ignored by every other scope.

Maximum array length: 8
where
TableRowsWhereSchema · object | null

The grid's active filter, in the rows query's own vocabulary. Narrows every scope but cell to the matching rows: all runs every matching row (as an explicit list, so at most view_scope_max_rows may match), errored / unfilled keep only matching rows, first_n counts within them. Omit for the whole table.

Response

Successful Response

Estimated credit cost of an on-demand column run, before running it.

Free runs (formula/manual columns) estimate to zero and are always sufficient, even at a zero balance. The figure is an estimate: row counts and cell freshness can shift between estimating and running.

balance_sufficient
boolean
required

Whether the organization's available credits cover the estimate.

cells_total
integer
required

All cells the run would compute, charged or not.

estimated_credits
number
required

The most the run can cost, in credits: every row of every paid column charged its full per-row price. What the credit hold and the confirmation gate reason about.

is_estimate
boolean
required

Always true: freshness and row counts can shift by run time.

unit_price
number
required

Blended credits per charged cell (total estimate / units); 0 for free runs.

units
integer
required

Cells that would incur a charge (0 for free runs).

columns
ColumnRunEstimateSchema · object[]

Every enrichment or export column the run would work on, in the order it runs: the column asked for first, then the columns that read it. Each with the most its part can cost and what it usually costs.

expected_credits
number
default:0

What a run like this usually costs, in credits: a column charged by use (an AI column) at the share of its per-row maximum the same kind of cell has actually been charged (a typical share while there is no history yet), every other column at its price. Quote both: up to estimated_credits, usually about expected_credits. Equal to estimated_credits for a flat price (no column charged by use, as in a run of enrichments): then quote that one figure, without up to.

export_writes
ExportWriteEstimateSchema · object[]

Export columns this run would fire. Present so the confirmation can name the destination, the object and the action instead of only a row count. Empty for a run that writes nothing outside this table.

requires_confirmation
boolean
default:false

True when the estimate crosses the confirmation threshold: ask before spending instead of running on first click.

rows_held_back
integer
default:0

Rows in scope the column's run condition would hold back. Already subtracted from rows_in_scope.

rows_in_scope
integer
default:0

Rows the run would cover. This is what a scope choice is about, and what the credit estimate is derived from; cells_total also counts the dependent columns the run would recompute.

scope_too_large
boolean
default:false

True when the filtered view names more rows than a run may be scoped to (view_scope_max_rows). rows_in_scope still carries the matching count; the run itself would be refused with scope_too_large. Narrow the filter, or run the whole table.