List top engaged posts
Up to 5 posts with the highest engagement score in the date range, across every channel (or the subset given via channels). Engagement score = (3 × likes) + (3 × comments) + (2 × views). Only posts with a score above 0 are ever considered, so fewer than 5 (or none) come back if the community has that little engagement in range — this never pads the list with untouched posts. This ranking isn't filtered by whether a post's media is still processing or by the underlying post having since been deleted — unlike the channel-post listing endpoints, a post here can be one you would no longer see if you fetched it directly by id.
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-timeall_posts (default): every post in the community. posts_from_creator: only posts you authored yourself.
"all_posts" | "posts_from_creator"Id of a specific community member (fan). Purely adds personalization — it never changes which posts come back, and there is no access gate here (unlike the channel post listing endpoints, this view isn't scoped to a single channel a member could lack access to). Omit it to get every top post with no isLiked/votedOption. Pass it to add that member's own isLiked/votedOption to each returned post.
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/posts/top-engaged?startDate=2026-01-01T00%3A00%3A00.000Z&endDate=2026-01-31T23%3A59%3A59.999Z" \ -H "x-whitelabel-host: string"[
{
"_id": "string",
"postedBy": "string",
"channel": "string",
"isPinned": false,
"isHidden": false,
"pinnedNumber": 0,
"pinnedAt": "2019-08-24T14:15:22Z",
"totalViews": 0,
"totalLikes": 0,
"totalComments": 0,
"totalParentComments": 0,
"totalRepost": 0,
"totalPollVotes": 0,
"pollVotesPerOption": {
"1": 12,
"2": 8
},
"scheduleAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"post": {
"_id": "string",
"creator": "string",
"caption": "string",
"layoutType": "string",
"mediaContent": [
{
"_id": "string",
"contentType": "string",
"contentUrl": "string",
"asset": "string",
"thumbnail": "string",
"compressedVideoUrl": "string",
"compressedVideoUrlDash": "string",
"compressedVideoUrlHls": "string",
"isCompressDone": true,
"isCompressError": true,
"compressErrorDescription": "string",
"compressErrorDescriptionWarnings": "string",
"transcodingJob": "string",
"fileKey": "string",
"fileSize": 0,
"fileName": "string"
}
],
"postRefContentTypes": [
"string"
],
"postSettings": {
"disableComment": false,
"hideComment": false,
"hideLikes": false
},
"isDeleted": true,
"scheduleAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"channels": [
{
"_id": "61e97c146cf2b4d8c68f3a40",
"name": "My Awesome Channel",
"description": "This channel is about...",
"communityProfilePicture": "https://example.com/image.jpg",
"communityProfilePictureType": "image"
}
],
"postedBy": {
"_id": "6659ca9e5f2acb7abfdcd8fd",
"name": "John Doe",
"profilePicUrl": "https://linktoprofilepic.com/pic.jpg",
"isBlockedFromCommunityEngagement": false,
"isModerator": true
},
"poll": {
"_id": "string",
"creator": "string",
"question": "string",
"description": "string",
"pollOptions": [
{
"optionContent": "string",
"optionNumber": 0,
"optionId": "string"
}
],
"pollStartAt": "2019-08-24T14:15:22Z",
"pollEndAt": "2019-08-24T14:15:22Z",
"isResultVisibleToMembers": true,
"allowVoteChange": true,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
},
"postRef": {
"_id": "string",
"creator": "string",
"caption": "string",
"layoutType": "string",
"mediaContent": [
{
"_id": "string",
"contentType": "string",
"contentUrl": "string",
"asset": "string",
"thumbnail": "string",
"compressedVideoUrl": "string",
"compressedVideoUrlDash": "string",
"compressedVideoUrlHls": "string",
"isCompressDone": true,
"isCompressError": true,
"compressErrorDescription": "string",
"compressErrorDescriptionWarnings": "string",
"transcodingJob": "string",
"fileKey": "string",
"fileSize": 0,
"fileName": "string"
}
],
"postRefContentTypes": [
"string"
],
"postSettings": {
"disableComment": false,
"hideComment": false,
"hideLikes": false
},
"isDeleted": true,
"scheduleAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"createdAt": "2019-08-24T14:15:22Z",
"channels": [
{
"_id": "61e97c146cf2b4d8c68f3a40",
"name": "My Awesome Channel",
"description": "This channel is about...",
"communityProfilePicture": "https://example.com/image.jpg",
"communityProfilePictureType": "image"
}
],
"postedBy": {
"_id": "6659ca9e5f2acb7abfdcd8fd",
"name": "John Doe",
"profilePicUrl": "https://linktoprofilepic.com/pic.jpg",
"isBlockedFromCommunityEngagement": false,
"isModerator": true
},
"tqConnectShoutout": {
"createdAt": "2024-11-04T13:05:43.799Z",
"updatedAt": "2024-11-04T13:05:43.799Z",
"_id": "507f1f77bcf86cd799439011",
"creator": "507f1f77bcf86cd799439012",
"description": "Outstanding performance on the Q3 project! Your innovative approach to solving the technical challenges and your dedication to helping the team meet deadlines was truly exceptional. Thank you for being such an inspiring colleague.",
"category": {
"id": "professional",
"name": "Professional Excellence",
"logo": "💼"
},
"coverImage": "https://s3.amazonaws.com/bucket/shoutouts/cover-image-123.jpg",
"visibility": "profile-only",
"from": {
"_id": "6659ca9e5f2acb7abfdcd8fd",
"name": "John Doe",
"profilePicUrl": "https://linktoprofilepic.com/pic.jpg"
},
"to": {
"_id": "6659ca9e5f2acb7abfdcd8fd",
"name": "John Doe",
"profilePicUrl": "https://linktoprofilepic.com/pic.jpg"
},
"channels": [
{
"_id": "61e97c146cf2b4d8c68f3a40",
"name": "My Awesome Channel"
}
]
}
},
"tqConnectShoutout": {
"createdAt": "2024-11-04T13:05:43.799Z",
"updatedAt": "2024-11-04T13:05:43.799Z",
"_id": "507f1f77bcf86cd799439011",
"creator": "507f1f77bcf86cd799439012",
"description": "Outstanding performance on the Q3 project! Your innovative approach to solving the technical challenges and your dedication to helping the team meet deadlines was truly exceptional. Thank you for being such an inspiring colleague.",
"category": {
"id": "professional",
"name": "Professional Excellence",
"logo": "💼"
},
"coverImage": "https://s3.amazonaws.com/bucket/shoutouts/cover-image-123.jpg",
"visibility": "profile-only",
"from": {
"_id": "6659ca9e5f2acb7abfdcd8fd",
"name": "John Doe",
"profilePicUrl": "https://linktoprofilepic.com/pic.jpg"
},
"to": {
"_id": "6659ca9e5f2acb7abfdcd8fd",
"name": "John Doe",
"profilePicUrl": "https://linktoprofilepic.com/pic.jpg"
},
"channels": [
{
"_id": "61e97c146cf2b4d8c68f3a40",
"name": "My Awesome Channel"
}
]
}
},
"isLiked": true,
"votedOption": "string",
"totalWeight": 342
}
]{
"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
}