---
title: "Update guild role"
method: PATCH
path: "/guilds/{guild_id}/roles/{role_id}"
tags: ["Guilds"]
---

# Update guild role

`PATCH /guilds/{guild_id}/roles/{role_id}`

Update guild role. Requires manage_roles permission. Modifies role name, permissions, color, and other settings.

## Path parameters

- `guild_id` union, required
  - string, snowflake
  - integer
- `role_id` union, required
  - string, snowflake
  - integer

## Request body

- GuildRoleUpdateRequest
  - `name` string — The name of the role (1-100 characters)
  - `color` integer
  - `permissions` union
    - string, int64
    - integer
  - `hoist` boolean — Whether the role should be displayed separately in the member list
  - `hoist_position` integer, nullable — The position of the role in the hoisted member list
  - `mentionable` boolean — Whether the role can be mentioned by anyone

## Response `200`

Success

- GuildRoleResponse
  - `id` string, snowflake, required
  - `name` string, required — The name of the role
  - `color` integer, required
  - `position` integer, required
  - `hoist_position` integer
  - `permissions` string, int64, required — Permission bitfield as string
  - `hoist` boolean, required — Whether this role is displayed separately in the member list
  - `mentionable` boolean, required — Whether this role can be mentioned by anyone
  - `unicode_emoji` string, nullable — The unicode emoji for this role

## Other responses

- `400` — Bad Request - The request was malformed or contained invalid data
- `401` — Unauthorized - Authentication is required or the token is invalid
- `403` — Forbidden - You do not have permission to perform this action
- `429` — Too Many Requests - You are being rate limited
- `500` — Internal Server Error - An unexpected error occurred

## Changes

> 14 revisions in range; 1 not diffed.

- **2026-09-18** `dd0ad4ea1c88` — 1 breaking, 1 info
  - the response property `unicode_emoji` became nullable for the status `200`
  - response property `unicode_emoji` list-of-types was narrowed by removing types `null` from media type `application/json` of response `200`
- **2026-09-06** `a52a2cf49d9b` — 32 warning
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `400`
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `401`
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `403`
  - added the new `IP_BAN_DECLINED` enum value to the `code` response property for the response status `500`
  - …28 more
  - …this revision’s changelog is incomplete
- **2026-09-05** `4dbb738a3e22` — 4 info
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `400`
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `401`
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `403`
  - removed the `NSFW_EMOJI_STICKER_BLOCKED` enum value from the `code` response property for the response status `500`
- …earlier changes not shown

[Full history](https://skmtc.dev/fluxer/apis/fluxer-api/changes/guilds/:guild_id/roles/:role_id/patch.md)

---

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