> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qobra.co/llms.txt
> Use this file to discover all available pages before exploring further.

# update_data_table_field

> Rename a data table column, change its key, currency, options or default. Options are the whole list: a label left out is removed.

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`](https://docs.qobra.co/mcp_documentation/tools/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.

```json Example arguments theme={null}
{
  "field_id": "665f1c2e8a4b3d0012a7e9f4",
  "name": "Deal stage",
  "options": ["Qualification", "Proposal", "Closed won", "Closed lost"],
  "default": "Qualification"
}
```

## Parameters

> **Body**
>
> **field\_id** `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`.
>
> **name** `string`
>
> New display name of the column. Omit to leave the current name as it is.
>
> **key** `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.
>
> **currency\_key** `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.
>
> **options** `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.
>
> **default** `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**
>
> **data\_table** `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`](https://docs.qobra.co/mcp_documentation/tools/get_data_table) for the field
> breakdown.
>
> **field** `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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.