Skip to main content
POST
Create Channel

Authorizations

Authorization
string
header
required

An Account API key, an App API key, an account access token, or an account-scoped user token. Prepend the key or token with Bearer, for example Bearer ***************************. See Auth & API keys for how to get each one.

Headers

Idempotency-Key
string

A unique key that makes this request safe to retry. See Idempotent requests.

Maximum string length: 255
Example:

"d9105228-4a08-46b1-8b91-42fed586d383"

Api-Version-Date
string

Pins the request to a dated API version.

Example:

"2026-11-07"

Body

application/json
kind
enum<string>
required

Channel kind. private is a one-to-one or group conversation, community creates a Chat experience on the account, and support opens a conversation between the account and a customer.

Available options:
private,
community,
support
Example:

"private"

account_id
string

Owning account ID, prefixed biz_. Accepted for all channel kinds. Required for community and support channels unless supplied by the credential's account context.

Pattern: \S
Example:

"biz_xxxxxxxxxxxxxx"

customer_user_id
string

Customer ID, prefixed user_. Support channels only; requires support management permission. Omit to open your own support conversation.

Pattern: \S
name
string

Channel display name, accepted for all channel kinds. Used only when a channel is created. For community channels, names the new Chat experience; defaults to the Chat app's name.

Maximum string length: 255
Pattern: \S
notifications_enabled
boolean

Whether app notifications are on for any channel kind. Webhooks fire either way. Defaults to true. Used only when a channel is created; change an existing channel with PATCH /channels/:id.

participant_user_ids
string[]

Other participant IDs, prefixed user_, excluding the sender. Required for private channels and accepted only for them. One ID creates a one-to-one conversation; more create a group.

Required array length: 1 - 49 elements
Pattern: \S
product_id
string

Product ID, prefixed prod_, to attach the new community channel to. Accepted only for community channels. Must belong to the owning account and requires the experience:attach permission on it. Omit to leave the channel unattached.

Pattern: \S
sender_user_id
string

Sender ID, prefixed user_. Private channels only. Required for account API keys; omit when authenticating as a user. Requires channel management permission on the account.

Pattern: \S

Response

existing channel returned

account_id
string | null
required
Example:

"biz_xxxxxxxxxxxxxx"

created_at
string
required

Creation time as an ISO 8601 timestamp.

Example:

"2026-01-01T12:00:00.000Z"

experience_id
string | null
required
Example:

null

icon
object | null
required

Experience logo, falling back to the app icon for community channels. Null for other channel kinds or when neither image exists.

id
string
required

Existing public channel ID, preserved across REST and chat clients.

Example:

"feed_xxxxxxxxxxxxxxxxxxxxxx"

kind
enum<string>
required
Available options:
private,
community,
support
Example:

"private"

last_message_at
string | null
required

When the channel last recorded message activity, as an ISO 8601 timestamp. Null when no message activity is recorded.

Example:

"2026-01-01T12:00:00.000Z"

last_message_id
string | null
required
Example:

"post_xxxxxxxxxxxxxxxxxxxxxx"

membership
object | null
required
moderation
object | null
required
name
string | null
required
Example:

"Renamed"

notifications_enabled
boolean
required

Whether app notifications are on. Webhooks fire either way.

Example:

true

support
object | null
required
updated_at
string
required

Last channel change as an ISO 8601 timestamp.

Example:

"2026-01-01T12:00:00.000Z"