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

solari instagram tag search

Every post carrying one exact hashtag or @mention.

MCP tool
solari_instagram_tag_search
CLI
solari instagram tag search
Access
solari:readWorks with any signed-in SOLARI account.Works with any signed-in SOLARI account.

Overview

Every tracked post carrying one exact tag — '#ootd' for a hashtag, '@handle' for mentions of an account — hydrated into full rows, newest-collected first with cursor pagination. Exact whole-tag matching over the entire tracked history and every region, where solari_instagram_content_search does free-text over four regions and about six months. Works with any signed-in SOLARI account.

When to use itMeasuring a campaign hashtag's real reach, or finding every post that mentioned an account. Exact whole-tag matching over the full tracked history — content search is the tool for keywords found anywhere in text, but it only reaches four regions and about six months.

What comes backHydrated posts carrying the tag, newest collected first, with a cursor for the next page.

Parameters

querystringrequired
One exact tag. '#ootd' or 'ootd' searches a hashtag; '@oliveyoung_official' searches mentions of that account. No spaces, no wildcards.≤ 200 chars
limitintegeroptional
Posts per page, default 20. Values above 1000 are clamped to 1000. Larger pages cost no more than smaller ones.≥ 1
cursorstringoptional
next_cursor from the previous response. Omit for the first page.

Response

Response

querystring
The tag the lookup actually ran on, without its leading # or @.
tag_kindstring
hashtag or mention — how the query was read.
matched_tagsinteger
How many stored tag spellings the query matched. Above 1 is normal: a mention matches both the handle and the account's numeric id, and a Hangul hashtag matches both of its Unicode spellings. 0 means the tag has never been seen.
itemsobject[]
The posts found.
foundinteger
Posts that hydrated. Lower than the page size when a post was deleted after the tag index was last refreshed.
next_cursorstring | null
Pass back as cursor for the next page. null on the last page.
mirror_synced_attimestamp | null
When the tag index was last refreshed (UTC). Posts published after this may not carry their tags yet.

items[]

iduuid
Post id.
slugstring
Instagram shortcode.
textstring
Caption text.
posted_attimestamp
Publication time (UTC).
username / user_id / account_idstring
Authoring account. account_id is the current name.
like_count / comment_countinteger
Engagement snapshot.
play_countinteger | null
Video plays.
media_typestring
Post format.

Example

Request

$ solari instagram tag search query=#ootd limit=3

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

{
  "query": "ootd",
  "tag_kind": "hashtag",
  "matched_tags": 1,
  "items": [
    {
      "id": "01a06a16-781f-7578-822b-1c326e72f28d",
      "slug": "DW1jniHiVSU",
      "text": "御殿場是一個一天逛不完的地方 希望下次有時間可以慢慢逛 —— OOTD —— Pants:LAKOLE / Shirt:HARE #LYNN__OOTD #日常穿搭 #ootd …",
      "posted_at": "2026-04-07T16:16:21Z",
      "virtual_campaign": null,
      "username": "llling_yinnnnn",
      "user_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04",
      "account_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04",
      "profile_picture_url": null,
      "like_count": 3,
      "comment_count": 4,
      "media_type": "post",
      "play_count": null,
      "media": []
    },
    {
      "id": "01a06a16-552d-7099-ae0a-77e6b68de960",
      "slug": "DaS66VzJBPW",
      "text": "SEOUL OOTD — 這次搭配了四種完全不同風格 #ootd #lynn__ootd #穿搭販賣機 #韓國穿搭",
      "posted_at": "2026-07-02T15:33:13Z",
      "virtual_campaign": null,
      "username": "llling_yinnnnn",
      "user_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04",
      "account_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04",
      "profile_picture_url": null,
      "like_count": 32,
      "comment_count": 1,
      "media_type": "reel",
      "play_count": 888,
      "media": []
    },
    "… 1 more"
  ],
  "found": 3,
  "next_cursor": "01a06a16-552d-7099-ae0a-77e6b68de960",
  "mirror_synced_at": "2026-09-03T21:47:19Z"
}

As an MCP call

{
  "name": "solari_instagram_tag_search",
  "arguments": {
    "query": "#ootd",
    "limit": 3
  }
}

Notes

  • Order is collection recency, not publication date — a single account's posts are collected in one burst, so consecutive items often share an author and their posted_at values jump around. Sort by posted_at yourself when publication order matters.
  • The tag index is rebuilt once a day, so posts from the last several hours may not carry their tags yet. mirror_synced_at gives the exact cutoff. Captions and engagement counts are always live.
  • Every page costs the same to compute no matter how large, so ask for one page of 1000 rather than twenty pages of 50.
  • Matching is exact and whole-tag. '#ootd' will not match '#ootdkorea', and there are no wildcards.
  • Prefix with @ to search mentions of an account: 'query=@oliveyoung_official'.

Machine-readable: /docs/tools/instagram-tag-search.md