List member engagement
Paginated, per-member engagement breakdown for the date range — a leaderboard, not a summary number. Sort by a single metric with sortBy/sortOrder, or by overall engagement with engagementState.
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.
Authorization
bearer In: header
Query Parameters
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.
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.
date-timeEnd 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.
date-timePage number of the results. Defaults to 1.
1 <= valueNumber of members per page. Defaults to 10.
1 <= value <= 100Field to sort by. Combines with engagementState as a tie-breaker — when both are given, members are grouped by engagementState first, then ordered by this field within each group.
"totalComment" | "totalLike" | "totalMessage" | "totalPost"Sort direction for sortBy. Ignored if sortBy is not given.
"asc" | "desc"Sort by overall engagement instead of a single field. SUPER_FAN orders highest engagement (totalWeight) first; DROP_OFF orders lowest first. Takes priority over sortBy.
"SUPER_FAN" | "DROP_OFF"Header Parameters
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/members/engagement?startDate=2026-01-01T00%3A00%3A00.000Z&endDate=2026-01-31T23%3A59%3A59.999Z" \ -H "x-whitelabel-host: string"{
"totalEngagement": 340,
"engagement": [
{
"userId": "61e97c146cf2b4d8c68f3a41",
"userName": "Jordan Rivera",
"userProfilePicUrl": "https://cdn.tagmango.com/assets/profile.jpg",
"totalWeight": 128,
"totalComment": 12,
"totalLike": 40,
"totalMessage": 8,
"totalPost": 5
}
]
}{
"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
}