Create a community channel
Create a channel inside one of the creator's community groups — get a group id from the create-channel-group endpoint, or an existing one from the list-channel-groups endpoint. A channel belongs to exactly one group through this API.
mangoes/badges decide who can actually access the channel; visibility decides who can even see that it exists — these are independent settings. At least one of mangoes or badges must be given — there is no "open to everyone" option at creation, matching the creator dashboard's own rule.
communityProfilePicture accepts either a fresh image URL (type image) or a plain emoji character (type emoji) — a fresh image URL doesn't need to already be a previously-uploaded asset; it's registered automatically.
Fails with a 400 if name is missing or empty, if group is missing, if features is missing or empty, if both mangoes and badges are empty, if any id appears in both mangoes and excludeMangoes (or both badges and excludeBadges), or if communityProfilePicture is given without communityProfilePictureType. Fails with a 400 if the Community feature is not enabled for this creator. Fails with a 404 if group, or any mango/badge id in mangoes/badges/excludeMangoes/excludeBadges, does not belong to this creator.
Authorization
bearer In: header
Header Parameters
Host name of the dashboard, ex: mydomain.tagmango.com
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api-prod-new.tagmango.com/api/v1/external/community/channel-groups/channels" \ -H "x-whitelabel-host: string" \ -H "Content-Type: application/json" \ -d '{ "name": "General", "group": "61e97c146cf2b4d8c68f3a40", "visibility": "public", "features": [ "feed" ] }'{
"creator": "61e97c146cf2b4d8c68f3a41",
"visibility": "public",
"communityProfilePicture": "https://example.com/image.jpg",
"communityProfilePictureType": "image",
"featureSettings": {
"feed": {
"allowMemberPosts": true
},
"messages": {
"allowEveryoneToMessage": true,
"allowPeerToPeerMessaging": true,
"sharingControlSettings": {
"allowFileSharing": true,
"allowPhotoSharing": true,
"allowVideoSharing": true,
"allowAudioSharing": true,
"allowPollSharing": true
}
}
},
"chatRoom": "61e97c146cf2b4d8c68f3a44",
"_id": "61e97c146cf2b4d8c68f3a40",
"name": "General",
"description": "General discussion for all members",
"features": [
"feed"
],
"archived": false,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"mangoes": [],
"badges": [],
"excludeMangoes": [
"string"
],
"excludeBadges": [
"string"
],
"groups": [
"61e97c146cf2b4d8c68f3a40"
]
}{
"code": 400,
"type": "Bad Request",
"statusMessage": "BAD_REQUEST",
"success": false,
"message": "Invalid request",
"result": "Invalid request"
}{
"code": 401,
"type": "Unauthorized",
"statusMessage": "UNAUTHORIZED",
"message": "Invalid token",
"result": "Invalid token",
"success": false
}{
"code": 403,
"type": "Forbidden",
"statusMessage": "FORBIDDEN",
"errorCode": "WORKSHOP_MANGO_FORBIDDEN",
"message": "You can not access this api with a TagMango account, only available for whitelabel hosts",
"result": "You can not access this api with a TagMango account, only available for whitelabel hosts",
"success": false
}{
"code": 429,
"type": "Too Many Requests",
"statusMessage": "TOO_MANY_REQUESTS",
"message": "Request limit exceeded. try after 10 seconds",
"result": "Request limit exceeded. try after 10 seconds",
"success": false
}