← All tools
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=reels

Response · 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.

Machine-readable: /docs/tools/fetch-instagram-posts.md