---
title: "Update ABAC attribute definition"
slug: "update-abac-attribute-definition"
updated: 2026-07-26T17:02:04Z
published: 2026-07-26T17:02:04Z
canonical: "developer.rocket.chat/update-abac-attribute-definition"
---

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

# Update ABAC attribute definition

Put/api/v1/abac/attributes/:_id![Defense](https://raw.githubusercontent.com/RocketChat/Rocket.Chat-Open-API/main/images/Defense.svg)

- Updates an existing ABAC attribute definition.
- Modifies the attribute identified by `_id`, allowing you to rename its key, change its list of allowed values, or both, subject to in-use and validation checks.
- Requires the ABAC license, the `abac-management` and `manage-abac-admin-room-attributes` permissions, and the global setting `ABAC_Enabled` to be turned on.

### Changelog

| Version | Description |
| --- | --- |
| 8.0.0 | Added |
| 8.5.0 | Added the `manage-abac-admin-room-attributes` granular permission requirement. |

Header parametersX-Auth-TokenstringRequired

The `authToken` of the authenticated user.

ExampleRScctEHSmLGZGywfIhWyRpyofhKOiMoUIpimhvheU3f
X-User-IdstringRequired

The `userId` of the authenticated user.

ExamplerbAXPnMktTFbNpwtJ

Body parameters<select class='api-response-data' aria-label='Media type'><option value='c28673af-b1fa-429e-80d3-0eef1e5bf389'>application/json</option>
</select>object  keystring    Required
values Array of string   Requiredstring    

Responses200

OK

<select class='api-response-data' aria-label='Media type'><option value='14789f36-2287-4f49-b088-c8681b278a2f'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='6fb078fc-9544-49e7-99ca-5d2a76a4988d'>Success</option>
</select>Success

```json
{
  "success": true
}
```

object  successboolean    

400

Bad Request

<select class='api-response-data' aria-label='Media type'><option value='9067a9d7-24d4-4fbf-b8dd-64548b9710e9'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='888ba31d-1bfc-418c-b74e-d40dc91c5a9e'>ABAC disabled</option>
<option value='98dca0c0-1276-44f3-90b8-938b2f24b1a2'>Attribute not found</option>
<option value='79992312-2607-45c1-90e4-a93a12e0fd19'>Attribute in use (cannot rename key / cannot remove use...</option>
<option value='8500b19e-d018-465a-8b8b-b44253746b89'>Invalid values (e.g. empty values)</option>
<option value='7d1c19f9-22c4-4d24-9c66-04b139863707'>Duplicate attribute key (renaming to an existing key)</option>
</select>ABAC disabled

```json
{
  "success": false,
  "error": "error-abac-not-enabled"
}
```

Attribute not found

```json
{
  "success": false,
  "error": "error-attribute-not-found"
}
```

Attribute in use (cannot rename key / cannot remove used values)

```json
{
  "success": false,
  "error": "error-attribute-in-use"
}
```

Invalid values (e.g. empty values)

```json
{
  "success": false,
  "error": "error-invalid-attribute-values"
}
```

Duplicate attribute key (renaming to an existing key)

```json
{
  "success": false,
  "error": "error-duplicate-attribute-key"
}
```

object  successboolean    
errorstring    

401

Unauthorized

<select class='api-response-data' aria-label='Media type'><option value='d650b3f3-30a2-4872-a483-604b40997fe7'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='c6e246de-8cd8-46c8-950a-f0738d24bde5'>Unauthorized login attempt</option>
</select>Unauthorized login attempt

```json
{
  "success": false,
  "error": "error-unauthorized"
}
```

object  successboolean    
errorstring    

403

Forbidden

<select class='api-response-data' aria-label='Media type'><option value='6b6d659b-d276-45fb-964d-6f528ffa8cb7'>application/json</option>
</select><select class='select-example' aria-label='Media type'><option value='508f3e71-b9c9-4b64-af81-b76ba8842ff2'>Missing required ABAC permissions</option>
</select>Missing required ABAC permissions

```json
{
  "success": false,
  "error": "error-not-authorized"
}
```

object  successboolean    
errorstring
