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

# Update guild settings

`PATCH /guilds/{guild_id}`

Requires manage_guild permission. Updates guild name, description, icon, banner, and other configuration options.

## Path parameters

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

## Request body

- GuildUpdateRequest
  - `name` string — The name of the guild (1-100 characters)
  - `icon` string
  - `system_channel_id` union
    - string, snowflake
    - integer
  - `system_channel_flags` integer — System channel message flags
  - `afk_channel_id` union
    - string, snowflake
    - integer
  - `afk_timeout` integer — AFK timeout in seconds (60-3600) before moving users to the AFK channel
  - `default_message_notifications` 0 | 1 — Default notification level for new members
  - `verification_level` 0 | 1 | 2 | 3 | 4 — Required verification level for members
  - `mfa_level` 0 | 1 — Required MFA level for moderation actions
  - `nsfw_level` 0 | 3 — The NSFW level of the guild
  - `nsfw` boolean — Whether the guild is marked as adult (18+) content
  - `content_warning_level` 0 | 1 — The content warning level for a guild, category, or channel
  - `content_warning_text` string, nullable — Custom guild-wide content warning text (max 200 characters); null falls back to a localized default
  - `explicit_content_filter` 0 | 1 | 2 — Level of content filtering for explicit media
  - `banner` string
  - `splash` string
  - `embed_splash` string
  - `splash_card_alignment` 0 | 1 | 2 — Alignment of the splash card (center, left, or right)
  - `features` GuildFeatureSchema[] — Complete desired feature set for the guild. Only user-toggleable features may differ from the current set; non-toggleable features must be preserved as-is.
  - `message_history_cutoff` string, date-time, nullable — ISO8601 timestamp controlling how far back members without Read Message History can access messages. Set to null to disable historical access.
  - `password` string
  - `mfa_method` 'totp' | 'webauthn' — MFA method to use for verification
  - `mfa_code` string — MFA verification code from an authenticator app
  - `webauthn_response` WebAuthnAuthenticationResponse
    - `id` string, required
    - `rawId` string, required
    - `type` 'public-key', required
    - `authenticatorAttachment` 'cross-platform' | 'platform'
    - `clientExtensionResults` object, required
      - `appid` boolean
      - `credProps` object
        - `rk` boolean
      - `hmacCreateSecret` boolean
    - `response` object, required
      - `clientDataJSON` string, required
      - `authenticatorData` string, required
      - `signature` string, required
      - `userHandle` string
  - `webauthn_challenge` string — WebAuthn challenge string

## Response `200`

Success

- GuildResponse
  - `id` string, snowflake, required
  - `name` string, required — The name of the guild
  - `icon` string, nullable — The hash of the guild icon
  - `banner` string, nullable — The hash of the guild banner
  - `banner_width` integer
  - `banner_height` integer
  - `splash` string, nullable — The hash of the guild splash screen
  - `splash_width` integer
  - `splash_height` integer
  - `splash_card_alignment` 0 | 1 | 2, required — The alignment of the splash card
  - `embed_splash` string, nullable — The hash of the embedded invite splash
  - `embed_splash_width` integer
  - `embed_splash_height` integer
  - `vanity_url_code` string, nullable — The vanity URL code for the guild
  - `owner_id` string, snowflake, required
  - `system_channel_id` string, snowflake
  - `system_channel_flags` integer, required — System channel message flags
  - `rules_channel_id` string, snowflake
  - `afk_channel_id` string, snowflake
  - `afk_timeout` integer, required
  - `features` GuildFeatureSchema[], required — Array of guild feature flags
  - `verification_level` 0 | 1 | 2 | 3 | 4, required — Required verification level for members
  - `mfa_level` 0 | 1, required — Required MFA level for moderation actions
  - `nsfw_level` 0 | 3, required — The NSFW level of the guild
  - `nsfw` boolean, required — Whether the guild is marked as adult (18+) content
  - `content_warning_level` 0 | 1, required — The content warning level for a guild, category, or channel
  - `content_warning_text` string, nullable — Custom guild-wide content warning text; null falls back to a localized default
  - `explicit_content_filter` 0 | 1 | 2, required — Level of content filtering for explicit media
  - `default_message_notifications` 0 | 1, required — Default notification level for new members
  - `disabled_operations` integer, required — Bitfield of disabled operations in the guild
  - `message_history_cutoff` string, date-time, nullable — ISO8601 timestamp controlling how far back members without Read Message History can access messages. When null, no historical access is allowed.
  - `permissions` string, int64 — Permission bitfield as string
  - `roles` GuildRoleResponse[] — Roles in the guild from gateway state
    - `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
  - `emojis` GuildEmojiResponse[] — Emojis in the guild from gateway state
    - `id` string, snowflake, required
    - `name` string, required — The name of the emoji
    - `animated` boolean, required — Whether this emoji is animated
    - `nsfw` boolean, required — Deprecated; always false. Retained for compatibility with older clients
  - `stickers` GuildStickerResponse[] — Stickers in the guild from gateway state
    - `id` string, snowflake, required
    - `name` string, required — The name of the sticker
    - `description` string, required — The description of the sticker
    - `tags` string[], required — Autocomplete/suggestion tags for the sticker
    - `animated` boolean, required — Whether this sticker is animated
    - `nsfw` boolean, required — Deprecated; always false. Retained for compatibility with older clients
  - `channels` ChannelResponse[] — Channels visible to the requesting user from gateway state
    - `id` string, snowflake, required
    - `guild_id` string, snowflake
    - `name` string — The name of the channel
    - `topic` string, nullable — The topic of the channel
    - `url` string, uri, nullable — The URL associated with the channel
    - `icon` string, nullable — The icon hash of the channel (for group DMs)
    - `owner_id` string, snowflake
    - `type` 0 | 1 | 2 | 3 | 4 | 998 | 999, required — The type of the channel
    - `position` integer
    - `parent_id` string, snowflake
    - `bitrate` integer
    - `user_limit` integer
    - `voice_connection_limit` integer
    - `rtc_region` string, nullable — The voice region ID for the voice channel
    - `last_message_id` string, snowflake
    - `last_pin_timestamp` string, date-time, nullable — The ISO 8601 timestamp of when the last pinned message was pinned
    - `permission_overwrites` ChannelOverwriteResponse[] — The permission overwrites for this channel
      - `id` string, snowflake, required
      - `type` 0 | 1, required — The type of entity the overwrite applies to
      - `allow` string, int64, required — Permission bitfield as string
      - `deny` string, int64, required — Permission bitfield as string
    - `recipients` UserPartialResponse[] — The recipients of the DM channel
      - `id` string, snowflake, required
      - `username` string, required — The username of the user, not unique across the platform
      - `discriminator` string, required — The four-digit discriminator tag of the user
      - `global_name` string, nullable, required — The display name of the user, if set
      - `avatar` string, nullable, required — The hash of the user avatar image
      - `avatar_color` integer, required
      - `bot` boolean — Whether the user is a bot account
      - `system` boolean — Whether the user is an official system user
      - `flags` integer, required — The public flags on the user account
      - `mention_flags` 0 | 1 | 2 — Reply mention preference
    - `nsfw` boolean — Whether the channel is marked as NSFW (effective value, walking channel → category → guild)
    - `nsfw_override` boolean, nullable — Per-channel adult-content override; null means inherit from parent category and then guild. Categories use this same field as their own override.
    - `content_warning_level` 0 | 1 — The content warning level for a guild, category, or channel
    - `content_warning_text` string, nullable — Custom channel content warning text (max 200 characters); null inherits from parent or guild
    - `rate_limit_per_user` integer
    - `nicks` object — Custom nicknames for users in this channel (for group DMs)
  - `member_count` integer
  - `online_count` integer
  - `approximate_member_count` integer
  - `approximate_presence_count` integer

## 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` — 13 breaking, 1 warning, 15 info
  - the response property `banner` became nullable for the status `200`
  - the response property `channels/items/icon` became nullable for the status `200`
  - the response property `channels/items/nsfw_override` became nullable for the status `200`
  - the response property `channels/items/recipients/items/avatar` became nullable for the status `200`
  - …25 more
- **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
- …earlier changes not shown

[Full history](https://skmtc.dev/fluxer/apis/fluxer-api/changes/guilds/:guild_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)
