---
title: "Update channel settings"
method: PATCH
path: "/channels/{channel_id}"
tags: ["Channels"]
---

# Update channel settings

`PATCH /channels/{channel_id}`

Modifies channel properties such as name, description, topic, nsfw flag, and slowmode. Requires management permissions in the channel.

## Path parameters

- `channel_id` string, snowflake, required

## Request body

- union
  - GuildTextChannelUpdateRequest
    - `topic` string, nullable — The channel topic (1-1024 characters)
    - `url` string, nullable — External URL for link channels
    - `parent_id` string, snowflake
    - `bitrate` integer, nullable — Voice channel bitrate in bits per second (8000-320000)
    - `user_limit` integer, nullable — Maximum users allowed in voice channel (0-99, 0 means unlimited)
    - `voice_connection_limit` integer, nullable — Maximum active voice connections allowed per user in a voice channel (1-100)
    - `permission_overwrites` object[] — Permission overwrites for roles and members
      - `id` string, snowflake, required
      - `type` 0 | 1, required — The type of overwrite (0 = role, 1 = member)
      - `allow` string, int64
      - `deny` string, int64
    - `rate_limit_per_user` integer, nullable — Slowmode delay in seconds (0-21600)
    - `nsfw` boolean, nullable — Legacy: setting true maps to nsfw_override=true; setting false maps to nsfw_override=null (inherit). Prefer nsfw_override.
    - `nsfw_override` boolean, nullable — Per-channel adult-content override (true=on, false=off, null=inherit from category then guild). Takes precedence over the legacy `nsfw` field if both are present.
    - `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
    - `icon` string, byte — Base64-encoded image data
    - `owner_id` string, snowflake
    - `nicks` ChannelNicknameOverrides — User nickname overrides (user ID to nickname mapping)
    - `rtc_region` string, nullable — Voice region ID for the voice channel (1-64 characters)
    - `type` 0, required
    - `name` string, nullable — The name of the channel
  - GuildVoiceChannelUpdateRequest
    - `topic` string, nullable — The channel topic (1-1024 characters)
    - `url` string, nullable — External URL for link channels
    - `parent_id` string, snowflake
    - `bitrate` integer, nullable — Voice channel bitrate in bits per second (8000-320000)
    - `user_limit` integer, nullable — Maximum users allowed in voice channel (0-99, 0 means unlimited)
    - `voice_connection_limit` integer, nullable — Maximum active voice connections allowed per user in a voice channel (1-100)
    - `permission_overwrites` object[] — Permission overwrites for roles and members
      - `id` string, snowflake, required
      - `type` 0 | 1, required — The type of overwrite (0 = role, 1 = member)
      - `allow` string, int64
      - `deny` string, int64
    - `rate_limit_per_user` integer, nullable — Slowmode delay in seconds (0-21600)
    - `nsfw` boolean, nullable — Legacy: setting true maps to nsfw_override=true; setting false maps to nsfw_override=null (inherit). Prefer nsfw_override.
    - `nsfw_override` boolean, nullable — Per-channel adult-content override (true=on, false=off, null=inherit from category then guild). Takes precedence over the legacy `nsfw` field if both are present.
    - `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
    - `icon` string, byte — Base64-encoded image data
    - `owner_id` string, snowflake
    - `nicks` ChannelNicknameOverrides — User nickname overrides (user ID to nickname mapping)
    - `rtc_region` string, nullable — Voice region ID for the voice channel (1-64 characters)
    - `type` 2, required
    - `name` string, nullable — The name of the channel
  - GuildCategoryChannelUpdateRequest
    - `topic` string, nullable — The channel topic (1-1024 characters)
    - `url` string, nullable — External URL for link channels
    - `parent_id` string, snowflake
    - `bitrate` integer, nullable — Voice channel bitrate in bits per second (8000-320000)
    - `user_limit` integer, nullable — Maximum users allowed in voice channel (0-99, 0 means unlimited)
    - `voice_connection_limit` integer, nullable — Maximum active voice connections allowed per user in a voice channel (1-100)
    - `permission_overwrites` object[] — Permission overwrites for roles and members
      - `id` string, snowflake, required
      - `type` 0 | 1, required — The type of overwrite (0 = role, 1 = member)
      - `allow` string, int64
      - `deny` string, int64
    - `rate_limit_per_user` integer, nullable — Slowmode delay in seconds (0-21600)
    - `nsfw` boolean, nullable — Legacy: setting true maps to nsfw_override=true; setting false maps to nsfw_override=null (inherit). Prefer nsfw_override.
    - `nsfw_override` boolean, nullable — Per-channel adult-content override (true=on, false=off, null=inherit from category then guild). Takes precedence over the legacy `nsfw` field if both are present.
    - `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
    - `icon` string, byte — Base64-encoded image data
    - `owner_id` string, snowflake
    - `nicks` ChannelNicknameOverrides — User nickname overrides (user ID to nickname mapping)
    - `rtc_region` string, nullable — Voice region ID for the voice channel (1-64 characters)
    - `type` 4, required
    - `name` string, nullable — The name of the category
  - GuildLinkChannelUpdateRequest
    - `topic` string, nullable — The channel topic (1-1024 characters)
    - `url` string, nullable — External URL for link channels
    - `parent_id` string, snowflake
    - `bitrate` integer, nullable — Voice channel bitrate in bits per second (8000-320000)
    - `user_limit` integer, nullable — Maximum users allowed in voice channel (0-99, 0 means unlimited)
    - `voice_connection_limit` integer, nullable — Maximum active voice connections allowed per user in a voice channel (1-100)
    - `permission_overwrites` object[] — Permission overwrites for roles and members
      - `id` string, snowflake, required
      - `type` 0 | 1, required — The type of overwrite (0 = role, 1 = member)
      - `allow` string, int64
      - `deny` string, int64
    - `rate_limit_per_user` integer, nullable — Slowmode delay in seconds (0-21600)
    - `nsfw` boolean, nullable — Legacy: setting true maps to nsfw_override=true; setting false maps to nsfw_override=null (inherit). Prefer nsfw_override.
    - `nsfw_override` boolean, nullable — Per-channel adult-content override (true=on, false=off, null=inherit from category then guild). Takes precedence over the legacy `nsfw` field if both are present.
    - `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
    - `icon` string, byte — Base64-encoded image data
    - `owner_id` string, snowflake
    - `nicks` ChannelNicknameOverrides — User nickname overrides (user ID to nickname mapping)
    - `rtc_region` string, nullable — Voice region ID for the voice channel (1-64 characters)
    - `type` 998, required
    - `name` string, nullable — The name of the channel
  - GroupDmChannelUpdateRequest
    - `type` 3, required
    - `name` string, nullable — The name of the group DM
    - `icon` string, byte — Base64-encoded image data
    - `owner_id` string, snowflake
    - `nicks` ChannelNicknameOverrides — User nickname overrides (user ID to nickname mapping)

## Response `200`

Success

- ChannelResponse
  - `id` string, required — The unique identifier (snowflake) for this channel
  - `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` integer, 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, required — The unique identifier for the role or user this overwrite applies to
    - `type` 0 | 1, required — The type of entity the overwrite applies to
    - `allow` string, int64, required — The bitwise value of allowed permissions
    - `deny` string, int64, required — The bitwise value of denied permissions
  - `recipients` UserPartialResponse[] — The recipients of the DM channel
    - `id` string, required — The unique identifier (snowflake) for this user
    - `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)

## 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

---

[API](https://skmtc.dev/fluxer/apis/fluxer-api.md) · [All operations](https://skmtc.dev/fluxer/apis/fluxer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fluxer/fluxer-api/revisions/d9c706133cc5/schema)
