All tools
tiktok · contentsolari:readWorks with any signed-in SOLARI account.

solari tiktok content aggregate

Count TikTok posts instead of listing them.

MCP tool
solari_tiktok_content_aggregate
CLI
solari tiktok content aggregate
Access
solari:readWorks with any signed-in SOLARI account.Works with any signed-in SOLARI account.

Overview

Counts and engagement rollups over tracked TikTok posts, for questions answered by numbers rather than by individual posts: posts per account per month, which hashtags dominate a topic, average plays by format. Group by account, post_type, hashtag, mention, or caption_keyword, and optionally split each group by day, week, or month. post_count always comes back; request metrics for like/comment/view/share/collect sums and averages (the view_* metrics count plays), mean follower count, and distinct account counts. Narrow the set with a free-text query (captions and video transcripts), usernames, hashtags, mentions, or post_types (video, carousel). Filtering by mentions and grouping by account answers which accounts tagged a given handle. Coverage: regions KR, JP, US, and TW, holding roughly the most recent 6 months; a since older than that is clamped and the applied value is echoed back. Buckets are largest-first; truncated=true means more groups existed than limit returned. Use solari_tiktok_content_search when the posts themselves are needed instead of counts. Works with any signed-in SOLARI account.

When to use itNumeric questions: upload cadence per account, hashtag distribution in a topic, average plays by format.

What comes backPer-group counts and engagement rollups, largest group first.

Parameters

regionenumoptional
Region to aggregate. Only these four regions are indexed.default "KR"ValuesKRJPUSTW
group_byenumoptional
Dimension to group by. Omit to aggregate the whole filtered set into a single total bucket.Valuesaccountpost_typehashtagmentioncaption_keyword
intervalenumoptional
Calendar interval to split by. Alone it returns one bucket per period; combined with group_by each group carries a series.Valuesdayweekmonth
metricsstring[]optional
Extra metrics beyond post_count, which is always returned. view_* metrics count plays. Metric values are snapshots and can lag live counts.Valueslike_sumlike_avgcomment_sumcomment_avgview_sumview_avgshare_sumshare_avgcollect_sumcollect_avgfollower_avgaccount_count
querystringoptional
Free-text filter matched against captions and video transcripts.
usernamesstring[]optional
Restrict to these TikTok handles.
hashtagsstring[]optional
Restrict to posts carrying every one of these hashtags.
mentionsstring[]optional
Restrict to posts that tag every one of these handles. Pair with group_by=account to rank the accounts tagging a given handle.
post_typesstring[]optional
Restrict to these post formats.Valuesvideocarousel
sincestringoptional
Only posts on or after this UTC date, YYYY-MM-DD inclusive. Defaults to 183 days ago, which is also the earliest accepted bound.pattern ^\d{4}-\d{2}-\d{2}$
untilstringoptional
Only posts on or before this UTC date, YYYY-MM-DD inclusive.pattern ^\d{4}-\d{2}-\d{2}$
limitintegeroptional
Maximum groups returned when group_by is set, default 20. Values above 50 are clamped to 50.≥ 1

Response

Response

regionstring
Region the aggregation ran over.
sincedate
Start date actually applied. A request older than the retention window is clamped and echoed back here.
untildate | null
End date actually applied.
group_bystring | null
Grouping dimension applied.
intervalstring | null
Calendar interval applied.
total_postsinteger
Posts matching the filters. Can differ from the sum of bucket counts when groups overlap.
truncatedboolean
true when more groups existed than limit returned.
bucketsobject[]
One entry per group, largest first.

buckets[]

keystring
The group value — handle, hashtag, format, and so on. A single total bucket when group_by is omitted.
metrics.post_countinteger
Post count. Always returned.
metrics.like_sum / like_avgnumber | null
Like total and mean. Only when requested via metrics.
metrics.comment_sum / comment_avgnumber | null
Comment total and mean.
metrics.view_sum / view_avgnumber | null
Play total and mean.
metrics.share_sum / collect_sumnumber | null
Share and save totals, with matching _avg variants.
metrics.follower_avgnumber | null
Mean follower count of the authoring accounts.
metrics.account_countinteger | null
Distinct accounts in the group.
seriesobject[] | null
Per-period breakdown, present when interval is set.

Example

Request

$ solari tiktok content aggregate group_by=account query="이니스프리" metrics='["view_sum","like_avg","account_count"]' limit=5

Response · Long strings and repeated array entries are trimmed for readability.

{
  "region": "KR",
  "since": "2026-03-04",
  "until": null,
  "group_by": "account",
  "interval": null,
  "total_posts": 20,
  "truncated": true,
  "buckets": [
    {
      "key": "merryview_",
      "metrics": {
        "post_count": 2,
        "like_sum": null,
        "like_avg": 2378.5,
        "comment_sum": null,
        "comment_avg": null,
        "view_sum": 179504,
        "view_avg": null,
        "share_sum": null,
        "share_avg": null,
        "collect_sum": null,
        "collect_avg": null,
        "follower_avg": null,
        "account_count": 1
      },
      "series": null
    },
    {
      "key": "_kimdayun_",
      "metrics": {
        "post_count": 1,
        "like_sum": null,
        "like_avg": 1829,
        "comment_sum": null,
        "comment_avg": null,
        "view_sum": 102000,
        "view_avg": null,
        "share_sum": null,
        "share_avg": null,
        "collect_sum": null,
        "collect_avg": null,
        "follower_avg": null,
        "account_count": 1
      },
      "series": null
    },
    "… 3 more"
  ]
}

As an MCP call

{
  "name": "solari_tiktok_content_aggregate",
  "arguments": {
    "group_by": "account",
    "query": "이니스프리",
    "metrics": [
      "view_sum",
      "like_avg",
      "account_count"
    ],
    "limit": 5
  }
}

Notes

  • The view_* metrics count plays.
  • Unlike the Instagram version, share_* and collect_* are actually populated, and there is no transcription_keyword grouping.
  • The index covers KR, JP, US, and TW over roughly the most recent 6 months. since bottoms out at 183 days ago; an older value is clamped and echoed back.

Machine-readable: /docs/tools/tiktok-content-aggregate.md