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

solari instagram content aggregate

Count posts instead of listing them — by account, format, hashtag, mention, or keyword.

MCP tool
solari_instagram_content_aggregate
CLI
solari instagram 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 posts, for questions answered by numbers rather than by individual posts: posts per account per month, which hashtags dominate a topic, average likes by format. Group by account, post_type, hashtag, mention, caption_keyword, or transcription_keyword, and optionally split each group by day, week, or month. post_count always comes back; request metrics for like/comment/view sums and averages, mean follower count, and distinct account counts. Narrow the set with a free-text query, usernames, hashtags, mentions, or post_types. 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_instagram_content_search when the posts themselves are needed instead of counts. Works with any signed-in SOLARI account.

When to use itNumeric questions: posts per account per month, which hashtags dominate a topic, average likes 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_keywordtranscription_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. Metric values are snapshots and can lag live counts.Valueslike_sumlike_avgcomment_sumcomment_avgview_sumview_avgfollower_avgaccount_count
querystringoptional
Free-text filter matched against captions, creator bios, and video transcriptions.
usernamesstring[]optional
Restrict to these Instagram 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.
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
View total and mean.
metrics.share_sum / collect_sumnumber | null
TikTok-only metrics; always null on Instagram.
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 instagram content aggregate group_by=hashtag query="이니스프리" metrics='["like_avg","view_sum","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": "hashtag",
  "interval": null,
  "total_posts": 1647,
  "truncated": true,
  "buckets": [
    {
      "key": "이니스프리",
      "metrics": {
        "post_count": 772,
        "like_sum": null,
        "like_avg": 320.7240932642487,
        "comment_sum": null,
        "comment_avg": null,
        "view_sum": 9400953,
        "view_avg": null,
        "share_sum": null,
        "share_avg": null,
        "collect_sum": null,
        "collect_avg": null,
        "follower_avg": null,
        "account_count": 587
      },
      "series": null
    },
    {
      "key": "광고",
      "metrics": {
        "post_count": 548,
        "like_sum": null,
        "like_avg": 373.04021937842776,
        "comment_sum": null,
        "comment_avg": null,
        "view_sum": 5463711,
        "view_avg": null,
        "share_sum": null,
        "share_avg": null,
        "collect_sum": null,
        "collect_avg": null,
        "follower_avg": null,
        "account_count": 381
      },
      "series": null
    },
    "… 3 more"
  ]
}

As an MCP call

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

Notes

  • post_count always comes back. Everything else is null unless named in metrics.
  • Filtering by mentions and grouping by account answers "which accounts tagged this handle?".
  • The index covers KR, JP, US, and TW over roughly the most recent 6 months. since defaults to — and bottoms out at — 183 days ago; an older value is clamped and the applied value is echoed back.
  • interval alone returns one bucket per period; combined with group_by, each group carries a series.
  • When the posts themselves are the answer, use content search.

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