TagMangoTagMango Docs
Analytics

List channel growth stats

GET
/api/v1/external/analytics/community/channels/growth

Per-channel growth and engagement for the date range — members, new members, visits, posts, messages, comments, likes, and activity-per-member. One row per non-archived channel, sorted by member count descending.

Every endpoint in this group requires startDate/endDate — there is no "all time" mode. channels is always optional and always additive (never invents access): a channel id that doesn't belong to you contributes nothing to the result rather than erroring, so passing an id by mistake fails silently rather than with a 4xx. Every endpoint in this group fails with a 400 if the Community feature is not enabled for your account. Both startDate and endDate are always UTC on the wire, same as everywhere else — the caveat here is only about which calendar day each instant is grouped into: this endpoint groups by IST (UTC+05:30) day boundaries, not UTC day boundaries and not your own timezone.

AuthorizationBearer <token>

In: header

Query Parameters

channels?array<array<>>

Channel ids to restrict analytics to. Every channel must belong to you — a channel belonging to someone else contributes nothing to the result rather than erroring. Omit to include every non-archived channel. Pass as repeated query params (channels=a&channels=b) or a single comma-separated value (channels=a,b) — both work.

startDate*string

Start of the date range, inclusive. Always send a full ISO 8601 datetime string, in UTC — e.g. 2026-01-01T00:00:00.000Z — not a bare date; a bare date may parse leniently today, but isn't a format this API commits to, so don't rely on it. The value itself is always UTC on the wire, both what you send and what any response echoes back — there is no separate timezone parameter, and nothing here changes that. What DOES vary by endpoint is how that UTC instant gets grouped into a calendar day internally: most endpoints in this group shift it to IST (UTC+05:30) first and take the calendar day from there, so which day your instant counts as depends on IST, not on UTC or on your own timezone — a few endpoints instead compare directly against your exact instant, with no day regrouping at all. Each endpoint's own description says which applies.

Formatdate-time
endDate*string

End of the date range, inclusive. Same format requirement and IST-day-grouping caveat as startDate — see that field's description, and each endpoint's own description for which rule applies here.

Formatdate-time

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/analytics/community/channels/growth?startDate=2026-01-01T00%3A00%3A00.000Z&endDate=2026-01-31T23%3A59%3A59.999Z" \  -H "x-whitelabel-host: string"
[
  {
    "channelId": "61e97c146cf2b4d8c68f3a40",
    "channelName": "General Discussion",
    "totalMember": 150,
    "totalNewMember": 25,
    "totalVisits": 500,
    "totalUniqueVisit": 120,
    "totalPost": 45,
    "totalMessage": 200,
    "totalComment": 80,
    "totalLike": 350,
    "activityPerMember": 5.2
  }
]
{
  "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
}