instagram · fetchsolari:read
solari fetch instagram posts
Collect an Instagram account's posts, reels, or tagged posts live.
- MCP tool
- solari_fetch_instagram_posts
- CLI
- solari fetch instagram posts
- Access
- solari:read
- Plans
- Free Trial
- Plus
- Pro
- Enterprise
- Credit
- 1
Overview
Collect one tab of an Instagram account live and get its posts back in the same call, in tab order, with views, likes, and comments. type picks the tab: posts (the profile grid), reels, or tagged_posts (other accounts' posts that tag this account).
When to use it — When you need an account's latest posts or current reel views, or catalog account posts looks sparse or stale.
What comes back — The collected posts, in the same item shape as catalog account posts, and what the collection did.
Parameters
- usernamestringrequired
- Instagram username.≤ 64 chars
- typeenumoptional
- posts (profile grid), reels (reels tab), or tagged_posts (other accounts' posts that tag this account).default
"posts"Valuespostsreelstagged_posts - pagesintegeroptional
- Pages of the tab to collect, roughly 12 posts each.default
11–3 - cursorstringoptional
- collection.next_cursor from the previous call, to continue further back.≤ 8192 chars
Response
Response
- foundboolean
- false if Instagram has no account under that handle. items is empty then.
- account_iduuid
- The account.
- usernamestring
- Resolved handle.
- typestring
- Tab that was collected.
- collectionobject
- What the collection did.
- totalinteger
- Posts in items.
- itemsobject[]
- The collected posts, in tab order.
- notestring
- Only when there is something to say: private account, tab unavailable, posts still being stored, or more pages available.
- nextstring
- Only when the tab goes further back: the same call with cursor=next_cursor to continue.
collection
- type / pagesstring / integer
- Tab and pages read.
- fetched_countinteger
- Posts Instagram returned.
- stored_countinteger
- Posts stored or updated in the catalog by this call.
- has_moreboolean
- true if the tab goes further back than the pages read. Continue with cursor=next_cursor.
- truncatedboolean
- true if the collection stopped before every requested page was read.
- pending_countinteger
- Posts still being stored. Their items carry only post_id, slug, url, and posted_at for now.
- skipped_reasonstring | null
- Why nothing was collected. private means the account is private.
- unavailable_reasonstring | null
- Why Instagram did not return the tab.
items[]
- post_iduuid
- SOLARI post id.
- slugstring
- Instagram shortcode.
- urlstring
- Public permalink.
- post_typestring
- reel, video, photo, or carousel.
- posted_attimestamp
- Published at (UTC).
- textstring
- Caption.
- like_count / comment_countinteger
- Engagement.
- play_countinteger | null
- Views. null when Instagram gave no view count, as for most photos.
- media_countinteger
- Number of media items.
- is_paid_partnershipboolean | null
- Instagram paid-partnership label.
- mediasobject[]
- Every media in carousel order.
- assetsobject[]
- Media files in order. Each has a direct-download asset_url, media_type, and video_duration.
- thumbnail_urlstring
- Thumbnail.
- author_username / author_account_idstring / uuid
- tagged_posts only: the account that posted it.
Example
Request
$ solari fetch instagram posts username=innisfreeofficial type=reelsResponse · Long strings and repeated array entries are trimmed for readability.
{
"found": true,
"account_id": "018cabce-14cc-7544-8890-7811ec33ef74",
"username": "innisfreeofficial",
"type": "reels",
"collection": {
"type": "reels",
"pages": 1,
"fetched_count": 12,
"stored_count": 12,
"has_more": true,
"truncated": false,
"next_cursor": "eyJhIjoiMDE4Y2FiY2UiLCJ0IjoicmVlbHMiLCJjIjoiUUZEIn0",
"pending_count": 0,
"skipped_reason": null,
"unavailable_reason": null
},
"total": 12,
"items": [
{
"post_id": "01a06275-d974-7fda-98ee-dd3ee15b4dcf",
"slug": "DcyMAmUh6FZ",
"url": "https://www.instagram.com/p/DcyMAmUh6FZ/",
"post_type": "reel",
"posted_at": "2026-09-02T12:00:06+00:00",
"text": "Deeply hydrated skin—NO OFF HOURS. 💚\nwherever the day takes MINGYU (@min9yu_k)—his hydration stays SUPERCHARGED ⚡️\n\nGreen Tea Ceramide Milk: Lightweight milky toner that won‘t clog your pores\nGreen Tea Ceramide Mist: Tou …",
"like_count": 3224,
"comment_count": 57,
"play_count": 22467,
"media_count": 1,
"is_paid_partnership": false,
"medias": [
{
"media_type": "video",
"media_url": "https://smr-images-b.bzine.co/users/018cabce-14cc-7544-8890-7811ec33ef74/posts/01a06275-d974-7fda-98ee-dd3ee15b4dcf/medias/01a06275-db2b-77f7-a020-b4beb744771f.mp4",
"thumbnail_url": "https://bzine.co/cdn-cgi/media/width=480,mode=frame,time=0ms/https://smr-images.bzine.co/users/018cabce-14cc-7544-8890-7811ec33ef74/posts/01a06275-d974-7fda-98ee-dd3ee15b4dcf/medias/01a06275-db2b-77f7-a020-b4beb744771f.m …",
"video_duration": 23.868000030517578,
"tags": []
}
],
"assets": [
{
"asset_url": "https://smr-images-b.bzine.co/users/018cabce-14cc-7544-8890-7811ec33ef74/posts/01a06275-d974-7fda-98ee-dd3ee15b4dcf/medias/01a06275-db2b-77f7-a020-b4beb744771f.mp4",
"media_type": "video",
"video_duration": 23.868000030517578
}
],
"thumbnail_url": "https://bzine.co/cdn-cgi/media/width=480,mode=frame,time=0ms/https://smr-images.bzine.co/users/018cabce-14cc-7544-8890-7811ec33ef74/posts/01a06275-d974-7fda-98ee-dd3ee15b4dcf/medias/01a06275-db2b-77f7-a020-b4beb744771f.m …"
},
"… 11 more"
],
"note": "The tab has more posts: request up to 3 pages to collect further back.",
"next": "solari fetch instagram posts username=innisfreeofficial type=reels pages=3 cursor=eyJhIjoiMDE4Y2FiY2UiLCJ0IjoicmVlbHMiLCJjIjoiUUZEIn0"
}As an MCP call
{
"name": "solari_fetch_instagram_posts",
"arguments": {
"username": "innisfreeofficial",
"type": "reels"
}
}Notes
- Use type=reels for view counts. On the profile grid, photos come back with play_count null.
- Prefer this over catalog instagram account posts when you need every recent post or current views. The stored catalog can be sparse or stale.
- A call usually takes 5 to 45 seconds. Everything collected is also stored in the catalog.
- A private account returns no items and collection.skipped_reason=private. An unknown handle is collected first; found=false means Instagram has no such account.
- When likes_hidden is true, do not use like_count. The author hid likes, so it is null or may not be the real count.
Related tools
- solari_catalog_instagram_account_postsPosts from an Instagram account.
- solari_fetch_instagram_accountIngest one Instagram handle into the catalog.
- solari_fetch_instagram_postCollect one Instagram post by URL and get its author.
- solari_fetch_instagram_hashtag_postsCollect a live page of a hashtag's posts.
Machine-readable: /docs/tools/fetch-instagram-posts.md