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 it — Measuring 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 back — Hydrated 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=3Response · 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'.
Related tools
- solari_instagram_content_searchKeyword search across captions, creator bios, and video transcriptions.
- solari_instagram_content_aggregateCount posts instead of listing them — by account, format, hashtag, mention, or keyword.
Machine-readable: /docs/tools/instagram-tag-search.md