# solari instagram content search

> Keyword search across captions, creator bios, and video transcriptions.

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

Lexical keyword search over tracked posts: matches captions, creator bios, and video transcription text (Korean-aware analysis plus n-gram partial matching), ranked by relevance with match highlights. Each item carries post_id, author account_id/username, caption, transcription text, engagement counts, and score — feed post_id into solari_instagram_content_detail or solari_instagram_content_batch and the account reference into the account tools. Coverage: only regions KR, JP, US, and TW are searchable, holding roughly the most recent 6 months of posts; total is exact up to 10,000 and saturates there. Narrow with since/until (UTC dates). Works with any signed-in SOLARI account.

**When to use it** — Finding posts by topic or phrasing. When the answer is a count, use content aggregate instead.

**What comes back** — Relevance-ranked hits with match highlights.

## Parameters

- `query` (string, required) — Free-text keyword query matched against captions, creator bios, and video transcriptions.
- `region` (enum, optional, default "KR") — Region to search. Only these four regions are indexed. Values: `KR`, `JP`, `US`, `TW`.
- `limit` (integer, optional, ≥ 1) — Maximum hits, default 20. Values above 100 are clamped to 100.
- `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. Data older than ~6 months is not indexed.
- `until` (string, optional, pattern ^\d{4}-\d{2}-\d{2}$) — Only posts on or before this UTC date, YYYY-MM-DD inclusive.

## Response

### `Response`

- `query / region` (string) — The query and region applied.
- `total` (integer) — Total matches. Exact up to 10,000, then saturates.
- `took_ms` (integer) — Search time.
- `items` (object[]) — Hits, score descending.

### `items[]`

- `post_id` (uuid) — SOLARI post id.
- `slug` (string) — Instagram shortcode.
- `account_id / author_id / username` (string) — Authoring account. account_id is the current name.
- `caption` (string) — Caption text.
- `user_bio` (string) — Author bio — part of the searched text.
- `transcription_text` (string | null) — Video speech transcription.
- `posted_at` (timestamp) — Publication time (UTC).
- `like_count / comment_count` (integer) — Engagement snapshot.
- `follower_count` (integer) — Author follower count.
- `score` (number) — Relevance score. Comparable only within this response.
- `highlight` (object) — Matched fragments per field: caption, user_bio, transcription_text.
- `is_video` (boolean) — Whether the post is a video.

## Example

```console
$ solari instagram content search query="이니스프리 그린티" limit=3
```

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

```json
{
  "query": "이니스프리 그린티",
  "region": "KR",
  "total": 10000,
  "took_ms": 1586,
  "items": [
    {
      "post_id": "019f12d8-3e72-78e9-b7e5-39293bc56f23",
      "author_id": "019f12d8-3e0f-7c74-afc6-e14405bd1523",
      "username": "hanydiary",
      "caption": "[이니스프리에디터 4기 1-2 : 그린티 PDRN 아이&립 세럼] #이니스프리 #그린티PDRN 💚 자세한 포스팅은 프로필 링크 참고해주세요 :)",
      "user_bio": "대외활동 | 휴학생 | 취준일기 🪽과 학생회 2년 연임 🪽이니스프리 대학생 에디터 3기 / 4기",
      "transcription_text": null,
      "posted_at": "2026-02-16T05:44:45Z",
      "like_count": 3,
      "comment_count": 3,
      "follower_count": 972,
      "score": 140.43787,
      "slug": "DUzrl1UkoJb",
      "highlight": {
        "caption": [
          "[<mark>이니스프리</mark>에디터 4기 1-2 : <mark>그린티</mark> PDRN 아이&립 세럼] #이니스프리 #그린티PDRN 💚 자세한 포스팅은 프로필 링크 참고해주세요 :)"
        ],
        "user_bio": [
          "대외활동 | 휴학생 | 취준일기 🪽과 학생회 2년 연임 🪽<mark>이니스프리</mark> 대학생 에디터 3기 / 4기"
        ],
        "transcription_text": []
      },
      "is_video": false,
      "media_url": null,
      "thumbnail_url": null,
      "account_id": "019f12d8-3e0f-7c74-afc6-e14405bd1523"
    },
    "… 2 more"
  ]
}
```

## As an MCP call

```json
{
  "name": "solari_instagram_content_search",
  "arguments": {
    "query": "이니스프리 그린티",
    "limit": 3
  }
}
```

## Notes

- The index covers KR, JP, US, and TW only, holding roughly the most recent 6 months. A since older than that returns nothing.
- total is exact up to 10,000 and stops there.
- Korean-aware analysis is combined with n-gram partial matching.

## Related tools

- [`solari_instagram_content_aggregate`](https://solari.sh/docs/tools/instagram-content-aggregate.md)
- [`solari_instagram_content_batch`](https://solari.sh/docs/tools/instagram-content-batch.md)
- [`solari_tiktok_content_search`](https://solari.sh/docs/tools/tiktok-content-search.md)
