TagMangoTagMango Docs
Community

List community channel groups

GET
/api/v1/external/community/channel-groups

List the creator's community channel groups, each with its non-archived channels in the creator-configured display order — the same structure and ordering as the dashboard. Each channel's mangoes, badges, excludeMangoes, and excludeBadges are resolved to canonical embedded summaries. A channel that belongs to no group is not returned.

visibility: public channels are visible to every community member, but only actual members can access their content (shown as locked otherwise) — EXCEPT a member specifically excluded via an entry in excludeMangoes or excludeBadges, for whom the channel is dropped from the listing entirely, not merely access-restricted. members_only channels are visible and accessible only to members. hidden channels are visible to no one.

Omit userId to get every group and every non-archived channel in the community, regardless of visibility — the full creator/admin view.

Pass userId to scope the result to one community member, then use accessFilter to choose between everything that member can see (including locked public channels, minus any they are excluded from as above) and only what they can actually open. hidden channels are never returned for a scoped userId.

Fails with a 400 if the Community feature is not enabled for this creator.

AuthorizationBearer <token>

In: header

Query Parameters

userId?string

Id of a specific community member (fan). When provided, the result is scoped to that member — see accessFilter for exactly which groups/channels come back. When omitted, every group and non-archived channel in the community is returned, regardless of visibility.

accessFilter?string

Only meaningful together with userId; ignored otherwise. all (default): every channel that member can see — including public channels they aren't a member of yet (shown here, but locked to that member outside this API) — except a public channel they are specifically excluded from via excludeMangoes/excludeBadges, which is dropped from the result entirely, not just access-restricted. accessible_only: only channels that member can actually open — public or members_only channels they already have real membership in.

Value in"all" | "accessible_only"

Header Parameters

x-whitelabel-host*string

Host name of the dashboard, ex: mydomain.tagmango.com

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api-prod-new.tagmango.com/api/v1/external/community/channel-groups" \  -H "x-whitelabel-host: string"
[
  {
    "_id": "6659ca9e5f2acb7abfdcd8fd",
    "name": "Get started",
    "hideFromNonChannelMember": true,
    "rank": 1,
    "createdAt": "string",
    "updatedAt": "string",
    "channels": [
      {
        "_id": "61e97c146cf2b4d8c68f3a40",
        "name": "My Awesome Channel",
        "description": "This channel is about...",
        "visibility": "public",
        "features": [
          "feed",
          "messages"
        ],
        "communityProfilePicture": "https://example.com/channel.png",
        "communityProfilePictureType": "image",
        "createdAt": "2026-09-08T08:41:39.740Z",
        "featureSettings": {
          "feed": {
            "allowMemberPosts": true
          },
          "messages": {
            "allowEveryoneToMessage": true,
            "allowPeerToPeerMessaging": true,
            "sharingControlSettings": {
              "allowFileSharing": true,
              "allowPhotoSharing": true,
              "allowVideoSharing": true,
              "allowAudioSharing": true,
              "allowPollSharing": true
            }
          }
        },
        "updatedAt": "2026-09-08T08:41:39.746Z",
        "mangoes": [
          {
            "_id": "66a1390268a76f2f5c9f39a3",
            "title": "Introduction to Coding"
          }
        ],
        "badges": [
          {
            "_id": "6659ca9e5f2acb7abfdcd8fd",
            "name": "Hall Of Fame",
            "imageUrl": "https://testing.tagmango.com/assets/badge-icon-922e7f499bc0045d7af8ac771eebe2fe.png"
          }
        ],
        "excludeMangoes": [
          {
            "_id": "66a1390268a76f2f5c9f39a3",
            "title": "Introduction to Coding"
          }
        ],
        "excludeBadges": [
          {
            "_id": "6659ca9e5f2acb7abfdcd8fd",
            "name": "Hall Of Fame",
            "imageUrl": "https://testing.tagmango.com/assets/badge-icon-922e7f499bc0045d7af8ac771eebe2fe.png"
          }
        ]
      }
    ]
  }
]
{
  "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
}