---
title: "Create a group channel"
method: POST
path: "/v3/group_channels"
tags: ["Group channel"]
---

# Create a group channel

`POST /v3/group_channels`

## Request

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

## Create a group channel

You can create a group channel for 1-to-1 and 1-to-N conversations. By default, group channels are used for conversations between up to 100 members. This number can stretch up to tens of thousands in Supergroup channels. Group channels can either be private and invite only, or public. They support typing indicators, unread count and read receipts, allowing for an interactive chat experience. A user can join up to 2000 group channels, and higher numbers would negatively impact the performance for the end user. The Chat history is turned off by default and its settings can be changed on Sendbird Dashboard by going to Settings > Chat > Channels > Group channels > Chat history. To learn more about group channels, see Channel Overview.

> If you are seeing the error message Maximum "channel join" count reached., then consider deleting channels that are no longer used. For situations where an agent connects with many customers such as support, delivery logistics or sales, we recommend using Sendbird Desk.

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

## Headers

- `api-token` string

## Request body

- CreateAGroupChannelRequest
  - `access_code` string, nullable
  - `block_sdk_user_channel_join` boolean, nullable
  - `channel_url` string
  - `cover_file` string, binary: Uploads a file for the channel cover image.
  - `cover_url` string
  - `custom_type` string
  - `data` string
  - `hidden_status` object: Specifies one or more key-value pair items which set the channel's hidden status for each user. The key should be a user_id and the value should be their hidden status. Acceptable values are limited to the following:<br />- unhidden (default): the channel is included in when retrieving a list of group channels.<br />- hidden_allow_auto_unhide: the channel automatically gets unhidden when receiving a new message.<br />- hidden_prevent_auto_unhide: the channel keeps hidden though receiving a new message.
  - `invitation_status` object: Specifies one or more key-value pair items which set the invitation status of each user invited to the channel. The key should be a user_id and the value should be their joining status. Acceptable values are joined, invited_by_friend, and invited_by_non_friend. (Default: joined)
  - `inviter_id` string
  - `is_distinct` boolean
  - `is_ephemeral` boolean
  - `is_public` boolean
  - `is_super` boolean
  - `name` string
  - `operator_ids` string[]
  - `strict` boolean
  - `user_ids` string[]
  - `users` SendbirdUser[], required
    - `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

## Response `200`

Successful response

- CreateAGroupChannelResponse
  - `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 breaking, 1 warning, 7 info
  - the request property `users/items/` became not nullable
  - removed the request property `users/items/session_tokens`
  - the request property `access_code` became nullable
  - the request property `block_sdk_user_channel_join` became nullable
  - …5 more
- **2025-07-27** `7a85bad03e90`: 4 breaking, 5 warning, 6 info
  - the request property `users` became required
  - the request property `users/items/user_id` became required
  - the `users/items/created_at` request property format changed from no format to `int64`
  - the `users/items/session_tokens/items/` request property type changed from `object` to `string`
  - …11 more
- **2024-09-24** `375ce8bc9c64`: 1 info
  - the request property `users/items/` became nullable
- **2024-04-12** `0512c4a77c37`: 1 breaking
  - the `users/items/last_seen_at` request property format changed from no format to `int64`
- **2023-11-10** `135d8b0705d4`: 1 info
  - the `header` request parameter `Api-Token` became optional

[Operation history](https://skmtc.dev/sendbird/apis/sendbird-platform-sdk/changes/v3/group_channels/post.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)
