---
title: "Update a group channel"
method: PUT
path: "/v3/group_channels/{channel_url}"
tags: ["Group channel"]
---

# Update a group channel

`PUT /v3/group_channels/{channel_url}`

## Request

- Base URL: `https://api-APP_ID.sendbird.com`
- URL: `https://api-APP_ID.sendbird.com/v3/group_channels/{channel_url}`
- Auth: none declared

## Update a group channel

You can update information about a group channel or a Supergroup channel using this API. You can't make any changes to the members of a channel with this API. To change members, see [invite as members](https://sendbird.com/docs/chat/platform-api/v3/channel/inviting-a-user/invite-as-members-channel) instead. See [this page](https://sendbird.com/docs/chat/platform-api/v3/channel/channel-overview#2-channel-types-3-open-channel-vs-group-channel-vs-supergroup-channel) to learn more about channel types.

https://sendbird.com/docs/chat/platform-api/v3/channel/managing-a-channel/update-a-group-channel#1-update-a-group-channel

## Path parameters

- `channel_url` string, required

## Headers

- `api-token` string

## Request body

- UpdateAGroupChannelRequest
  - `access_code` string, nullable
  - `cover_file` string, binary
  - `cover_url` string
  - `custom_type` string
  - `data` string
  - `is_distinct` boolean
  - `is_public` boolean
  - `is_super` boolean
  - `name` string
  - `operator_ids` string[]

## Response `200`

Successful response

- UpdateAGroupChannelResponse
  - `channel` SendbirdGroupChannelDetailChannel
    - `channel_url` string
    - `cover_url` string
    - `created_at` integer
    - `custom_type` string
    - `data` string
    - `max_length_message` integer
    - `member_count` integer
    - `name` string
  - `channel_url` string, required
  - `cover_url` string
  - `created_at` integer
  - `created_by` SendbirdBasicUserInfo
    - `require_auth_for_profile_image` boolean
    - `is_active` boolean
    - `is_blocked_by_me` boolean
    - `role` '' | 'none' | 'operator'
    - `nickname` string, nullable
    - `user_id` string, required
    - `profile_url` string
    - `metadata` object, nullable
  - `custom_type` string
  - `data` string
  - `delivery_receipt` object
  - `disappearing_message` SendbirdDisappearingMessage
    - `message_survival_seconds` integer
    - `is_triggered_by_message_read` boolean
  - `freeze` boolean
  - `has_ai_bot` boolean
  - `has_bot` boolean
  - `id` integer
  - `ignore_profanity_filter` boolean
  - `is_access_code_required` boolean
  - `is_broadcast` boolean
  - `is_discoverable` boolean
  - `is_distinct` boolean
  - `is_ephemeral` boolean
  - `is_public` boolean
  - `is_super` boolean
  - `joined_member_count` integer
  - `last_message` SendbirdMessageResponse
    - `require_auth` boolean
    - `message_survival_seconds` integer
    - `custom_type` string
    - `mentioned_users` SendbirdBasicUserInfo[]
      - `require_auth_for_profile_image` boolean
      - `is_active` boolean
      - `is_blocked_by_me` boolean
      - `role` '' | 'none' | 'operator'
      - `nickname` string, nullable
      - `user_id` string, required
      - `profile_url` string
      - `metadata` object, nullable
    - `translations` object
    - `updated_at` integer
    - `is_op_msg` boolean
    - `reactions` SendbirdReaction[]
      - `key` string
      - `updated_at` integer
      - `user_ids` string[]
    - `is_removed` boolean
    - `user` SendbirdBasicUserInfo
      - `require_auth_for_profile_image` boolean
      - `is_active` boolean
      - `is_blocked_by_me` boolean
      - `role` '' | 'none' | 'operator'
      - `nickname` string, nullable
      - `user_id` string, required
      - `profile_url` string
      - `metadata` object, nullable
    - `file` object
    - `files` SendbirdFile[]
      - `url` string
      - `file_name` string
      - `file_size` integer
      - `file_type` string
      - `thumbnails` SendbirdThumbnail[]
        - `height` integer
        - `plain_url` string
        - `real_height` integer
        - `real_width` integer
        - `url` string
        - `width` integer
      - `require_auth` boolean
    - `message` string
    - `data` string
    - `message_retention_hour` integer
    - `silent` boolean
    - `type` string
    - `created_at` integer
    - `channel_type` string
    - `req_id` string
    - `mention_type` string
    - `channel_url` string
    - `message_id` integer
    - `sorted_metaarray` SendbirdSortedMetaarrayInner[]
      - `key` string
      - `value` string[]
    - `thread_info` object
    - `parent_message_id` integer
    - `parent_message_info` SendbirdParentMessageInfo
      - `custom_type` string
      - `message` string
      - `type` string
      - `ts` integer
      - `user` SendbirdUser: User
        - `access_token` string
        - `created_at` integer
        - `discovery_keys` string[], nullable
        - `has_ever_logged_in` boolean
        - `is_active` boolean
        - `is_hide_me_from_friends` boolean
        - `is_online` boolean
        - `is_shadow_blocked` boolean
        - `last_seen_at` integer
        - `locale` string
        - `metadata` object, nullable
        - `nickname` string, nullable
        - `preferred_languages` string[], nullable
        - `profile_url` string
        - `require_auth_for_profile_image` boolean
        - `user_id` string, required
        - `state` '' | 'invited' | 'joined', nullable
        - `unread_channel_count` integer
        - `unread_message_count` integer
        - `phone_number` string
        - `is_created` boolean
      - `file` SendbirdFile
        - `url` string
        - `file_name` string
        - `file_size` integer
        - `file_type` string
        - `thumbnails` SendbirdThumbnail[]
          - `height` integer
          - `plain_url` string
          - `real_height` integer
          - `real_width` integer
          - `url` string
          - `width` integer
        - `require_auth` boolean
      - `files` SendbirdFile[]
        - `url` string
        - `file_name` string
        - `file_size` integer
        - `file_type` string
        - `thumbnails` SendbirdThumbnail[]
          - `height` integer
          - `plain_url` string
          - `real_height` integer
          - `real_width` integer
          - `url` string
          - `width` integer
        - `require_auth` boolean
    - `is_reply_to_channel` boolean
    - `message_events` SendbirdMessageResponseMessageEvents, nullable
      - `send_push_notification` string
      - `update_unread_count` boolean
      - `update_mention_count` boolean
      - `update_last_message` boolean
    - `extended_message_payload` SendbirdMessageResponseExtendedMessagePayload: Specifies the extended message payload which is used to send a message with a custom message type.
      - `custom_view` object: JSON format you want to embed in message, eq : {"title": "title", "image": "https://link.to/image.jpg"}
      - `suggested_replies` string[]: Specifies an array of suggested replies to be sent with the message.
  - `max_length_message` integer
  - `member_count` integer
  - `members` SendbirdMember[]
    - `delivered_ts` integer
    - `do_not_disturb` boolean
    - `friend_discovery_key` string[], nullable
    - `friend_name` string, nullable
    - `is_active` boolean
    - `is_blocked_by_me` boolean
    - `is_blocking_me` boolean
    - `is_muted` boolean
    - `is_online` boolean
    - `last_seen_at` integer
    - `metadata` object, nullable
    - `muted_description` string
    - `muted_end_at` integer
    - `nickname` string, nullable
    - `push_enabled` boolean
    - `push_trigger_option` 'all' | 'mention_only' | 'off'
    - `profile_url` string
    - `require_auth_for_profile_image` boolean
    - `read_ts` integer
    - `role` '' | 'none' | 'operator', nullable
    - `state` '' | 'invited' | 'joined', nullable
    - `user_id` string, required
  - `message_survival_seconds` integer
  - `name` string
  - `operators` SendbirdUser[]
    - `access_token` string
    - `created_at` integer
    - `discovery_keys` string[], nullable
    - `has_ever_logged_in` boolean
    - `is_active` boolean
    - `is_hide_me_from_friends` boolean
    - `is_online` boolean
    - `is_shadow_blocked` boolean
    - `last_seen_at` integer
    - `locale` string
    - `metadata` object, nullable
    - `nickname` string, nullable
    - `preferred_languages` string[], nullable
    - `profile_url` string
    - `require_auth_for_profile_image` boolean
    - `user_id` string, required
    - `state` '' | 'invited' | 'joined', nullable
    - `unread_channel_count` integer
    - `unread_message_count` integer
    - `phone_number` string
    - `is_created` boolean
  - `read_receipt` object
  - `sms_fallback` SendbirdSmsFallback
    - `wait_seconds` integer
    - `exclude_user_ids` string[]
  - `unread_mention_count` integer
  - `unread_message_count` integer

## Changes

- **2025-10-17** `b05d4e3c6329`: 1 info
  - the request property `access_code` became nullable
- **2025-07-27** `7a85bad03e90`: 2 warning, 3 info
  - deleted the `header` request parameter `Api-Token`
  - removed the request property `channel_url`
  - api operation id `gcUpdateChannelByUrl` removed and replaced with `updateAGroupChannel`
  - added the new optional `header` request parameter `api-token`
  - …1 more
- **2024-09-24** `375ce8bc9c64`: 9 info
  - the request property `access_code` became optional
  - the request property `cover_file` became optional
  - the request property `cover_url` became optional
  - the request property `custom_type` became optional
  - …5 more
- **2023-11-10** `135d8b0705d4`: 1 info
  - the `header` request parameter `Api-Token` became optional
- **2022-07-27** `0b6cf41bc62a`: 1 breaking
  - the `operator_ids/items/` request property type changed from `integer` to `string`

[Operation history](https://skmtc.dev/sendbird/apis/sendbird-platform-sdk/changes/v3/group_channels/:channel_url/put.md)

---

[API](https://skmtc.dev/sendbird/apis/sendbird-platform-sdk.md) - [All operations](https://skmtc.dev/sendbird/apis/sendbird-platform-sdk/llms.txt) - [OpenAPI document](https://skmtc.dev/sendbird/apis/sendbird-platform-sdk/revisions/9e53a5288df0?raw)
