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

# Update data source properties

> The API represents columns of a data source in the Notion app UI as data source **properties**.

To use the API to update a data source's properties, send a [PATCH request](/reference/update-a-data-source) with a `properties` body param.

## Remove a property

To remove a data source property, set the property object to null.

<CodeGroup>
  ```json removing properties by ID theme={null}
  "properties": {
    "J@cT": null,
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json removing properties by name theme={null}
  "properties": {
    "propertyToDelete": null
  }
  ```
</CodeGroup>

## Rename a property

To change the name of a data source property, indicate the new name in the `name` property object value.

<CodeGroup>
  ```json renaming properties by ID theme={null}
  "properties": {
  	"J@cT": {
  		"name": "New Property Name"
    }
  }
  ```
</CodeGroup>

<CodeGroup>
  ```json renaming properties by name theme={null}
  "properties": {
    "Old Property Name": {
      "name": "New Property Name
    }
  }
  ```
</CodeGroup>

| Property | Type     | Description                                       |
| :------- | :------- | :------------------------------------------------ |
| `name`   | `string` | The name of the property as it appears in Notion. |

## Update property type

To update the property type, the property schema object should contain the key of the type. This type contains behavior of this property. Possible values of this key are `"title"`, `"rich_text"`, `"number"`, `"select"`, `"multi_select"`, `"status"`, `"date"`, `"people"`, `"files"`, `"checkbox"`, `"url"`, `"email"`, `"phone_number"`, `"formula"`, `"relation"`, `"rollup"`, `"created_time"`, `"created_by"`, `"last_edited_time"`, `"last_edited_by"`. Within this property, the configuration is a [property schema object](/reference/property-schema-object).

<Danger>
  **Limitations**

  Note that the property type of the `title` cannot be changed.
</Danger>

### Select configuration updates

To update an existing select configuration, the property schema object optionally contains the following configuration within the `select` property:

| Property  | Type                                                                                                                                                | Description                                                                                                                                                                | Example value |
| :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ |
| `options` | optional array of [existing select options](#existing-select-options) and [select option objects](/reference/property-schema-object#select-options) | Settings for select properties. If an existing option is omitted, it will be removed from the data source property. New options will be added to the data source property. |               |

#### Existing select options

Note that the name and color of an existing option cannot be updated.

| Property | Type              | Description         | Example value                            |
| :------- | :---------------- | :------------------ | :--------------------------------------- |
| `name`   | optional `string` | Name of the option. | `"Fruit"`                                |
| `id`     | optional `string` | ID of the option.   | `"ff8e9269-9579-47f7-8f6e-83a84716863c"` |

### Multi-select configuration updates

To update an existing select configuration, the property schema object optionally contains the following configuration within the `multi_select` property:

| Property  | Type                                                                                                                                                                  | Description                                                                                                                                                                      | Example value |
| :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ |
| `options` | optional array of [existing select options](#existing-multi-select-options) and [multi-select option objects](/reference/property-schema-object#multi-select-options) | Settings for multi select properties. If an existing option is omitted, it will be removed from the data source property. New options will be added to the data source property. |               |

#### Existing multi-select options

Note that the name and color of an existing option cannot be updated.

| Property | Type              | Description                                 | Example value                            |
| :------- | :---------------- | :------------------------------------------ | :--------------------------------------- |
| `name`   | `string`          | Name of the option as it appears in Notion. | `"Fruit"`                                |
| `id`     | optional `string` | ID of the option.                           | `"ff8e9269-9579-47f7-8f6e-83a84716863c"` |

### Status configuration updates

To update an existing status configuration, the property schema object optionally contains the following configuration within the `status` property:

| Property  | Type                                                                                                                                                | Description                                                                                                                                                                         | Example value |
| :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ |
| `options` | optional array of [existing status options](#existing-status-options) and [status option objects](/reference/property-schema-object#status-options) | Settings for status properties. If an existing option is omitted, it will be removed from the data source property. New options will be added to the requested group when provided. |               |

#### Existing status options

Note that the name and color of an existing option cannot be updated. Use `group` to assign an existing or new option to one of the existing status groups.

| Property | Type                     | Description                                                                                                                                                                                                                            | Example value                            |
| :------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------- |
| `name`   | optional `string`        | Name of the option.                                                                                                                                                                                                                    | `"In progress"`                          |
| `id`     | optional `string`        | ID of the option.                                                                                                                                                                                                                      | `"ff8e9269-9579-47f7-8f6e-83a84716863c"` |
| `group`  | optional `string` (enum) | Status group to assign the option to. Possible values are `To-do`, `In progress`, and `Complete`. Existing options keep their current group when omitted. New options use `To-do` when present, or the first existing group otherwise. | `"In progress"`                          |

<Note>
  When updating status options, group membership is kept consistent: removed options are automatically pruned from groups, and omitted `group` values preserve backwards-compatible placement. Groups themselves cannot be reconfigured via the API; use the Notion UI instead.
</Note>

## Limitations

Reading computed [formula](/reference/page-property-values#formula) and [rollup](/reference/page-property-values#rollup) property values has its own limitations, such as values that are too complex to compute.
