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

solari instagram account posts

Page through one account's posts, newest first.

MCP tool
solari_instagram_account_posts
CLI
solari instagram account posts
Access
solari:readWorks with any signed-in SOLARI account.Works with any signed-in SOLARI account.

Overview

Posts by one tracked Instagram account, newest first, with pagination and filters. Identify the account by account_id (UUID from solari_instagram_account_search) or by username (Instagram handle). Each item has post_id (SOLARI post UUID), slug and url (public Instagram permalink), post_type (reel, video, photo, or carousel), posted_at, caption text, like/comment/play counts, media_count, is_paid_partnership, a medias array (every media of the post in carousel order, each with media_type, media/thumbnail URLs, video_duration, and tags — accounts and hashtags tagged on that media, with account_id when the tagged account is tracked), and a representative thumbnail_url. The response carries found, account_id, username, total, has_more, and items; page with limit and offset, narrow with since/until (UTC dates, inclusive) and post_type. A username not tracked yet is fetched live on first request (allow several seconds), and fetched_on_demand=true marks that only its most recent posts are available so far; found=false means the handle does not exist on Instagram. Works with any signed-in SOLARI account.

When to use itGoing deeper than the profile preview, or pulling raw rows narrowed by date range and format.

What comes backPosts with every media of each post, including the accounts and hashtags tagged on them.

Parameters

account_idstringoptional
account_id of the account (SOLARI account UUID). Provide this or username.uuid, pattern ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
usernamestringoptional
Instagram handle, with or without a leading @. Ignored when account_id is set.≤ 64 chars
limitintegeroptional
Posts per page, default 12. Values above 200 are clamped to 200.≥ 1
offsetintegeroptional
Pagination offset, default 0.default 0≥ 0
sincestringoptional
Only posts on or after this UTC date, YYYY-MM-DD inclusive.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}$
post_typeenumoptional
Only posts of this format. reel is short-form single-video; video is non-reel video.Valuesreelvideophotocarousel

Response

Response

foundboolean
false means the handle does not exist on Instagram.
account_id / usernamestring
The resolved account.
totalinteger
Posts matching the filters.
has_moreboolean
Whether another page exists.
itemsobject[]
Posts, newest first.
fetched_on_demandboolean
true when only the most recent posts are available so far.

items[]

post_iduuid
SOLARI post id.
slugstring
Instagram shortcode.
urlstring
Public permalink.
post_typestring
reel, video, photo, or carousel.
posted_attimestamp
Publication time (UTC).
textstring
Caption text.
like_count / comment_count / play_countinteger
Engagement snapshot.
media_countinteger
Number of medias in the post.
is_paid_partnershipboolean | null
Instagram's own paid-partnership label.
mediasobject[]
Every media in carousel order — each with media_type, media/thumbnail URLs, and video_duration.
medias[].tagsobject[]
Accounts and hashtags tagged on that media. A tagged account carries account_id when SOLARI tracks it.
thumbnail_urlstring
Representative thumbnail.

Example

Request

$ solari instagram account posts username=innisfreeofficial limit=2

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

{
  "found": true,
  "account_id": "018cabce-14cc-7544-8890-7811ec33ef74",
  "username": "innisfreeofficial",
  "fetched_on_demand": false,
  "total": 4196,
  "has_more": true,
  "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": []
        }
      ],
      "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 …"
    },
    "… 1 more"
  ]
}

As an MCP call

{
  "name": "solari_instagram_account_posts",
  "arguments": {
    "username": "innisfreeofficial",
    "limit": 2
  }
}

Notes

  • Up to 200 per page. For bulk pulls prefer --ndjson appended to a file over large in-memory pages.
  • since and until are UTC dates and inclusive on both ends.
  • post_type=reel is short-form single video; video is non-reel video.

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