# solari catalog instagram content history

> Instagram 포스트의 참여 추이예요.

- **CLI**: `solari catalog instagram content history`
- **MCP 도구**: `solari_catalog_instagram_content_history`
- **권한**: `solari:read` — 체험을 포함해 모든 SOLARI 플랜에서 쓸 수 있습니다. 성공한 호출 1번에 1 크레딧입니다.
- **이용 가능 플랜**: 유료 플랜 또는 체험
- **크레딧**: 1

SOLARI가 기록해 둔 값으로 Instagram 포스트의 좋아요, 댓글, 재생, 공유 수가 시간에 따라 어떻게 변했는지 보여 줘요. 포스트를 직접 고르거나, 계정의 최신 포스트를 추적할 수 있어요.

**언제 쓰나요** — 포스트 숫자가 어떻게 늘었는지 보거나, 포스트끼리 성장 곡선을 비교하고 싶을 때 사용해요.

**돌려주는 값** — 포스트마다 한 항목이 오고, 각각 기록된 값이 오래된 순으로 와요.

## 파라미터

- `post_ids` (uuid[], 선택, ≤ 50 items, uuid) — 추적할 post_id. slugs, urls와 합쳐 최대 50개
- `slugs` (string[], 선택, ≤ 50 items) — 추적할 Instagram 숏코드
- `urls` (string[], 선택, ≤ 50 items) — 추적할 공개 Instagram 포스트 URL
- `account_id` (string, 선택, 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 또는 username을 넣어요.
- `username` (string, 선택, ≤ 64 chars) — 추적할 Instagram 사용자명. account_id가 있으면 무시돼요
- `posted_since` (string, 선택, pattern ^\d{4}-\d{2}-\d{2}$) — 계정 모드: 이 UTC 날짜 이후에 올라온 포스트만 (YYYY-MM-DD)
- `posted_until` (string, 선택, pattern ^\d{4}-\d{2}-\d{2}$) — 계정 모드: 이 UTC 날짜 이전에 올라온 포스트만 (YYYY-MM-DD)
- `limit` (integer, 선택, ≥ 1) — 계정 모드: 최신 포스트를 몇 개까지 추적할지
- `since` (string, 선택, pattern ^\d{4}-\d{2}-\d{2}$) — 이 UTC 날짜 이후에 기록된 값만 (YYYY-MM-DD)
- `until` (string, 선택, pattern ^\d{4}-\d{2}-\d{2}$) — 이 UTC 날짜 이전에 기록된 값만 (YYYY-MM-DD)
- `granularity` (enum, 선택, 기본값 "day") — day는 포스트마다 UTC 하루에 한 점만 남기고, all은 모든 점을 돌려줘요 값: `day`, `all`.

## 응답

### `Response`

- `found` (boolean) — 계정 모드: 카탈로그에 없는 계정이면 false예요. 포스트 모드: 하나도 없으면 false예요.
- `account_id / username` (string | null) — 계정 모드: 찾은 계정이에요
- `granularity` (string) — 적용된 day 또는 all이에요
- `items` (object[]) — 포스트마다 한 항목이에요. 포스트 모드는 요청한 순서, 계정 모드는 최신순이에요
- `missing` (string[]) — 포스트 모드: 카탈로그에 없는 post_id나 숏코드예요

### `items[]`

- `post_id` (uuid) — SOLARI 포스트 id
- `slug` (string) — Instagram 숏코드
- `url` (string) — 공개 링크예요
- `posted_at` (timestamp) — 게시 시각 (UTC)
- `account_id / username` (string) — 작성 계정이에요
- `points` (object[]) — 기록된 값이에요. 오래된 순이에요
- `truncated` (boolean) — 오래된 점이 잘렸으면 true예요. since를 좁혀서 다시 보세요

### `items[].points[]`

- `captured_at` (timestamp) — SOLARI가 이 값을 기록한 시각 (UTC)
- `like_count / comment_count` (integer | null) — 그 시점의 좋아요와 댓글 수예요
- `play_count` (integer | null) — 그 시점의 영상 재생 수예요. 이미지는 null이에요
- `reshare_count` (integer | null) — 그 시점의 공유 수예요. Instagram이 보여 줄 때만 있어요
- `likes_hidden` (boolean | null) — 작성자가 좋아요와 조회 수를 숨겼어요. like_count는 대개 그대로 있어요
- `deleted` (boolean) — 그 시점에 포스트가 삭제된 상태였으면 true예요

## 예시

```console
$ solari catalog instagram content history username=innisfreeofficial posted_since=2026-09-20 posted_until=2026-09-23 limit=2
```

_읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._

```json
{
  "found": true,
  "account_id": "018cabce-14cc-7544-8890-7811ec33ef74",
  "username": "innisfreeofficial",
  "granularity": "day",
  "items": [
    {
      "post_id": "01a0caef-bf57-7996-83af-d75cd21ab215",
      "slug": "DdlXQy8I10z",
      "url": "https://www.instagram.com/p/DdlXQy8I10z/",
      "posted_at": "2026-09-22T09:00:12Z",
      "account_id": "018cabce-14cc-7544-8890-7811ec33ef74",
      "username": "innisfreeofficial",
      "points": [
        {
          "captured_at": "2026-09-22T21:05:04.820000Z",
          "like_count": 80,
          "comment_count": 2,
          "play_count": null,
          "reshare_count": null,
          "likes_hidden": false,
          "deleted": false
        },
        {
          "captured_at": "2026-09-23T21:30:43.016000Z",
          "like_count": 112,
          "comment_count": 3,
          "play_count": null,
          "reshare_count": null,
          "likes_hidden": false,
          "deleted": false
        },
        "… 1 more"
      ],
      "truncated": false
    },
    {
      "post_id": "01a0c433-73cd-7141-a458-e2eeb1441dba",
      "slug": "DdiychFo_91",
      "url": "https://www.instagram.com/p/DdiychFo_91/",
      "posted_at": "2026-09-21T09:00:07Z",
      "account_id": "018cabce-14cc-7544-8890-7811ec33ef74",
      "username": "innisfreeofficial",
      "points": [
        {
          "captured_at": "2026-09-21T20:00:23.541000Z",
          "like_count": 94,
          "comment_count": 5,
          "play_count": null,
          "reshare_count": null,
          "likes_hidden": false,
          "deleted": false
        },
        {
          "captured_at": "2026-09-22T21:05:05.524000Z",
          "like_count": 114,
          "comment_count": 6,
          "play_count": null,
          "reshare_count": null,
          "likes_hidden": false,
          "deleted": false
        },
        "… 2 more"
      ],
      "truncated": false
    }
  ],
  "missing": []
}
```

## MCP 호출

```json
{
  "name": "solari_catalog_instagram_content_history",
  "arguments": {
    "username": "innisfreeofficial",
    "posted_since": "2026-09-20",
    "posted_until": "2026-09-23",
    "limit": 2
  }
}
```

## 주의사항

- 포스트(post_ids, slugs, urls)나 계정(account_id 또는 username) 중 하나만 넣어요. 둘 다 넣으면 안 돼요.
- since와 until은 기록된 값을 거르고, posted_since와 posted_until은 계정의 어떤 포스트를 추적할지 골라요.
- 포스트는 주로 올라온 뒤 처음 며칠 동안 다시 수집돼서, 오래된 포스트는 점이 적고 중간중간 비어 있는 게 정상이에요.
- likes_hidden=true라고 like_count가 없는 건 아니에요. 대개 값이 그대로 있으니 비교에서 빼지 마세요.
- 카탈로그만 읽어요. 없는 포스트는 먼저 solari fetch instagram post url=… 를 호출해 주세요. 기록은 그때부터 쌓이고, 지난 값은 채울 수 없어요.

## 관련 도구

- [`solari_catalog_instagram_content_detail`](https://solari.sh/docs/tools/catalog-instagram-content-detail.md?lang=ko)
- [`solari_catalog_instagram_account_posts`](https://solari.sh/docs/tools/catalog-instagram-account-posts.md?lang=ko)
- [`solari_catalog_instagram_account_history`](https://solari.sh/docs/tools/catalog-instagram-account-history.md?lang=ko)
- [`solari_fetch_instagram_post`](https://solari.sh/docs/tools/fetch-instagram-post.md?lang=ko)
