Skip to main content
Rename a data table column, change its key, its currency, its options or its default, and return the table as it now stands. Pass at least one of 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, options or default is passed for a column synced from an integration, which takes them from the source.
  • key, currency_key, options or default is passed for a lookup, which takes them from the column it reads.
  • currency_key is passed for a column that is not an amount, or options for 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.
  • default does 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.
Requires write permission on data tables. Available only where the Qobra write tools beta is enabled. Every write is recorded in the audit trail as the Qobra MCP agent.
Example arguments

Parameters

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

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.