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

# Update a worker

> Update a worker’s number, entity, or workspace attributes.

<ParamField path="id" type="string" required>
  The ID of a worker in your workspace.
</ParamField>

Send the fields to change as a flat JSON object. Omitted fields retain their
values. The supported native fields are `number` and `entity`; other native worker
facts continue to use their existing domain operations.

<ParamField body="number" type="string | null">
  Company-assigned worker number.
</ParamField>

<ParamField body="entity" type="string | null">
  Identifier of the entity in this workspace to assign to the worker. Entity
  changes retain the existing payroll-provider assignment behavior.
</ParamField>

Workspace attributes use their current field keys at the top level. String,
date (`YYYY-MM-DD`), and select fields are supported. Select values use option
keys, such as `medium`, rather than labels. Send `null` to clear a workspace
attribute. Renaming a field key preserves its stored values; integrations must
use the new key after the rename.

For example, if your workspace defines a select field with key `tshirt_size`:

```json theme={null}
{
  "tshirt_size": "medium"
}
```

The endpoint returns the updated [worker](/reference/workers/object), including
visible workspace attributes. Invalid, archived, or unwritable fields reject
the entire update with a `record_invalid` error and field-specific details. Worker
access and write permissions apply to workspace attributes too.

Workspace attributes are optional. A Worker object supports up to 100 active
workspace attributes, a select field supports up to 100 options, and a string
value supports up to 1,024 characters.
