---
title: "Update Role"
method: PUT
path: "/admin/roles/{role_id}"
tags: ["Admin"]
---

# Update Role

`PUT /admin/roles/{role_id}`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/admin/roles/{role_id}`
- Auth: none declared

Replace a custom role's name, description and permissions.

The change reaches everyone on the role at their next request. Nobody can
edit a role that holds more than they do, or make it hold more.

## Path parameters

- `role_id` string, uuid, required

## Request body

- UpdateRoleRequest: Replace a custom role's name, description and permissions
  - `name` string, required
  - `description` string, nullable
  - `permissions` Permission[]

## Response `200`

Successful Response

- RoleInfo: A built-in or custom role
  - `id` string, required: 'admin' or 'staff' for a built-in role, otherwise the custom role's id
  - `name` string, required
  - `description` string, nullable
  - `built_in` boolean, required
  - `permissions` Permission[], required: Everything the role holds
  - `user_count` integer, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-29** `ceeae5525826`: 1 breaking, 1 info
  - removed the enum value `calls.feedback` of the request property `permissions/items/`
  - removed the `calls.feedback` enum value from the `permissions/items/` response property for the response status `200`
- **2026-10-28** `6cf2cbf46fe1`: 1 breaking, 4 warning, 1 info
  - removed the required property `base_role` from the response with the `200` status
  - removed the request property `granted`
  - removed the request property `revoked`
  - removed the optional property `granted` from the response with the `200` status
  - …2 more
- **2026-10-28** `05472eabc78d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/admin/roles/:role_id/put.md)

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
