# solari instagram account posts

> Page through one account's posts, newest first.

- **CLI**: `solari instagram account posts`
- **MCP tool**: `solari_instagram_account_posts`
- **Access**: `solari:read` — Works with any signed-in SOLARI account.

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 it** — Going deeper than the profile preview, or pulling raw rows narrowed by date range and format.

**What comes back** — Posts with every media of each post, including the accounts and hashtags tagged on them.

## Parameters

- `account_id` (string, optional, 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)$) — account_id of the account (SOLARI account UUID). Provide this or username.
- `username` (string, optional, ≤ 64 chars) — Instagram handle, with or without a leading @. Ignored when account_id is set.
- `limit` (integer, optional, ≥ 1) — Posts per page, default 12. Values above 200 are clamped to 200.
- `offset` (integer, optional, default 0, ≥ 0) — Pagination offset, default 0.
- `since` (string, optional, pattern ^\d{4}-\d{2}-\d{2}$) — Only posts on or after this UTC date, YYYY-MM-DD inclusive.
- `until` (string, optional, pattern ^\d{4}-\d{2}-\d{2}$) — Only posts on or before this UTC date, YYYY-MM-DD inclusive.
- `post_type` (enum, optional) — Only posts of this format. reel is short-form single-video; video is non-reel video. Values: `reel`, `video`, `photo`, `carousel`.

## Response

### `Response`

- `found` (boolean) — false means the handle does not exist on Instagram.
- `account_id / username` (string) — The resolved account.
- `total` (integer) — Posts matching the filters.
- `has_more` (boolean) — Whether another page exists.
- `items` (object[]) — Posts, newest first.
- `fetched_on_demand` (boolean) — true when only the most recent posts are available so far.

### `items[]`

- `post_id` (uuid) — SOLARI post id.
- `slug` (string) — Instagram shortcode.
- `url` (string) — Public permalink.
- `post_type` (string) — reel, video, photo, or carousel.
- `posted_at` (timestamp) — Publication time (UTC).
- `text` (string) — Caption text.
- `like_count / comment_count / play_count` (integer) — Engagement snapshot.
- `media_count` (integer) — Number of medias in the post.
- `is_paid_partnership` (boolean | null) — Instagram's own paid-partnership label.
- `medias` (object[]) — Every media in carousel order — each with media_type, media/thumbnail URLs, and video_duration.
- `medias[].tags` (object[]) — Accounts and hashtags tagged on that media. A tagged account carries account_id when SOLARI tracks it.
- `thumbnail_url` (string) — Representative thumbnail.

## Example

```console
$ solari instagram account posts username=innisfreeofficial limit=2
```

_Long strings and repeated array entries are trimmed for readability._

```json
{
  "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

```json
{
  "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.

## Related tools

- [`solari_instagram_account_profile`](https://solari.sh/docs/tools/instagram-account-profile.md)
- [`solari_instagram_content_detail`](https://solari.sh/docs/tools/instagram-content-detail.md)
- [`solari_tiktok_account_posts`](https://solari.sh/docs/tools/tiktok-account-posts.md)
