name, key, currency_key, options or default — a
call with none of them has nothing to update. Sending the values the column
already has changes nothing, so the same call can be sent twice.
options is the column’s whole list, not an addition to it: read the
column’s current options with
get_data_table first. An option
left out is removed and its value cleared from every record that held it, as
when an option is removed in the Qobra web app. An option cannot be renamed
here — a new label is a new option, and the records holding the old one lose
that value. Removing the option the default names also takes the default off.
A new key changes how Qobra’s public API and Excel imports address the column.
The reports and the lookups reading the column follow a rename.
A column’s type and description cannot be changed after it is created.
The call is refused when:
key,optionsordefaultis passed for a column synced from an integration, which takes them from the source.key,currency_key,optionsordefaultis passed for a lookup, which takes them from the column it reads.currency_keyis passed for a column that is not an amount, oroptionsfor one that is not a picklist or a multipicklist.- the new key is already carried by another column of the table, or normalizes to nothing.
defaultdoes not match the column’s type or is not one of its options, or is an empty string on a bool column, whose default is always true or false.
Qobra MCP agent.
Example arguments
Parameters
Body
Body
string
required
Id of the column to update — the
id of one of the fields
get_data_table returns, or the one create_data_table_field just returned.
Never a name or an api_key.string
New display name of the column. Omit to leave the current name as it is.
string
New stable key of the column: the identifier the public API and an Excel
import address it by. Lowercase and underscore-separated, and unique
within the table. Omit to leave the current key as it is.
string
For an amount column, the key of the column each row’s currency code is
read from — not a currency code itself. Pass an empty string to
denominate every row in the company currency again. Omit to leave it as
it is.
string[]
For a picklist or a multipicklist column, the complete list of the labels
people choose from, in order — not only the new ones. A label already
offered is kept, a new one is added, and one left out is removed, which
clears it from every record holding it. Omit to leave the options as they
are.
string | number | boolean | string[]
The value records created from now on start with, typed to match the
column: text for string, a number for float/amount/percentage, true/false
for bool, an ISO date (
2026-03-14) for date, one label out of the
options for picklist, a list of labels for multipicklist. Existing records
keep their values. Pass an empty string to take the default off — except
on a bool column, whose default is always true or false. Omit to leave the
current default as it is.Response
Body
Body
object
The data table the column belongs to, with its full field schema as
get_data_table returns it — the updated column included. See
get_data_table for the field
breakdown.object
The column as it now stands, its active options included — which of
data_table.fields is the updated one, so it is at hand without matching
on a name.