# SOLARI > SOLARI CLI와 MCP: 터미널에서 쓰는 크리에이터·브랜드 데이터. ## 개요 SOLARI CLI·MCP로 SOLARI가 모은 Instagram, TikTok, Threads 데이터를 터미널, 스크립트, AI 에이전트에서 쓸 수 있습니다. 도구는 세 묶음입니다: - catalog: SOLARI에 이미 있는 계정과 게시물. - insight: 순위, 비슷한 계정, 광고, 트렌드처럼 SOLARI가 계산한 결과. - fetch: 플랫폼에서 바로 수집하는 계정, 게시물, Instagram 해시태그. ```console $ solari insight instagram account similar username=oliveyoung_official limit=10 ``` 터미널이나 명령을 실행하는 에이전트에서는 CLI를, Claude Desktop·ChatGPT 같은 앱에서는 MCP를 쓰세요. ## 설치 **macOS** Shell: ```bash curl -fsSL https://solari.sh/install | sh ``` Homebrew: ```bash brew install brandazine/solari/solari ``` npm: ```bash npm install -g @brandazine/solari ``` uv: ```bash uv tool install solari-cli ``` uv tool은 CLI를 별도 환경에 설치하고 PATH에 추가합니다. 그래서 프로젝트 의존성과 충돌하지 않습니다. **Windows** PowerShell: ```powershell irm https://solari.sh/install.ps1 | iex ``` npm: ```bash npm install -g @brandazine/solari ``` uv: ```bash uv tool install solari-cli ``` uv tool은 CLI를 별도 환경에 설치하고 PATH에 추가합니다. 그래서 프로젝트 의존성과 충돌하지 않습니다. **Linux** Shell: ```bash curl -fsSL https://solari.sh/install | sh ``` npm: ```bash npm install -g @brandazine/solari ``` uv: ```bash uv tool install solari-cli ``` uv tool은 CLI를 별도 환경에 설치하고 PATH에 추가합니다. 그래서 프로젝트 의존성과 충돌하지 않습니다. ```console $ solari --version 1.0.1 ``` ## 빠른 시작 ```console $ solari auth login # sign in through the browser $ solari # lists catalog, insight, and fetch $ solari catalog instagram account search --help # parameters only $ solari catalog instagram account search query=innisfree brands_only=true limit=3 ``` 결과로 받은 username이나 account_id를 다음 도구에 넣으세요: ```console $ solari insight instagram brand ad stats username=innisfreeofficial ``` ## 명령 구조 ```console $ solari insight instagram brand # lists the group $ solari insight instagram brand overview username=innisfreeofficial ``` 인자는 key=value 쌍입니다. 배열은 JSON이나 쉼표 목록(post_ids=a,b)으로 넣습니다. - `solari help all` — 모든 명령·도구·파라미터를 한 페이지로 보여 줍니다. 최근 7일 안에 추가된 도구에는 NEW가 붙습니다. - `solari get ` — 도구 실행만 합니다. 경로가 덜 끝나면 목록 대신 실패합니다. - `solari cache refresh` — 도구 목록을 바로 다시 받고, 바뀐 도구를 보여 줍니다. > 새 도구는 CLI 업데이트 없이 추가됩니다. note: SOLARI tools changed가 보이면 solari help all을 실행하세요. ## 인증 - `solari auth login` — 브라우저로 로그인합니다. SSH나 에이전트 환경에서는 링크를 대신 출력합니다. --add를 붙이면 다른 계정도 추가로 로그인합니다. - `solari auth list · switch ` — 로그인해 둔 계정을 보거나, 브라우저 없이 계정을 바꿉니다. - `solari auth status` — 계정과 로그인 만료 시각을 보여 줍니다. 종료 코드 3이면 다시 로그인해야 합니다. - `solari auth logout` — 로그아웃합니다. --all은 모든 계정에서 로그아웃합니다. 브라우저가 CLI를 실행한 컴퓨터로 돌아갈 수 없으면(SSH, 컨테이너) 로그인 후 주소창의 URL을 복사해 프롬프트에 붙여 넣으세요. ## 크레딧과 사용량 성공한 도구 호출만 크레딧을 차감합니다. 크레딧은 계정의 선불 잔액에서 빠지고 CLI, MCP, REST API가 이 잔액을 같이 쓰며, 여러 페이지로 나뉜 결과는 페이지마다 따로 호출한 것으로 셉니다. 실패한 호출, 도구 목록, 앱 카탈로그, 계정 정보, 피드백, 잔액 확인은 무료입니다. ```console $ solari usage ``` 플랜, 남은 크레딧과 만료일, 최근 30일 과금 호출 수를 보여 줍니다. 무료이고 잔액이 0이어도 동작합니다. MCP에서는 solari_usage_get을 쓰세요. 잔액이 0이면 호출이 CREDIT_EXHAUSTED(REST: HTTP 402)로 실패하고, 차감되지 않습니다. 다음에 할 일은 오류 메시지에 나옵니다. 플랜·체험·추가 크레딧: https://solari.sh/pricing · 내 잔액: https://solari.brandazine.com/settings/billing ## 출력과 파이프 결과는 표준 출력, 안내는 표준 에러로 나가서 파이프에는 데이터만 넘어갑니다. - `--json` — 가공하지 않은 JSON. 데이터는 content[0].text 안의 JSON 문자열입니다. - `--ndjson` — 한 줄에 JSON 객체 하나. total 같은 값은 표준 에러로 나갑니다. - `--verbose, -v` — 진행 상황을 표준 에러로 출력합니다. 비밀 값은 가립니다. 게시물마다 assets에 미디어 파일이 순서대로 들어 있고, 각 asset_url로 바로 내려받을 수 있습니다. 저장된 사본이므로, 최고 화질은 solari instagram download content나 solari tiktok download content로 받으세요. ```console $ solari catalog instagram account posts username=innisfreeofficial limit=200 --ndjson \ | jq -r '.assets[].asset_url | select(.)' > urls.txt $ aria2c -i urls.txt -d media -j 8 ``` ## 에이전트 피드백 에이전트가 SOLARI로 작업을 끝낼 수 없으면(데이터나 기능이 없음, 결과 부족, 틀린 값, 계속 실패하는 도구) 묻지 않고 SOLARI 팀에 피드백을 보내고 한 줄로 알려 줍니다. 개인정보는 빼고 보내며, SOLARI가 저장 전에 이메일, 전화번호, 키를 한 번 더 지웁니다. ```console $ solari feedback "brand ad posts returned 3 rows for 24 months" category=insufficient_results ``` ## 설정 설정은 ~/.solari/config.json에 저장됩니다. 환경변수를 주면 그 명령에서만 설정보다 우선합니다. ```console $ solari config list $ solari config set server https://solari.sh ``` - `server · SOLARI_SERVER` — 접속할 SOLARI 서버. 기본값 https://solari.sh. - `cacheTtl · SOLARI_CACHE_TTL` — 로컬 도구 목록을 최신으로 보는 시간(초). 기본 900이고, 0이면 매번 서버에 묻습니다. - `callTimeout · SOLARI_CALL_TIMEOUT` — 도구 호출을 기다리는 시간(초). 기본 150. - `SOLARI_TOKEN` — 저장된 로그인 대신 쓸 액세스 토큰이나 API key. '내 코드에서 쓰기'를 참고하세요. - `SOLARI_HOME` — SOLARI 파일을 ~/.solari 대신 다른 곳에 저장합니다. - `SOLARI_NO_UPDATE_CHECK=1` — 하루 한 번 하는 업데이트 확인을 끕니다. ## 에이전트 ```text set up solari.sh/get-started.md ``` 코딩 에이전트에 위 한 줄을 주면 설정을 끝냅니다. 설치 스크립트도 이 컴퓨터에서 찾은 에이전트(Claude Code, Codex, Grok Build, Antigravity CLI, OpenCode)에 CLI를 등록합니다. CLAUDE.md나 프로젝트의 AGENTS.md는 건드리지 않습니다. ```bash solari init # register again, choosing agents solari init --remove # undo ``` ### 에이전트용 문서 문서 주소 뒤에 .md를 붙이면 마크다운으로 받습니다(?lang=ko·?lang=ja로 언어 선택). /llms.txt는 전체 색인, /llms-full.txt는 전체 문서 한 파일입니다. ## 내 코드에서 쓰기 같은 도구를 REST API, TypeScript·Python SDK, MCP로도 쓸 수 있고, 토큰 하나로 모두 씁니다. 전체 레퍼런스: https://solari.sh/api ```console $ solari auth token ``` 8시간 동안 유효한 액세스 토큰을 출력합니다. 비밀로 관리하세요. CI, 서버, 예약 작업에는 https://solari.brandazine.com/me/api-keys 에서 API key(solari_sk_…)를 만들어 쓰세요. 둘 중 하나를 SOLARI_TOKEN에 넣으면 CLI와 SDK가 로그인 없이 동작하고, HTTP 호출은 bearer 토큰으로 보냅니다: ```console $ export SOLARI_TOKEN= $ solari catalog instagram account search query=nike --json $ curl -sS https://solari.sh/mcp/api/v1/tools/solari_catalog_instagram_account_search \ -H "Authorization: Bearer $SOLARI_TOKEN" \ -H "Content-Type: application/json" \ -d '{"query":"nike","limit":3}' ``` ## MCP로 연결하기 앱에 아래 원격 MCP 주소를 추가하세요. 처음 연결하면 브라우저가 열리고 로그인 화면이 나옵니다. ```text https://solari.sh/mcp ``` ### Claude Desktop 설정 → Customize를 여세요. ![Claude Desktop 설정 사이드바. 맨 아래에 Customize가 있습니다.](https://clip-pub.bzine.co/docs/claude-desktop-settings.webp) _Settings → Customize_ Connectors에서 Add를 누르고 이름과 주소를 입력하세요. ![Claude Desktop의 Add custom connector 창. 이름과 SOLARI MCP 주소가 채워져 있습니다.](https://clip-pub.bzine.co/docs/claude-desktop-add-connector.webp) _Connectors → Add → Add custom connector_ Continue를 누르고 로그인하면 끝입니다. claude.ai도 같습니다. ### Claude Code ```bash claude mcp add --transport http solari https://solari.sh/mcp ``` /mcp를 실행하면 연결 상태를 보거나 로그인할 수 있습니다. ### ChatGPT 설정 → Connectors에서 주소를 커스텀 커넥터로 추가하고 로그인하세요(유료 요금제 전용). ### 그 밖의 호스트 원격 MCP를 지원하는 앱은 대부분 아래 항목을 넣으면 됩니다: ```json { "mcpServers": { "solari": { "url": "https://solari.sh/mcp" } } } ``` > 로컬 MCP 서버만 실행하는 앱은 연결할 수 없으니 CLI를 쓰세요. ## 오류와 종료 코드 - `0` — 성공. - `1` — 도구나 서버 쪽에서 실패했습니다. - `2` — 잘못된 입력입니다. 없는 경로, 빠진 인자, 잘못된 값 중 하나입니다. - `3` — 로그인이 필요합니다. 사람만 끝낼 수 있으니 에이전트는 다시 시도하지 말고 사용자에게 알려야 합니다. ### 자주 보는 도구 오류 - `auth expired, reconnect the connector` — solari auth login을 다시 실행하거나, 앱에서 커넥터를 다시 연결하세요. - `SOLARI access denied (403)` — 다시 로그인하세요. - `SOLARI rate limit` — 요금제의 분당 호출 한도를 넘었습니다. 메시지에 나온 초만큼 기다리세요. - `SOLARI upstream timed out` — 호출이 90초(집계·트렌드 묶음 도구는 120초)를 넘겼습니다. 범위를 좁히거나 limit을 낮추세요. - `CREDIT_EXHAUSTED` — 크레딧이 없거나, 이메일 인증·카드 등록이 끝나지 않아 체험이 시작되지 않았습니다. 차감되지 않습니다. 다시 시도하지 말고 solari usage로 확인한 뒤 오류 메시지를 따르세요. - `ACCOUNT_BLOCKED` — 이 계정의 도구 호출이 일시 중지됐습니다. 차감되지 않았고, 문의할 곳은 오류 메시지에 나옵니다. ## 데이터 범위 - content search·content aggregate: KR·JP·US·TW, 대략 최근 6개월. - 계정·브랜드·게시물 도구: 전체 이력, 지역 제한 없음. KR 데이터가 가장 많습니다. - 건수는 10,000까지 정확합니다. TikTok 검색은 9,800건까지만 페이지를 넘길 수 있습니다. ### 식별자 - account_id와 post_id는 플랫폼마다 다릅니다. Instagram, TikTok, Threads id는 섞어 쓸 수 없습니다. - account_id나 username을 넘기세요. 둘 다 있으면 account_id가 우선입니다. - 공개 게시물 id: Instagram은 slug, TikTok은 video_id, Threads는 code. ## 자주 묻는 질문 ### SOLARI 데이터를 수정할 수 있나요? 아니요. SOLARI 데이터는 바꾸거나 지울 수 없습니다. fetch 도구는 공개 계정과 게시물을 수집하기만 합니다. ### Claude 같은 에이전트에서도 쓸 수 있나요? 네. solari init으로 에이전트에 CLI를 등록하거나, MCP로 연결하세요. ### 검색 결과가 없다고 나와요. 계정 검색은 사용자명이나 표시 이름에 입력한 글자가 그대로 들어 있어야 찾습니다. 콘텐츠 검색은 KR·JP·US·TW 지역과 최근 6개월 안의 날짜로 검색하세요. ### 요금이 있나요? 도구 호출은 선불 크레딧을 쓰고, 성공한 도구 호출만 크레딧을 차감합니다. 이메일 인증을 마친 새 계정은 카드를 등록하면 30일간 5,000 크레딧을 한 번 체험할 수 있습니다. 청구나 자동 유료 전환은 없습니다. 플랜과 가격: https://solari.sh/pricing ## 도구 레퍼런스 CLI·MCP 도구 전체를 세 묶음으로 나눴습니다. catalog는 SOLARI에 이미 있는 데이터, insight는 SOLARI가 계산한 결과, fetch는 플랫폼에서 바로 수집한 데이터입니다. ### solari catalog instagram account search > 사용자 이름, 이름, 소개글 문구로 SOLARI에 모인 Instagram 계정을 찾습니다. account_id가 필요할 때 쓰세요. - **CLI**: `solari catalog instagram account search` - **MCP 도구**: `solari_catalog_instagram_account_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 SOLARI가 모아 둔 Instagram 계정을 사용자 이름, 표시 이름, 소개글 단어로 검색합니다. Instagram 자체 검색이 아닙니다. 여기서 얻은 account_id를 다른 Instagram 도구에 넣으면 됩니다. **언제 쓰나요** — 이름이나 사용자 이름은 알지만 account_id는 아직 없을 때. **돌려주는 값** — 일치하는 계정. 가장 가까운 계정부터 나옵니다. #### 파라미터 - `query` (string, 필수) — 사용자 이름이나 표시 이름. query_type=bio면 프로필 소개글에 있는 단어. - `query_type` (enum, 선택, 기본값 "auto") — 검색할 곳. 사용자 이름, 표시 이름, 소개글, 또는 전부(auto) 중에서 고릅니다. 값: `auto`, `username`, `full_name`, `bio`. - `brands_only` (boolean, 선택, 기본값 false) — 알려진 브랜드 계정만 찾습니다. 브랜드를 찾을 때 켜세요. - `limit` (integer, 선택, 기본값 8, 1–50) — 가져올 계정 수. - `region` (string, 선택, ≤ 8 chars) — KR, JP 같은 국가 코드. 빼면 모든 지역에서 찾습니다. #### 응답 ##### `Response` - `found` (boolean) — 일치하는 계정이 있는지 여부. - `items` (object[]) — 일치한 계정. 가장 가까운 계정부터 나옵니다. ##### `items[]` - `account_id` (uuid) — 다른 Instagram 도구에 넣을 account_id. - `username` (string) — Instagram 사용자 이름. - `full_name` (string) — 표시 이름. - `biography` (string) — 프로필 소개글. - `follower_count` (integer) — 팔로워 수. - `region` (string) — 지역 코드. - `is_verified` (boolean) — 인증 배지. - `profile_pic_url` (string) — 프로필 사진 URL. #### 예시 ```console $ solari catalog instagram account search query=oliveyoung brands_only=true limit=5 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "found": true, "items": [ { "account_id": "018cab6d-1648-7071-9734-c47a2be2fd19", "username": "oliveyoung_official", "full_name": "올리브영 OLIVE YOUNG", "biography": "ALL LIVE YOUNG 🫒\nALL LIVE BETTER @olivebetter.official", "follower_count": 1199628, "region": "KR", "is_verified": true, "profile_pic_url": "https://dcr.bzine.co/instagram/users/oliveyoung_official/profile-picture" }, { "account_id": "018dc63c-31b5-740f-bde0-2c00931385e1", "username": "oliveyoung_global", "full_name": "OLIVE YOUNG Global", "biography": "Korea's No.1 Health & Beauty Store\n✈️ FREE SHIPPING on orders over $60", "follower_count": 535949, "region": "KR", "is_verified": true, "profile_pic_url": "https://dcr.bzine.co/instagram/users/oliveyoung_global/profile-picture" }, { "account_id": "018cabcf-e60e-70af-95eb-eff777ce5195", "username": "oliveyoung_magazine", "full_name": "올리브영 매거진", "biography": "내 일상과 가까운 뷰티 매거진", "follower_count": 142316, "region": "KR", "is_verified": false, "profile_pic_url": "https://dcr.bzine.co/instagram/users/oliveyoung_magazine/profile-picture" }, "… 2 more" ] } ``` #### MCP 호출 ```json { "name": "solari_catalog_instagram_account_search", "arguments": { "query": "oliveyoung", "brands_only": true, "limit": 5 } } ``` #### 주의사항 - 이름이 사용자 이름이나 표시 이름에 들어 있어야 찾을 수 있습니다. 별명이나 줄임말로는 대개 안 나옵니다. - 브랜드를 찾을 때는 brands_only=true로 두세요. 팬 계정이 빠집니다. - region을 넣으면 그 국가 계정만 남습니다. 꼭 필요할 때만 넣으세요. #### 관련 도구 - [`solari_catalog_instagram_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-profile.md?lang=ko) - [`solari_catalog_instagram_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-posts.md?lang=ko) - [`solari_catalog_tiktok_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-search.md?lang=ko) ### solari insight instagram account similar > 비슷한 Instagram 계정을 찾을 때 쓰세요. - **CLI**: `solari insight instagram account similar` - **MCP 도구**: `solari_insight_instagram_account_similar` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 비슷한 네트워크에 있는 Instagram 계정을 찾습니다. 함께 광고한 계정이 아니라 가까이 있는 계정을 보여 줍니다. **언제 쓰나요** — 비슷한 계정이 필요할 때. 광고 협업 상대는 brand top collaborators 도구로 찾으세요. **돌려주는 값** — 비슷한 계정. 가장 가까운 계정부터 나옵니다. #### 파라미터 - `username` (string, 필수) — Instagram 사용자 이름. @는 빼고 넣으세요. - `limit` (integer, 선택, 기본값 50, 1–100) — 가져올 비슷한 계정 수. #### 응답 ##### `Response` - `account_id` (uuid) — 기준 계정의 id. - `user` (object) — 기준 계정의 프로필. - `params` (object) — 실제로 적용한 설정. - `results` (object[]) — 비슷한 계정. 점수가 높은 순서입니다. - `diagnostics` (object) — 검색 방식. - `note` (string) — results가 비어 있을 때만 옵니다. 다음에 할 일을 알려 줍니다. - `next` (string) — results가 비어 있을 때만 옵니다. 계정을 수집하는 명령입니다. ##### `results[]` - `account_id` (uuid) — 비슷한 계정의 account_id. - `username` (string) — 사용자 이름. - `full_name / bio` (string) — 표시 이름과 소개글. - `score` (number) — 이 응답 안에서 매긴 유사도 점수. - `follower_count` (integer) — 팔로워 수. - `region` (string) — 지역 코드. - `has_collaborated` (boolean) — 기준 계정과 광고 협업을 한 적이 있는지. - `last_collaboration_date` (date | null) — 가장 최근 협업 날짜. #### 예시 ```console $ solari insight instagram account similar username=oliveyoung_official limit=8 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "account_id": "018cab6d-1648-7071-9734-c47a2be2fd19", "user_id": "018cab6d-1648-7071-9734-c47a2be2fd19", "params": { "k": 8, "hops": 3, "max_rank_to_use": 25 }, "diagnostics": { "neighbors_used": 6137, "unique_terms": 25, "build_ms": 9419, "algorithm": "distance_weighted_jaccard", "max_rank_used": 25, "target_related_count": 25 }, "user": { "account_id": "018cab6d-1648-7071-9734-c47a2be2fd19", "user_id": "018cab6d-1648-7071-9734-c47a2be2fd19", "username": "oliveyoung_official", "full_name": "올리브영 OLIVE YOUNG", "biography": null, "profile_pic_url": "https://dcr.bzine.co/instagram/users/oliveyoung_official/profile-picture", "follower_count": 1209835, "region": "KR", "is_verified": null }, "results": [ { "account_id": "018cabd4-926b-7a58-b0cb-11dfc7c37006", "user_id": "018cabd4-926b-7a58-b0cb-11dfc7c37006", "username": "gs25_official", "score": 0.1875, "profile_pic_url": "https://dcr.bzine.co/instagram/users/gs25_official/profile-picture", "follower_count": 1018225, "median_views": null, "full_name": "대한민국 대표 편의점 GS25", "bio": "더 재미있게 더 실속있게\n오늘 가장 최신의 트렌드를 만나는\n#25매거진 #재미있는GS25 #라이프스타일플랫폼", "region": "KR", "has_collaborated": false, "last_collaboration_date": null, "collaborated_with": [] }, { "account_id": "018cab6d-19b5-7545-b202-4738e83acd81", "user_id": "018cab6d-19b5-7545-b202-4738e83acd81", "username": "romandyou", "score": 0.1, "profile_pic_url": "https://dcr.bzine.co/instagram/users/romandyou/profile-picture", "follower_count": 845616, "median_views": null, "full_name": "롬앤 romand official", "bio": "멀멀한 ☆초미녀☆ 신상으로 돌아왔어요!\n롬앤 𝗡𝗘𝗪 레오파드 산리오캐릭터즈 에디션\n올리브영 온/오프라인 𝗢𝗣𝗘𝗡 💜🩵\n⁺‧₊‧⁺‧₊‧⁺‧₊‧⁺‧₊‧⁺‧₊‧⁺‧₊‧⁺‧₊‧⁺‧₊‧", "region": "KR", "has_collaborated": false, "last_collaboration_date": null, "collaborated_with": [] } ] } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_account_similar", "arguments": { "username": "oliveyoung_official", "limit": 8 } } ``` #### 주의사항 - account_id가 아니라 username을 넣으세요. - 브랜드와 광고한 크리에이터는 brand top collaborators 도구로 찾으세요. - results가 비어 있으면 solari fetch instagram account username=… 을 실행한 뒤 다시 호출하세요. 비슷한 계정은 계정을 수집할 때 함께 모은 데이터로 찾습니다. #### 관련 도구 - [`solari_catalog_instagram_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-search.md?lang=ko) - [`solari_fetch_instagram_account`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-account.md?lang=ko) - [`solari_insight_instagram_brand_top_collaborators`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-top-collaborators.md?lang=ko) ### solari insight instagram brand overview > Instagram 브랜드의 프로필과 광고 이력. - **CLI**: `solari insight instagram brand overview` - **MCP 도구**: `solari_insight_instagram_brand_overview` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 브랜드 프로필과, 그 브랜드 광고에 참여한 크리에이터 id·광고 게시물 id를 보여 줍니다. 게시물 내용은 그 id를 content batch 도구에 넣어 불러오세요. **언제 쓰나요** — 브랜드 분석을 시작할 때. 정확한 광고 개수는 brand ad stats 도구로 확인하세요. **돌려주는 값** — 브랜드 프로필, 크리에이터 id, 광고 게시물 id. #### 파라미터 - `username` (string, 필수) — 브랜드의 Instagram 사용자 이름. @는 빼고 넣으세요. - `full` (boolean, 선택, 기본값 false) — 처음 20개가 아니라 id 목록 전체를 받습니다. #### 응답 ##### `Response` - `information` (object) — 브랜드 프로필. user_id, username, full_name, bio, follower_count가 들어 있습니다. - `all_influencers_id` (uuid[]) — 브랜드 광고를 만든 크리에이터의 account_id. 기본으로 처음 20개만 줍니다. - `all_influencers_count` (integer) — 자르기 전 전체 크리에이터 수. - `all_influencers_truncated` (boolean) — 목록이 미리보기면 true. - `all_campaign_posts_id` (uuid[]) — 광고 게시물 id. 기본으로 처음 20개만 줍니다. - `all_campaign_posts_count` (integer) — 자르기 전 전체 게시물 수. - `all_campaign_posts_truncated` (boolean) — 목록이 미리보기면 true. #### 예시 ```console $ solari insight instagram brand overview username=innisfreeofficial ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "information": { "user_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "full_name": "INNISFREE | 이니스프리", "bio": "NATURE MEETS KOREAN SKIN SCIENCE", "follower_count": 847619, "brand_id": null }, "all_influencers_id": [ "01935f3d-8188-727e-a0bb-09e54aadfdac", "018caf6e-abfd-73da-88ad-11a56c39358b", "019a0061-b1d4-7adb-8ea4-1c5572dca38c", "… 17 more" ], "all_campaign_ids": [], "all_campaign_posts_id": [ "019f505f-f8be-7e88-ae08-6fba999950b1", "019f5060-3449-779e-a08b-d6d49add90cd", "019f4342-3357-7418-916c-da1c44468308", "… 17 more" ], "post_id_to_campaign_id": {}, "all_influencers_count": 93, "all_influencers_truncated": true, "all_campaign_posts_count": 100, "all_campaign_posts_truncated": true } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_brand_overview", "arguments": { "username": "innisfreeofficial" } } ``` #### 주의사항 - account_id가 아니라 username을 넣으세요. 없는 username이면 404가 나옵니다. - full=true면 목록마다 id를 최대 100개까지 줍니다. 정확한 합계는 brand ad stats 도구로 확인하세요. #### 관련 도구 - [`solari_insight_instagram_brand_ad_stats`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-ad-stats.md?lang=ko) - [`solari_catalog_instagram_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-batch.md?lang=ko) - [`solari_insight_instagram_brand_ad_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-ad-posts.md?lang=ko) ### solari insight instagram brand ad stats > Instagram 브랜드가 광고를 얼마나 했는지. - **CLI**: `solari insight instagram brand ad stats` - **MCP 도구**: `solari_insight_instagram_brand_ad_stats` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 브랜드의 최근 광고를 정확한 숫자로 셉니다. 협찬 게시물 수, 크리에이터 수, 재생 수 합계를 줍니다. **언제 쓰나요** — 답이 숫자일 때. brand overview가 주는 id를 세지 말고 이 도구를 쓰세요. **돌려주는 값** — 광고 게시물 수, 크리에이터 수, 재생 수 합계. #### 파라미터 - `username` (string, 필수) — 브랜드의 Instagram 사용자 이름. @는 빼고 넣으세요. #### 응답 ##### `Response` - `total_ad_posts` (integer) — 기간 안의 협찬 게시물 수. 정확한 값입니다. - `unique_creator_count` (integer) — 함께한 크리에이터 수(중복 제외). - `total_play_count` (integer) — 재생 수 합계. - `play_count_covered_posts` (integer) — 재생 수 합계에 들어간 게시물 수. total_ad_posts보다 작으면 합계는 최솟값입니다. - `window_months` (integer) — 기간 길이(개월). #### 예시 ```console $ solari insight instagram brand ad stats username=innisfreeofficial ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "total_ad_posts": 405, "unique_creator_count": 360, "total_play_count": 27357941, "play_count_covered_posts": 405, "window_months": 3 } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_brand_ad_stats", "arguments": { "username": "innisfreeofficial" } } ``` #### 주의사항 - account_id가 아니라 username을 넣으세요. #### 관련 도구 - [`solari_insight_instagram_brand_ad_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-ad-posts.md?lang=ko) - [`solari_insight_instagram_brand_overview`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-overview.md?lang=ko) ### solari insight instagram brand ad posts > Instagram 브랜드의 광고 게시물. - **CLI**: `solari insight instagram brand ad posts` - **MCP 도구**: `solari_insight_instagram_brand_ad_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 브랜드의 광고 게시물을 크리에이터 정보와 함께 보여 줍니다. **언제 쓰나요** — 합계만이 아니라 게시물 자체가 필요할 때. **돌려주는 값** — 광고 게시물. 합계는 sort=recent일 때만 정확합니다. #### 파라미터 - `username` (string, 필수) — 브랜드의 Instagram 사용자 이름. @는 빼고 넣으세요. - `sort` (enum, 선택, 기본값 "recent") — recent는 기간 전체를 훑습니다. engagement는 최근 일부만 순위를 매깁니다. 값: `recent`, `engagement`. - `months` (integer, 선택, 기본값 3, 1–24) — 몇 개월 전까지 볼지. - `limit` (integer, 선택, 기본값 50, 1–200) — 한 페이지에 가져올 게시물 수. - `offset` (integer, 선택, 기본값 0, ≥ 0) — 건너뛸 게시물 수. #### 응답 ##### `Response` - `items` (object[]) — 협찬 게시물. - `total` (integer) — sort=recent일 때 기간 전체의 정확한 개수. - `has_more` (boolean) — 다음 페이지가 있는지 여부. - `ranking_window` (integer | null) — 참여 순위를 매긴 범위. 기간 전체가 아니라 일부만 정렬했을 때 채워집니다. ##### `items[]` - `id` (uuid) — 게시물 id. - `slug` (string) — Instagram shortcode. - `text` (string) — 캡션. - `posted_at` (timestamp) — 게시 시각(UTC). - `username / user_id / account_id` (string) — 게시물을 올린 크리에이터. - `like_count / comment_count / play_count` (integer) — 참여 지표. - `media_type` (string) — 게시물 형식. - `media / media_url / thumbnail_url` (string) — 미디어 링크. - `virtual_campaign` (object | null) — 캠페인 묶음. 캠페인을 찾았을 때만 있습니다. - `assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null입니다. #### 예시 ```console $ solari insight instagram brand ad posts username=innisfreeofficial limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "items": [ { "id": "01a062a0-2747-72eb-b20d-670cf30f2c96", "slug": "DcygG05GrA-", "text": "#광고 요즘 부쩍 신경 쓰이기 시작한 모공 고민을 직접 경험해보고 싶어 방문한 이니스프리 레티놀 시카 강의실 무빙 팝업💙\n\n업그레이드된 레티놀 시카 모공 흔적 앰플을 직접 테스트해볼 수 있을 뿐 아니라, 제품을 알아보고 체험할 수 있는 다양한 프로그램과 이벤트가 마련되어 있어 더욱 재미있게 둘러볼 수 있었어요.\n\n특히 오늘 방문했을 때는 정말 많은 분들이 찾아와서 놀랐는데요. 대기 줄이 길게 …", "posted_at": "2026-09-02T14:56:19Z", "virtual_campaign": null, "username": "_mini_mming", "user_id": "018caf92-e08a-78a2-b9c3-59f6f5740182", "profile_picture_url": null, "like_count": 384, "comment_count": 4, "thumbnail_url": null, "media_url": null, "media": [], "media_type": "post", "account_id": "018caf92-e08a-78a2-b9c3-59f6f5740182" }, "… 1 more" ], "total": 405, "has_more": true, "ranking_window": null } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_brand_ad_posts", "arguments": { "username": "innisfreeofficial", "limit": 2 } } ``` #### 주의사항 - username을 넣으세요. 없는 username이면 404가 나옵니다. - sort=engagement는 최근 일부 게시물만 순위를 매깁니다. 얼마나 거슬러 봤는지는 ranking_window에 나옵니다. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_brand_ad_stats`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-ad-stats.md?lang=ko) - [`solari_insight_instagram_account_ad_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-account-ad-posts.md?lang=ko) ### solari insight instagram brand top collaborators > Instagram 브랜드와 협업한 크리에이터. - **CLI**: `solari insight instagram brand top collaborators` - **MCP 도구**: `solari_insight_instagram_brand_top_collaborators` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 브랜드 광고에 참여한 크리에이터를 참여 횟수가 많은 순서로 보여 줍니다. **언제 쓰나요** — 브랜드가 누구와 일했는지 볼 때. 크리에이터 쪽에서 보려면 account collabs 도구를 쓰세요. **돌려주는 값** — 협업 횟수 순으로 정렬한 크리에이터. #### 파라미터 - `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) — 브랜드 사용자 이름. account_id를 넣으면 무시됩니다. - `promotion` (enum, 선택, 기본값 "all") — 전체 게시물, 프로모션 게시물만, 프로모션이 아닌 게시물만 중에서 고릅니다. 값: `all`, `true_only`, `false_only`. - `limit` (integer, 선택, 기본값 20, 1–1000) — 가져올 크리에이터 수. - `offset` (integer, 선택, 기본값 0, ≥ 0) — 건너뛸 크리에이터 수. #### 응답 ##### `Response` - `brand_id` (uuid) — 찾은 브랜드의 account_id. - `promotion_filter` (string) — 적용한 프로모션 필터. - `items` (object[]) — 크리에이터. 협업 횟수가 많은 순서입니다. - `total_count` (integer) — 필터에 맞는 크리에이터 수. ##### `items[]` - `creator_id` (uuid) — 크리에이터 account_id. - `username / full_name` (string) — 사용자 이름과 표시 이름. - `profile_pic_url` (string) — 프로필 사진. - `follower_count` (integer) — 팔로워 수. - `collaboration_count` (integer) — 브랜드와 협업한 게시물. #### 예시 ```console $ solari insight instagram brand top collaborators username=innisfreeofficial limit=5 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "brand_id": "018cabce-14cc-7544-8890-7811ec33ef74", "promotion_filter": "all", "items": [ { "creator_id": "0195474c-8ee3-7690-a385-71b2913e31b5", "username": "donge_cos", "full_name": "💞동이💞", "profile_pic_url": "https://dcr.bzine.co/instagram/users/donge_cos/profile-picture", "follower_count": 83354, "collaboration_count": 31 }, { "creator_id": "018ecc75-55d8-70a7-a348-d370aa504ed9", "username": "beinny_motd", "full_name": "베이니 BEINNY", "profile_pic_url": "https://dcr.bzine.co/instagram/users/beinny_motd/profile-picture", "follower_count": 205754, "collaboration_count": 29 }, "… 3 more" ], "total_count": 2331 } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_brand_top_collaborators", "arguments": { "username": "innisfreeofficial", "limit": 5 } } ``` #### 주의사항 - 그 크리에이터의 게시물은 creator_id 값을 brand collaborator posts 도구에 100개씩 넣어 불러오세요. #### 관련 도구 - [`solari_insight_instagram_brand_collaborator_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-collaborator-posts.md?lang=ko) - [`solari_insight_instagram_account_collabs`](https://clip-pub.bzine.co/docs/tools/insight-instagram-account-collabs.md?lang=ko) ### solari insight instagram brand collaborator posts > 브랜드와 협업한 크리에이터들의 광고 게시물. - **CLI**: `solari insight instagram brand collaborator posts` - **MCP 도구**: `solari_insight_instagram_brand_collaborator_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 한 브랜드에 대해 크리에이터 최대 100명의 광고 게시물을 불러옵니다. 최근 기간이 아니라 전체 기간입니다. **언제 쓰나요** — 여러 크리에이터의 게시물을 한 번에 봐야 할 때. **돌려주는 값** — 크리에이터별 합계와 게시물. 참여가 높은 순서입니다. #### 파라미터 - `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) — 브랜드 사용자 이름. account_id를 넣으면 무시됩니다. - `account_ids` (uuid[], 필수, 1–100 items, uuid) — 게시물을 불러올 크리에이터 account_id. 최대 100개. #### 응답 ##### `Response` - `(top level)` (object[]) — 크리에이터 목록. 최상위 배열로 옵니다. ##### `[]` - `user_id` (uuid) — 크리에이터 account_id. - `username / full_name` (string) — 사용자 이름과 표시 이름. - `follower_count` (integer) — 팔로워 수. - `post_count` (integer) — 브랜드를 대상으로 한 게시물. - `reels_count / images_count` (integer) — 형식별 개수. - `posts` (object[]) — 게시물 목록. id, slug, text, posted_at, like_count, comment_count, play_count가 들어 있습니다. - `like_count_avg / comment_count_avg` (number | null) — 평균 참여. 계산된 경우에만 있습니다. - `posts[].assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 asset_url, media_type, video_duration이 있습니다. - `posts[].assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null입니다. #### 예시 ```console $ solari insight instagram brand collaborator posts username=innisfreeofficial account_ids='["0195474c-8ee3-7690-a385-71b2913e31b5","018ecc75-55d8-70a7-a348-d370aa504ed9"]' ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json [ { "user_id": "018ecc75-55d8-70a7-a348-d370aa504ed9", "username": "beinny_motd", "full_name": "베이니 BEINNY", "post_count": 29, "follower_count": 205754, "reels_count": 1, "images_count": 28, "posts": [ { "id": "019c98bc-a666-717d-a5fe-ea96f1345042", "slug": "ByVKkIbnQ8S", "text": "#이니스프리 에서 새롭게 출시된 #구름블러틴트 ☁️💓\n비비드 코튼 잉크 블러버젼이에용\n.\n요즘 이런 블러틴트류 많이 출시돼서 넘 행복해요🥺💛\n이니스프리 블러틴트는 보송보송한 마무리지만 꽤 촉촉하고 가볍게 발리더라구요! 발림성 넘 좋았어요✨\n총 8가지 컬러인데 그중 제 맘에 드는 4가지 컬러는 입술에 발색해서 보여드려용 :) 특히 로즈+핑크 섞인듯한 2호 #로제핑크 완전 추천👍🏻✨\n가격은 9, …", "posted_at": "2019-06-05T14:02:19Z", "virtual_campaign": null, "like_count": 2399, "comment_count": 20, "play_count": null, "username": "beinny_motd", "user_id": "018ecc75-55d8-70a7-a348-d370aa504ed9" }, "… 10 more" ], "like_count_avg": null, "comment_count_avg": null, "synced_at": null }, "… 1 more" ] ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_brand_collaborator_posts", "arguments": { "username": "innisfreeofficial", "account_ids": [ "0195474c-8ee3-7690-a385-71b2913e31b5", "018ecc75-55d8-70a7-a348-d370aa504ed9" ] } } ``` #### 주의사항 - account_ids는 JSON 배열이나 쉼표로 구분한 목록으로 넣으세요. 최대 100개입니다. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_brand_top_collaborators`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-top-collaborators.md?lang=ko) - [`solari_insight_instagram_brand_overview`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-overview.md?lang=ko) ### solari insight instagram brand lookalike content > 브랜드 광고와 비슷한 게시물을 찾을 때 쓰세요. - **CLI**: `solari insight instagram brand lookalike content` - **MCP 도구**: `solari_insight_instagram_brand_lookalike_content` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 브랜드 광고 중 성과가 좋은 게시물과 비슷한 게시물을 찾습니다. 크리에이티브 레퍼런스를 찾을 때 좋습니다. **언제 쓰나요** — 광고량을 재는 게 아니라 레퍼런스가 필요할 때. **돌려주는 값** — 비슷한 게시물과, 기준으로 삼은 브랜드 광고. #### 파라미터 - `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) — 브랜드 사용자 이름. account_id를 넣으면 무시됩니다. - `limit` (integer, 선택, 기본값 30, 1–50) — 가져올 비슷한 게시물 수. - `region` (string, 선택, 기본값 "KR") — KR, JP 같은 국가 코드. #### 응답 ##### `Response` - `items` (object[]) — 비슷한 게시물. - `basis` (object[]) — 검색의 기준이 된 브랜드 자신의 광고 게시물. - `region` (string) — 검색 범위로 삼은 지역. ##### `items[] · basis[]` - `post_id` (uuid) — 다른 콘텐츠 도구에 넣을 게시물 id. - `slug` (string) — 공개 URL에 들어 있는 shortcode. - `author_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 사용자 이름. - `full_name` (string | null) — 표시 이름. - `profile_pic_url` (string | null) — 프로필 사진 URL. - `follower_count` (integer | null) — 작성자 팔로워 수. - `region` (string | null) — 작성자 지역. - `posted_at` (timestamp) — 게시 시각(UTC). - `media_type` (string) — image, video, carousel 중 하나. - `play_count` (integer | null) — 영상 재생 수. 이미지면 null입니다. - `like_count` (integer | null) — 좋아요 수. - `text` (string | null) — 캡션. - `media_url` (string) — 미디어 URL. - `thumbnail_url` (string) — 썸네일 URL. - `score` (number | null) — 순위 점수. 순위가 매겨진 목록이 아니면 null. - `efficiency_score` (number | null) — 작성자 팔로워 수 대비 성과. - `est_percentile` (number | null) — 지역 안 백분위(0~1). - `total_views_3m` (integer | null) — 작성자의 최근 3개월 조회수. - `median_views_3m` (integer | null) — 작성자의 최근 3개월 조회수 중앙값. - `recent_collab_brands` (string[]) — 작성자가 최근 협업한 브랜드. - `item_type` (string) — 항목 종류. 항상 "content". - `content_source` (string | null) — 게시물이 나온 피드. 피드에서 온 게 아니면 null. - `is_saved` (boolean | null) — SOLARI에 이 게시물을 저장했는지. 알 수 없으면 null. - `updated_at` (timestamp | null) — 지표를 마지막으로 갱신한 시각. - `assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null입니다. #### 예시 ```console $ solari insight instagram brand lookalike content username=innisfreeofficial limit=3 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "items": [ { "item_type": "content", "post_id": "019ecb92-a677-7421-8ed6-752efe3d99d0", "author_id": "0196cb39-870a-7a76-9773-0b95789c877d", "username": "boo_rookie", "full_name": null, "profile_pic_url": null, "follower_count": null, "region": null, "posted_at": "2026-06-11T08:14:37Z", "media_type": "video", "play_count": 427258, "like_count": null, "score": null, "efficiency_score": null, "est_percentile": null, "updated_at": null, "media_url": "https://smr-images-b.bzine.co/users/0196cb39-870a-7a76-9773-0b95789c877d/posts/019ecb92-a677-7421-8ed6-752efe3d99d0/medias/019ecb92-a92e-7fc8-b644-69b930f2e197.mp4", "thumbnail_url": "https://bzine.co/cdn-cgi/media/width=480,mode=frame,time=100ms/https://smr-images-a.bzine.co/users/0196cb39-870a-7a76-9773-0b95789c877d/posts/019ecb92-a677-7421-8ed6-752efe3d99d0/medias/019ecb92-a92e-7fc8-b644-69b930f2e1 …", "slug": "DZcD8KXxKwd", "text": null, "brand_match_score": null, "recent_collab_brands": [], "total_views_3m": null, "median_views_3m": null, "is_saved": null, "content_source": "lookalikes_by_top_ad" }, "… 2 more" ], "basis": [ { "item_type": "content", "post_id": "01a04c73-3ec3-7873-9e84-334c644abfe4", "author_id": "0196c474-c96e-71ad-aceb-61af051c81d3", "username": "hwitto_", "full_name": null, "profile_pic_url": null, "follower_count": null, "region": null, "posted_at": null, "media_type": "video", "play_count": 155729, "like_count": null, "score": null, "efficiency_score": null, "est_percentile": null, "updated_at": null, "media_url": "https://smr-images-a.bzine.co/users/0196c474-c96e-71ad-aceb-61af051c81d3/posts/01a04c73-3ec3-7873-9e84-334c644abfe4/medias/01a04c73-4036-7a83-a52a-97b0058e6732.mp4", "thumbnail_url": "https://bzine.co/cdn-cgi/media/width=480,mode=frame,time=100ms/https://smr-images.bzine.co/users/0196c474-c96e-71ad-aceb-61af051c81d3/posts/01a04c73-3ec3-7873-9e84-334c644abfe4/medias/01a04c73-4036-7a83-a52a-97b0058e6732 …", "slug": "DckGrZ6vZiU", "text": null, "brand_match_score": null, "recent_collab_brands": [], "total_views_3m": null, "median_views_3m": null, "is_saved": null, "content_source": "lookalikes_by_top_ad" }, "… 5 more" ], "region": "KR" } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_brand_lookalike_content", "arguments": { "username": "innisfreeofficial", "limit": 3 } } ``` #### 주의사항 - basis가 비어 있으면 기준으로 삼을 광고 게시물이 아직 없다는 뜻입니다. #### 관련 도구 - [`solari_insight_instagram_content_similar`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-similar.md?lang=ko) - [`solari_insight_instagram_brand_ad_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-ad-posts.md?lang=ko) - [`solari_catalog_instagram_content_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-search.md?lang=ko) ### solari catalog instagram account profile > Instagram 계정의 프로필, 성과, 최근 게시물. - **CLI**: `solari catalog instagram account profile` - **MCP 도구**: `solari_catalog_instagram_account_profile` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 Instagram 계정의 프로필, 조회 지표, 최근 게시물과 협업 미리보기를 보여 줍니다. **언제 쓰나요** — 계정 전체를 한눈에 보고 싶을 때. 최근 게시물과 협업도 함께 나옵니다. **돌려주는 값** — 프로필, 성과, 최근 게시물과 협업. #### 파라미터 - `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를 넣으면 무시됩니다. #### 응답 ##### `Response` - `user_id` (uuid) — account_id. - `username / full_name / bio` (string) — 사용자 이름, 표시 이름, 소개글. - `follower_count / following_count` (integer) — 팔로워 수와 팔로잉 수. - `total_post_count` (integer) — 지금까지 올린 게시물 수. - `post_count_3m` (integer) — 최근 3개월 게시물 수. - `is_verified` (boolean) — 인증 배지. - `account_type` (string) — SOLARI가 추정한 계정 성격(브랜드, 크리에이터 등). - `median_views_cur` (integer) — 현재 기간의 조회수 중앙값. - `total_views_cur` (integer) — 현재 기간의 총 조회수. - `ad_count_cur` (integer) — 현재 기간의 협찬 게시물 수. - `median_views_growth_m1` (number) — 지난달 대비 조회수 중앙값 변화율. - `total_views_growth_m1` (number) — 지난달 대비 총 조회수 변화율. - `median_views_region_pct` (number) — 지역 안에서 조회수 중앙값 백분위(0~1). - `total_views_region_pct` (number) — 지역 안에서 총 조회수 백분위(0~1). - `recent_posts` (object[]) — 최근 게시물 미리보기. - `recent_collabs` (object[]) — 최근 광고 협업 미리보기. - `fetched_on_demand` (boolean) — 이번 호출에서 계정을 실시간으로 가져왔으면 true. - `collected_at` (timestamp) — Instagram에서 프로필을 마지막으로 수집한 시각(UTC). - `refreshes_regularly` (boolean) — 정해진 주기로 다시 수집되는 계정인지 여부. #### 예시 ```console $ solari catalog instagram account profile username=innisfreeofficial ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "user_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "full_name": "INNISFREE | 이니스프리", "bio": "NATURE MEETS KOREAN SKIN SCIENCE", "profile_pic_url": "https://dcr.bzine.co/instagram/users/innisfreeofficial/profile-picture", "follower_count": 847619, "total_post_count": 4131, "post_count_3m": 100, "following_count": 17, "is_verified": true, "median_views_cur": 12409, "ad_count_cur": 0, "total_views_cur": 685771, "median_views_growth_m1": 0.04956440835659308, "total_views_growth_m1": 0.39407867587418205, "median_views_region_pct": 0.1736183168163037, "total_views_region_pct": 0.1457900950723917, "recent_posts": [ { "post_id": "01a06275-d974-7fda-98ee-dd3ee15b4dcf", "slug": "DcyMAmUh6FZ", "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 …", "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 …", "play_count": 22467, "like_count": 3224, "video_media_count": 0, "media_count": 1 }, "… 5 more" ], "recent_collabs": [], "account_type": "brand", "fetched_on_demand": false } ``` #### MCP 호출 ```json { "name": "solari_catalog_instagram_account_profile", "arguments": { "username": "innisfreeofficial" } } ``` #### 주의사항 - 카탈로그만 읽습니다. 계정이 아직 카탈로그에 없으면 solari fetch instagram account username=…을 실행한 뒤 다시 시도하세요. - 찾을 수 없다는 오류가 나오면 그 핸들이 SOLARI 데이터에 없다는 뜻입니다. 이름이 바뀌었거나 삭제됐다고 나오면 Instagram에 그 이름의 계정이 없으니 표시 이름으로 검색하세요. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_catalog_instagram_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-posts.md?lang=ko) - [`solari_catalog_instagram_account_history`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-history.md?lang=ko) - [`solari_insight_instagram_account_collabs`](https://clip-pub.bzine.co/docs/tools/insight-instagram-account-collabs.md?lang=ko) - [`solari_catalog_tiktok_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-profile.md?lang=ko) ### solari catalog instagram account posts > Instagram 계정의 게시물. - **CLI**: `solari catalog instagram account posts` - **MCP 도구**: `solari_catalog_instagram_account_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 Instagram 계정의 게시물을 미디어, 태그, 좋아요 수와 함께 보여 줍니다. 날짜나 형식으로 거를 수 있습니다. **언제 쓰나요** — 프로필 미리보기보다 많은 게시물이 필요하거나, 날짜 범위나 형식을 정해야 할 때. **돌려주는 값** — 게시물. 캐러셀 슬라이드와 태그된 계정·해시태그도 들어 있습니다. #### 파라미터 - `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를 넣으면 무시됩니다. - `limit` (integer, 선택, 기본값 12, 1–200) — 한 페이지에 가져올 게시물 수. - `offset` (integer, 선택, 기본값 0, ≥ 0) — 건너뛸 게시물 수. - `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)까지 올라온 게시물만 가져옵니다. - `post_type` (enum, 선택) — reel, video, photo, carousel 중 하나로 좁힙니다. 값: `reel`, `video`, `photo`, `carousel`. #### 응답 ##### `Response` - `found` (boolean) — Instagram에 없는 username이면 false. - `account_id / username` (string) — 찾은 계정. - `total` (integer) — 필터에 맞는 게시물 수. - `has_more` (boolean) — 다음 페이지가 있는지 여부. - `items` (object[]) — 게시물. 최신순입니다. - `fetched_on_demand` (boolean) — 아직 최근 게시물만 볼 수 있으면 true. - `collected_at` (timestamp) — Instagram에서 프로필을 마지막으로 수집한 시각(UTC). - `posts_collected_at` (timestamp) — 저장된 게시물이 어디까지 수집됐는지(UTC). 그 뒤 게시물은 아직 카탈로그에 없습니다. - `refreshes_regularly` (boolean) — 정해진 주기로 다시 수집되는 계정인지 여부. - `stored_post_count / profile_post_count` (integer) — 카탈로그에 저장된 게시물 수와 프로필에 표시된 게시물 수. 저장된 수가 훨씬 적으면 수집이 덜 된 것입니다. - `refreshed` (boolean) — 하루 넘게 지난 저장본을 이번 호출에서 다시 수집했으면 true. - `note` (string | null) — 결과가 덜 찼을 수 있는 이유, 또는 found가 false인 이유(이름이 바뀌었거나 삭제됨). ##### `items[]` - `post_id` (uuid) — SOLARI 게시물 id. - `slug` (string) — Instagram shortcode. - `url` (string) — 공개 고유 링크. - `post_type` (string) — reel, video, photo, carousel 중 하나. - `posted_at` (timestamp) — 게시 시각(UTC). - `text` (string) — 캡션. - `like_count / comment_count / play_count` (integer) — 참여 지표. - `media_count` (integer) — 미디어 수. - `is_paid_partnership` (boolean | null) — Instagram 유료 파트너십 표시. - `medias` (object[]) — 캐러셀 순서대로 나열한 모든 미디어. - `medias[].tags` (object[]) — 미디어에 태그된 계정과 해시태그. - `thumbnail_url` (string) — 썸네일. - `assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null입니다. #### 예시 ```console $ solari catalog instagram account posts username=innisfreeofficial limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```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, "likes_hidden": false, "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" ] } ``` #### MCP 호출 ```json { "name": "solari_catalog_instagram_account_posts", "arguments": { "username": "innisfreeofficial", "limit": 2 } } ``` #### 주의사항 - since와 until은 UTC 날짜이고, 두 날짜 모두 포함합니다. - post_type=reel은 짧은 영상(릴스)입니다. video는 릴스가 아닌 영상입니다. - 카탈로그에는 빠진 게시물이 있거나 오래된 정보가 있을 수 있습니다. solari fetch instagram posts username=…(조회수는 type=reels)로 실시간 수집하면 게시물을 바로 돌려받습니다. - 요청한 날짜가 posts_collected_at보다 뒤라면 결과가 비어 있어도 게시물이 없다는 뜻이 아닙니다. solari fetch instagram posts username=…으로 최신 게시물을 실시간 수집하세요. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_catalog_instagram_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-profile.md?lang=ko) - [`solari_catalog_instagram_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-detail.md?lang=ko) - [`solari_catalog_instagram_content_history`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-history.md?lang=ko) - [`solari_catalog_tiktok_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-posts.md?lang=ko) ### solari catalog instagram account history > Instagram 계정의 팔로워·포스트 수 추이예요. - **CLI**: `solari catalog instagram account history` - **MCP 도구**: `solari_catalog_instagram_account_history` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 SOLARI가 기록해 둔 값으로 Instagram 계정의 팔로워, 팔로잉, 포스트 수가 시간에 따라 어떻게 변했는지 보여 줘요. 성장 추이를 그리거나 계정끼리 비교할 때 써요. **언제 쓰나요** — 지금 숫자만이 아니라 팔로워 성장이나 추이가 필요할 때 사용해요. **돌려주는 값** — 기록된 값이 오래된 순으로 오고, 계정의 현재 값도 같이 와요. #### 파라미터 - `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가 있으면 무시돼요 - `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예요. - `account_id / username` (string) — 찾은 계정이에요 - `granularity` (string) — 적용된 day 또는 all이에요 - `since / until` (date) — 조회한 UTC 날짜 범위예요 - `current` (object | null) — 카탈로그의 현재 값이에요. 날짜 범위와 상관없이 와요 - `points` (object[]) — 기록된 값이에요. 오래된 순이에요 - `truncated` (boolean) — 오래된 점이 잘렸으면 true예요. since를 좁혀서 다시 보세요 ##### `current` - `follower_count / following_count / post_count` (integer | null) — 카탈로그의 현재 수치예요 - `is_verified / is_private` (boolean | null) — 인증 배지와 비공개 여부예요 - `collected_at` (timestamp | null) — Instagram에서 프로필을 마지막으로 수집한 시각이에요 ##### `points[]` - `captured_at` (timestamp) — SOLARI가 이 값을 기록한 시각 (UTC) - `follower_count / following_count / post_count` (integer | null) — 그 시점의 수치예요 - `is_verified / is_private` (boolean | null) — 그 시점의 인증 배지와 비공개 여부예요 #### 예시 ```console $ solari catalog instagram account history username=innisfreeofficial since=2025-03-01 until=2025-03-07 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "found": true, "account_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "granularity": "day", "since": "2025-03-01", "until": "2025-03-07", "current": { "follower_count": 847643, "following_count": 17, "post_count": 4164, "is_verified": true, "is_private": false, "collected_at": "2026-09-28T05:30:38.364000Z" }, "points": [ { "captured_at": "2025-03-01T18:05:16.810000Z", "follower_count": 881841, "following_count": 22, "post_count": 3611, "is_verified": true, "is_private": false }, { "captured_at": "2025-03-02T22:08:10.426000Z", "follower_count": 881784, "following_count": 22, "post_count": 3611, "is_verified": true, "is_private": false }, { "captured_at": "2025-03-03T23:15:12.611000Z", "follower_count": 881711, "following_count": 22, "post_count": 3612, "is_verified": true, "is_private": false }, "… 4 more" ], "truncated": false } ``` #### MCP 호출 ```json { "name": "solari_catalog_instagram_account_history", "arguments": { "username": "innisfreeofficial", "since": "2025-03-01", "until": "2025-03-07" } } ``` #### 주의사항 - since와 until은 UTC 날짜이고, 시작일과 종료일을 포함해요. 비워 두면 최근 90일이에요. - SOLARI가 계정을 수집한 시점에만 값이 남아서, 중간중간 비어 있는 게 정상이에요. - 대부분의 계정은 2025-08-26부터 2025-09-27까지 기록이 없어요. 그 한 달은 수집되지 않아서 채울 수 없어요. - current를 오늘 숫자로 보기 전에 current.collected_at을 먼저 확인해 주세요. - 카탈로그만 읽어요. 계정이 없으면 먼저 solari fetch instagram account username=… 를 호출해 주세요. 기록은 그때부터 쌓이고, 지난 값은 채울 수 없어요. #### 관련 도구 - [`solari_catalog_instagram_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-profile.md?lang=ko) - [`solari_catalog_instagram_content_history`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-history.md?lang=ko) - [`solari_fetch_instagram_account`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-account.md?lang=ko) ### solari catalog instagram content history > Instagram 포스트의 참여 추이예요. - **CLI**: `solari catalog instagram content history` - **MCP 도구**: `solari_catalog_instagram_content_history` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 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, 선택, 기본값 20, 1–50) — 계정 모드: 최신 포스트를 몇 개까지 추적할지 - `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를 쓰지 마세요. null이거나 실제 값이 아닐 수 있어요 - `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를 쓰지 마세요. 작성자가 좋아요 수를 숨겨서 null이거나 실제 값이 아닐 수 있어요. - 카탈로그만 읽어요. 없는 포스트는 먼저 solari fetch instagram post url=… 를 호출해 주세요. 기록은 그때부터 쌓이고, 지난 값은 채울 수 없어요. #### 관련 도구 - [`solari_catalog_instagram_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-detail.md?lang=ko) - [`solari_catalog_instagram_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-posts.md?lang=ko) - [`solari_catalog_instagram_account_history`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-history.md?lang=ko) - [`solari_fetch_instagram_post`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-post.md?lang=ko) ### solari insight instagram account collabs > Instagram 크리에이터의 최근 협업. - **CLI**: `solari insight instagram account collabs` - **MCP 도구**: `solari_insight_instagram_account_collabs` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 Instagram 크리에이터가 최근에 한 협업 콘텐츠를 보여 줍니다. **언제 쓰나요** — 크리에이터가 누구와 협업했는지 볼 때. 브랜드 쪽에서 보려면 brand top collaborators 도구를 쓰세요. **돌려주는 값** — 최근 협업 콘텐츠. #### 파라미터 - `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) — 크리에이터 사용자 이름. account_id를 넣으면 무시됩니다. - `months` (integer, 선택, 기본값 3, 1–12) — 몇 개월 전까지 볼지. - `limit` (integer, 선택, 기본값 5, 1–200) — 한 페이지에 가져올 브랜드 수. - `offset` (integer, 선택, 기본값 0, ≥ 0) — 건너뛸 브랜드 수. #### 응답 ##### `Response` - `total` (integer) — 필터에 맞는 행 수. - `has_more` (boolean) — 행이 더 있는지 여부. - `items` (object[]) — 협업 요약. 대상 브랜드마다 하나씩입니다. ##### `items[]` - `target_account_id` (uuid) — 대상 브랜드의 account_id. - `target_username` (string) — 대상 브랜드 사용자 이름. - `collab_count` (integer) — 브랜드와 협업한 게시물. - `last_posted_at` (timestamp) — 가장 최근 협업. - `post_id / slug` (string) — 샘플 게시물의 식별자. - `text` (string) — 샘플 게시물 캡션. - `like_count / play_count` (integer) — 샘플 게시물 참여 지표. - `media_type` (string) — 샘플 게시물 형식. - `thumbnail_url / media_url` (string) — 샘플 게시물 미디어. - `bio` (string) — 대상 브랜드 소개글. #### 예시 ```console $ solari insight instagram account collabs username=beinny_motd months=6 limit=3 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "items": [ { "post_id": "01a05575-7c9b-7232-8519-4a38fa061389", "target_user_id": "018cab85-8ef8-7dc9-ab0a-7044d463f65e", "target_username": "dasique_official", "collab_count": 2, "last_posted_at": "2026-08-30T05:08:56+00:00", "slug": "DcpugJ2kzv8", "text": "#광고 무겁지 않은 가을 데일리 팔레트 로즈밀크티 . .🫖🤎\n차분하고 미지근한 로즈핑크 팔레트인데\n부드러운 밀크티 무드라서 분위기가 넘 예뻐요..🥺\n\n데이지크에서 올리브영 X 산리오 콜라보\n시티팝 에디션으로 미니섀도우팔레트 4종이 출시되는데\n그 중 자주 추천드렸던 로즈밀크티, 밀크라떼가 있더라구요 !\n\nNEW 컬러 피치레코드, 모브카세트도 출시되어요🤍\n도시의 아침과 저녁 무드를 담은 데일리한 …", "play_count": 0, "media_type": "8", "like_count": 878, "video_media_count": 0, "media_count": 15, "bio": "🫒올영세일 08.30 – 09.05\nUP TO 37% SALE\n올리브영X산리오,\n🌠데이지크 🆕 미니 섀도우", "thumbnail_url": "https://bzine.co/cdn-cgi/image/fit=scale-down,width=480/https://smr-images-c.bzine.co/users/018ecc75-55d8-70a7-a348-d370aa504ed9/posts/01a05575-7c9b-7232-8519-4a38fa061389/medias/01a05575-7dd3-779e-9050-a6cb59578cb9.jpg", "media_url": "https://bzine.co/cdn-cgi/image/fit=scale-down,width=480/https://smr-images-c.bzine.co/users/018ecc75-55d8-70a7-a348-d370aa504ed9/posts/01a05575-7c9b-7232-8519-4a38fa061389/medias/01a05575-7dd3-779e-9050-a6cb59578cb9.jpg", "target_account_id": "018cab85-8ef8-7dc9-ab0a-7044d463f65e" }, "… 2 more" ], "has_more": true, "total": 7 } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_account_collabs", "arguments": { "username": "beinny_motd", "months": 6, "limit": 3 } } ``` #### 주의사항 - 광고 게시물 하나하나는 account ad posts 도구로 보세요. #### 관련 도구 - [`solari_insight_instagram_account_ad_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-account-ad-posts.md?lang=ko) - [`solari_insight_instagram_brand_top_collaborators`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-top-collaborators.md?lang=ko) ### solari insight instagram account ad posts > Instagram 크리에이터의 광고 게시물. - **CLI**: `solari insight instagram account ad posts` - **MCP 도구**: `solari_insight_instagram_account_ad_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 Instagram 크리에이터의 협찬 게시물을 보여 줍니다. **언제 쓰나요** — 요약이 아니라 광고 게시물 자체가 필요할 때. **돌려주는 값** — 광고 게시물. 최신순입니다. #### 파라미터 - `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) — 크리에이터 사용자 이름. account_id를 넣으면 무시됩니다. - `months` (integer, 선택, 기본값 3, 1–24) — 몇 개월 전까지 볼지. - `limit` (integer, 선택, 기본값 50, 1–200) — 한 페이지에 가져올 행 수. - `offset` (integer, 선택, 기본값 0, ≥ 0) — 건너뛸 행 수. - `target` (string, 선택, ≤ 64 chars) — 한 브랜드로 좁힙니다. account_id나 username을 넣으세요. #### 응답 ##### `Response` - `account_id / username` (string) — 찾은 크리에이터. - `months` (integer) — 적용한 조회 기간. - `total` (integer) — 전체 행 수. - `has_more` (boolean) — 다음 페이지가 있는지 여부. - `items` (object[]) — 게시물과 브랜드 쌍. ##### `items[]` - `post_id / slug / url` (string) — 게시물 식별자와 공개 링크. - `post_type` (string) — reel, video, photo, carousel 중 하나. - `posted_at` (timestamp) — 게시 시각(UTC). - `text` (string) — 캡션. - `like_count / comment_count / play_count` (integer) — 참여 지표. - `media_count` (integer) — 미디어 수. - `is_paid_partnership` (boolean | null) — Instagram 유료 파트너십 표시. - `target_account_id / target_username` (string) — 이 행의 브랜드. - `assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null입니다. #### 예시 ```console $ solari insight instagram account ad posts username=beinny_motd months=6 limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "account_id": "018ecc75-55d8-70a7-a348-d370aa504ed9", "username": "beinny_motd", "months": 6, "total": 12, "has_more": true, "items": [ { "post_id": "01a05575-7c9b-7232-8519-4a38fa061389", "slug": "DcpugJ2kzv8", "url": "https://www.instagram.com/p/DcpugJ2kzv8/", "post_type": "carousel", "posted_at": "2026-08-30T05:08:56Z", "text": "#광고 무겁지 않은 가을 데일리 팔레트 로즈밀크티 . .🫖🤎\n차분하고 미지근한 로즈핑크 팔레트인데\n부드러운 밀크티 무드라서 분위기가 넘 예뻐요..🥺\n\n데이지크에서 올리브영 X 산리오 콜라보\n시티팝 에디션으로 미니섀도우팔레트 4종이 출시되는데\n그 중 자주 추천드렸던 로즈밀크티, 밀크라떼가 있더라구요 !\n\nNEW 컬러 피치레코드, 모브카세트도 출시되어요🤍\n도시의 아침과 저녁 무드를 담은 데일리한 …", "like_count": 878, "comment_count": 19, "play_count": 0, "media_count": 15, "is_paid_partnership": null, "target_account_id": "018cab85-8ef8-7dc9-ab0a-7044d463f65e", "target_username": "dasique_official" }, "… 1 more" ] } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_account_ad_posts", "arguments": { "username": "beinny_motd", "months": 6, "limit": 2 } } ``` #### 주의사항 - target을 넣으면 한 브랜드 결과만 나옵니다. 브랜드의 account_id나 username을 넣으세요. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_account_collabs`](https://clip-pub.bzine.co/docs/tools/insight-instagram-account-collabs.md?lang=ko) - [`solari_insight_instagram_brand_ad_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-ad-posts.md?lang=ko) ### solari catalog instagram content detail > id, shortcode, URL로 찾는 Instagram 게시물. - **CLI**: `solari catalog instagram content detail` - **MCP 도구**: `solari_catalog_instagram_content_detail` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 post_id, shortcode, 공개 URL로 Instagram 게시물 하나를 불러옵니다. **언제 쓰나요** — 게시물 하나가 필요할 때. id가 여러 개면 content batch 도구를 쓰세요. **돌려주는 값** — 캡션과 지표가 담긴 게시물. #### 파라미터 - `post_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)$) — post_id. 이 값이나 slug, url 중 하나를 넣으세요. - `slug` (string, 선택, pattern ^[A-Za-z0-9_-]{3,20}$) — Instagram shortcode. - `url` (string, 선택, ≤ 512 chars) — Instagram 게시물 공개 URL. #### 응답 ##### `Response` - `item` (object | null) — 게시물. 없거나 공개되지 않은 게시물이면 null. - `fetched_on_demand` (boolean) — 이번 호출에서 게시물을 실시간으로 가져왔으면 true. - `note` (string) — item이 null일 때만 있습니다. 다음에 할 일. - `next` (string) — item이 null이고 게시물을 URL이나 shortcode로 넣었을 때만 있습니다. 그 게시물을 수집하는 fetch post 명령어. ##### `item` - `post_id` (uuid) — 다른 콘텐츠 도구에 넣을 게시물 id. - `slug` (string) — 공개 URL에 들어 있는 shortcode. - `author_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 사용자 이름. - `full_name` (string | null) — 표시 이름. - `profile_pic_url` (string | null) — 프로필 사진 URL. - `follower_count` (integer | null) — 작성자 팔로워 수. - `region` (string | null) — 작성자 지역. - `posted_at` (timestamp) — 게시 시각(UTC). - `media_type` (string) — image, video, carousel 중 하나. - `play_count` (integer | null) — 영상 재생 수. 이미지면 null입니다. - `like_count` (integer | null) — 좋아요 수. - `text` (string | null) — 캡션. - `media_url` (string) — 미디어 URL. - `thumbnail_url` (string) — 썸네일 URL. - `score` (number | null) — 순위 점수. 순위가 매겨진 목록이 아니면 null. - `efficiency_score` (number | null) — 작성자 팔로워 수 대비 성과. - `est_percentile` (number | null) — 지역 안 백분위(0~1). - `total_views_3m` (integer | null) — 작성자의 최근 3개월 조회수. - `median_views_3m` (integer | null) — 작성자의 최근 3개월 조회수 중앙값. - `recent_collab_brands` (string[]) — 작성자가 최근 협업한 브랜드. - `item_type` (string) — 항목 종류. 항상 "content". - `content_source` (string | null) — 게시물이 나온 피드. 피드에서 온 게 아니면 null. - `is_saved` (boolean | null) — SOLARI에 이 게시물을 저장했는지. 알 수 없으면 null. - `updated_at` (timestamp | null) — 지표를 마지막으로 갱신한 시각. - `assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null입니다. #### 예시 ```console $ solari catalog instagram content detail slug=DcyMAmUh6FZ ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "item": { "item_type": "content", "post_id": "01a06275-d974-7fda-98ee-dd3ee15b4dcf", "author_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "full_name": "INNISFREE | 이니스프리", "profile_pic_url": "https://dcr.bzine.co/instagram/users/innisfreeofficial/profile-picture", "follower_count": 847619, "region": null, "posted_at": "2026-09-02T12:00:06Z", "media_type": "video", "play_count": 22467, "like_count": 3224, "score": null, "efficiency_score": null, "est_percentile": null, "updated_at": null, "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 …", "slug": "DcyMAmUh6FZ", "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 …", "brand_match_score": null, "recent_collab_brands": [], "total_views_3m": null, "median_views_3m": null, "is_saved": null, "content_source": null }, "fetched_on_demand": false } ``` #### MCP 호출 ```json { "name": "solari_catalog_instagram_content_detail", "arguments": { "slug": "DcyMAmUh6FZ" } } ``` #### 주의사항 - url에는 /p/, /reel/, /tv/ 링크를 아무거나 넣으면 됩니다. shortcode는 알아서 뽑습니다. - SOLARI에 모아 둔 데이터만 읽습니다. 아직 수집하지 않은 게시물은 solari fetch instagram post url=…로 가져오세요. 작성자도 함께 알려 줍니다. 작성자를 이미 알면 solari fetch instagram posts username=…를 쓰세요. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_fetch_instagram_post`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-post.md?lang=ko) - [`solari_catalog_instagram_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-batch.md?lang=ko) - [`solari_catalog_instagram_content_history`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-history.md?lang=ko) - [`solari_catalog_instagram_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-posts.md?lang=ko) ### solari catalog instagram content batch > Instagram 게시물 여러 개를 한 번에. - **CLI**: `solari catalog instagram content batch` - **MCP 도구**: `solari_catalog_instagram_content_batch` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 게시물 id 목록으로 캡션과 지표를 불러옵니다. 찾을 수 없는 id는 건너뜁니다. **언제 쓰나요** — brand overview나 피드에서 받은 id로 게시물을 봐야 할 때. **돌려주는 값** — 찾은 게시물. #### 파라미터 - `post_ids` (uuid[], 필수, 1–100 items, uuid) — 불러올 post_id. 최대 100개. - `sort` (enum, 선택, 기본값 "recent") — 최신순이나 참여순으로 정렬합니다. 값: `recent`, `engagement`. #### 응답 ##### `Response` - `items` (object[]) — 찾은 게시물. - `requested` (integer) — 보낸 id 수. - `found` (integer) — 찾은 id 수. SOLARI에 없는 id는 빠지니까 보낸 수보다 적을 수 있습니다. ##### `items[]` - `id` (uuid) — 게시물 id. - `slug` (string) — Instagram shortcode. - `text` (string) — 캡션. - `posted_at` (timestamp) — 게시 시각(UTC). - `username / user_id / account_id` (string) — 게시물을 올린 계정. - `like_count / comment_count` (integer) — 참여 지표. - `play_count` (integer | null) — 영상 재생 수. - `media_type` (string) — 게시물 형식. - `assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null입니다. #### 예시 ```console $ solari catalog instagram content batch post_ids='["019f505f-f8be-7e88-ae08-6fba999950b1","019f5060-3449-779e-a08b-d6d49add90cd"]' ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "items": [ { "id": "019f505f-f8be-7e88-ae08-6fba999950b1", "slug": "Dam_BYyJxtR", "text": "#광고 ₊✩‧₊˚ @innisfreeofficial ˚₊✩‧₊ \n공들인 나의 화장.. 찜통 더위에 무너져 내릴때\n이니스프리 노세범 선 파우더 하나면 고민 끝!\n\n유분 가득한 피부.. 꺼진 부위, 모공, 요철 부각되어\n10년은 늙어보이는 몰골에서 노세범 선 파우더 바르는\n즉시 핑크빛 필터를 씌운 듯~ 뽀용 피부 완성 ⭒˚.⋆\n\n노세범 맛집 답게 과다 피지와 유분을 즉각 흡착시키고\n무엇보다 가벼 …", "posted_at": "2026-07-10T10:34:01Z", "virtual_campaign": null, "username": "the_ketchap", "user_id": "018d3b53-c0c1-71cc-a44f-204f7d850267", "profile_picture_url": null, "like_count": 38579, "comment_count": 31, "thumbnail_url": null, "media_url": null, "media": [], "media_type": "reel", "play_count": 676825, "account_id": "018d3b53-c0c1-71cc-a44f-204f7d850267" }, "… 1 more" ], "requested": 2, "found": 2 } ``` #### MCP 호출 ```json { "name": "solari_catalog_instagram_content_batch", "arguments": { "post_ids": [ "019f505f-f8be-7e88-ae08-6fba999950b1", "019f5060-3449-779e-a08b-d6d49add90cd" ] } } ``` #### 주의사항 - SOLARI 게시물 id만 받습니다. shortcode는 content detail 도구에 slug로 넣으세요. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_catalog_instagram_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-detail.md?lang=ko) - [`solari_insight_instagram_brand_overview`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-overview.md?lang=ko) ### solari catalog instagram content search > Instagram 캡션, 소개글, 영상 자막을 검색할 때 쓰세요. - **CLI**: `solari catalog instagram content search` - **MCP 도구**: `solari_catalog_instagram_content_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 KR, JP, US, TW에서 수집한 Instagram 게시물을 키워드로 검색합니다. 대략 최근 6개월치가 대상입니다. **언제 쓰나요** — 주제에 관한 게시물이 필요할 때. 개수가 필요하면 content aggregate 도구를 쓰세요. **돌려주는 값** — 관련도 순으로 정렬한 게시물. 일치한 글자는 강조 표시됩니다. #### 파라미터 - `query` (string, 필수) — 검색할 단어. - `region` (enum, 선택, 기본값 "KR") — KR, JP, US, TW 중 하나. 값: `KR`, `JP`, `US`, `TW`. - `limit` (integer, 선택, 기본값 20, 1–100) — 한 페이지에 가져올 게시물 수. - `offset` (integer, 선택, 기본값 0, ≥ 0) — 건너뛸 게시물 수. - `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)까지 올라온 게시물만 가져옵니다. #### 응답 ##### `Response` - `query / region` (string) — 적용한 검색어와 지역. - `total` (integer) — 전체 일치 수. 10,000까지는 정확하고, 그 뒤로는 10,000에서 멈춥니다. - `took_ms` (integer) — 검색에 걸린 시간. - `items` (object[]) — 검색 결과. 점수가 높은 순서입니다. ##### `items[]` - `post_id` (uuid) — SOLARI 게시물 id. - `slug` (string) — Instagram shortcode. - `account_id / author_id / username` (string) — 게시물을 올린 계정. - `caption` (string) — 캡션. - `user_bio` (string) — 작성자 소개글. 검색 대상 텍스트에 들어갑니다. - `transcription_text` (string | null) — 영상 음성 자막. - `posted_at` (timestamp) — 게시 시각(UTC). - `like_count / comment_count` (integer) — 참여 지표. - `follower_count` (integer) — 작성자 팔로워 수. - `score` (number) — 관련도 점수. 같은 응답 안에서만 비교할 수 있습니다. - `highlight` (object) — 필드별 일치 부분. caption, user_bio, transcription_text. - `is_video` (boolean) — 영상 게시물인지 여부. - `assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null입니다. #### 예시 ```console $ solari catalog instagram content search query="이니스프리 그린티" limit=3 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```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": [ "[이니스프리에디터 4기 1-2 : 그린티 PDRN 아이&립 세럼] #이니스프리 #그린티PDRN 💚 자세한 포스팅은 프로필 링크 참고해주세요 :)" ], "user_bio": [ "대외활동 | 휴학생 | 취준일기 🪽과 학생회 2년 연임 🪽이니스프리 대학생 에디터 3기 / 4기" ], "transcription_text": [] }, "is_video": false, "media_url": null, "thumbnail_url": null, "account_id": "019f12d8-3e0f-7c74-afc6-e14405bd1523" }, "… 2 more" ] } ``` #### MCP 호출 ```json { "name": "solari_catalog_instagram_content_search", "arguments": { "query": "이니스프리 그린티", "limit": 3 } } ``` #### 주의사항 - since를 약 6개월보다 이전으로 넣으면 결과가 없습니다. - total은 10,000까지만 셉니다. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_content_aggregate`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-aggregate.md?lang=ko) - [`solari_catalog_instagram_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-batch.md?lang=ko) - [`solari_catalog_tiktok_content_search`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-search.md?lang=ko) ### solari insight instagram content trending > 지금 인기 있는 Instagram 게시물. - **CLI**: `solari insight instagram content trending` - **MCP 도구**: `solari_insight_instagram_content_trending` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 설정한 지역의 인기 Instagram 게시물을 작성자 프로필과 함께 보여 줍니다. **언제 쓰나요** — 지금 반응이 좋은 게시물을 볼 때. 성장 속도를 보려면 content rising 도구를 쓰세요. **돌려주는 값** — 인기 게시물. 다음 페이지는 next_cursor로 받습니다. #### 파라미터 - `region` (string, 선택, 기본값 "KR") — KR, JP 같은 국가 코드. - `limit` (integer, 선택, 기본값 20, 1–50) — 한 페이지에 가져올 게시물 수. - `cursor` (string, 선택) — 이전 페이지에서 받은 next_cursor. - `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` (string, 선택, ≤ 64 chars) — 이 브랜드에 맞춰 정렬할 브랜드 사용자 이름. account_id를 넣으면 무시됩니다. #### 응답 ##### `Response` - `items` (object[]) — 인기 게시물. - `total_count` (integer) — 피드 전체 항목 수. - `region` (string) — 적용한 지역. - `content_type` (string) — 피드 종류. - `next_cursor` (string | null) — 다음 페이지를 받을 때 cursor로 넣으세요. ##### `items[]` - `post_id` (uuid) — 다른 콘텐츠 도구에 넣을 게시물 id. - `slug` (string) — 공개 URL에 들어 있는 shortcode. - `author_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 사용자 이름. - `full_name` (string | null) — 표시 이름. - `profile_pic_url` (string | null) — 프로필 사진 URL. - `follower_count` (integer | null) — 작성자 팔로워 수. - `region` (string | null) — 작성자 지역. - `posted_at` (timestamp) — 게시 시각(UTC). - `media_type` (string) — image, video, carousel 중 하나. - `play_count` (integer | null) — 영상 재생 수. 이미지면 null입니다. - `like_count` (integer | null) — 좋아요 수. - `text` (string | null) — 캡션. - `media_url` (string) — 미디어 URL. - `thumbnail_url` (string) — 썸네일 URL. - `score` (number | null) — 순위 점수. 순위가 매겨진 목록이 아니면 null. - `efficiency_score` (number | null) — 작성자 팔로워 수 대비 성과. - `est_percentile` (number | null) — 지역 안 백분위(0~1). - `total_views_3m` (integer | null) — 작성자의 최근 3개월 조회수. - `median_views_3m` (integer | null) — 작성자의 최근 3개월 조회수 중앙값. - `recent_collab_brands` (string[]) — 작성자가 최근 협업한 브랜드. - `item_type` (string) — 항목 종류. 항상 "content". - `content_source` (string | null) — 게시물이 나온 피드. 피드에서 온 게 아니면 null. - `is_saved` (boolean | null) — SOLARI에 이 게시물을 저장했는지. 알 수 없으면 null. - `updated_at` (timestamp | null) — 지표를 마지막으로 갱신한 시각. - `assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null입니다. #### 예시 ```console $ solari insight instagram content trending region=KR limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "items": [ { "item_type": "content", "post_id": "01a055fe-d72c-7005-8709-eef67b4be6f0", "author_id": "018ecc27-f8e7-7100-9339-bb050ea44a7f", "username": "sixpackpiggy", "full_name": "Jinmin Park", "profile_pic_url": "https://dcr.bzine.co/instagram/users/sixpackpiggy/profile-picture", "follower_count": 93442, "region": "KR", "posted_at": "2026-08-29T02:02:20Z", "media_type": "video", "play_count": 286749, "like_count": null, "score": 96.69330916066565, "efficiency_score": null, "est_percentile": 96.69330916066565, "updated_at": "2026-09-03T04:51:42.797111Z", "media_url": "https://smr-images-b.bzine.co/users/018ecc27-f8e7-7100-9339-bb050ea44a7f/posts/01a055fe-d72c-7005-8709-eef67b4be6f0/medias/01a055fe-d964-7d73-9a77-d06823a2abc2.mp4", "thumbnail_url": "https://bzine.co/cdn-cgi/media/width=480,mode=frame,time=0ms/https://smr-images.bzine.co/users/018ecc27-f8e7-7100-9339-bb050ea44a7f/posts/01a055fe-d72c-7005-8709-eef67b4be6f0/medias/01a055fe-d964-7d73-9a77-d06823a2abc2.m …", "slug": "Dcmzs05SAae", "text": "How dedicated are you to your Korean skincare? 💅@patinaosaka \n#koreanskincare #osaka #japan #kbeauty #traveling", "brand_match_score": null, "recent_collab_brands": [], "total_views_3m": 1875678, "median_views_3m": 57780, "is_saved": false, "content_source": null }, "… 1 more" ], "total_count": 213635, "region": "KR", "content_type": "trending", "next_cursor": "eyJhcyI6ICIyMDI2LTA5LTAzVDA1OjIwOjIzLjM4Mzk3NCswMDowMCIsICJzYyI6ICIyMDI2LTA5LTAzVDA0OjQ0OjQ3LjkzNTI1OCswMDowMCIsICJzcCI6ICIwMWEwNTVmZS1mOWIyLTdiNmYtYjY1OS05ZGE1OTM3NjgzMWMifQ==" } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_content_trending", "arguments": { "region": "KR", "limit": 2 } } ``` #### 주의사항 - 브랜드 account_id나 username을 넣으면 그 브랜드에 맞는 순서로 정렬합니다. - 페이지는 offset이 아니라 cursor로 넘깁니다. 받은 next_cursor를 다시 보내세요. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_content_rising`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-rising.md?lang=ko) - [`solari_insight_instagram_content_trend_clusters`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-trend-clusters.md?lang=ko) ### solari insight instagram content rising > 빠르게 뜨고 있는 Instagram 게시물. - **CLI**: `solari insight instagram content rising` - **MCP 도구**: `solari_insight_instagram_content_rising` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 최근 성과가 빠르게 오르는 Instagram 게시물입니다. 작성자 프로필도 함께 옵니다. **언제 쓰나요** — 지금 쌓인 수치보다 오르는 속도가 중요할 때. **돌려주는 값** — 급상승 게시물. 다음 페이지는 next_cursor로 받습니다. #### 파라미터 - `region` (string, 선택, 기본값 "KR") — KR, JP 같은 국가 코드. - `limit` (integer, 선택, 기본값 20, 1–50) — 한 페이지에 받을 게시물 수. - `cursor` (string, 선택) — 이전 페이지에서 받은 next_cursor. - `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` (string, 선택, ≤ 64 chars) — 브랜드 username. 넣으면 이 브랜드에 맞춰 순위를 매깁니다. account_id가 있으면 무시합니다. #### 응답 ##### `Response` - `items` (object[]) — 급상승 게시물. - `total_count` (integer) — 피드 전체 항목 수. - `region` (string) — 적용된 지역. - `content_type` (string) — 피드 종류. - `next_cursor` (string | null) — 다음 페이지를 받을 때 cursor로 넣습니다. ##### `items[]` - `post_id` (uuid) — 다른 콘텐츠 도구에 넘기는 게시물 id. - `slug` (string) — 공개 URL에 있는 shortcode. - `author_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 username. - `full_name` (string | null) — 표시 이름. - `profile_pic_url` (string | null) — 프로필 사진 URL. - `follower_count` (integer | null) — 작성자 팔로워 수. - `region` (string | null) — 작성자 지역. - `posted_at` (timestamp) — 게시 시각(UTC). - `media_type` (string) — image, video, carousel 중 하나. - `play_count` (integer | null) — 영상 재생 수. 이미지는 null. - `like_count` (integer | null) — 좋아요 수. - `text` (string | null) — 캡션. - `media_url` (string) — 미디어 URL. - `thumbnail_url` (string) — 썸네일 URL. - `score` (number | null) — 순위 점수. 순위가 매겨진 목록이 아니면 null. - `efficiency_score` (number | null) — 작성자 팔로워 수에 비한 성과. - `est_percentile` (number | null) — 지역 안에서의 백분위(0–1). - `total_views_3m` (integer | null) — 최근 3개월 작성자 조회수. - `median_views_3m` (integer | null) — 최근 3개월 작성자 조회수 중앙값. - `recent_collab_brands` (string[]) — 작성자가 최근 협업한 브랜드. - `item_type` (string) — 항목 종류. 항상 "content". - `content_source` (string | null) — 게시물이 나온 피드. 피드에서 온 게 아니면 null. - `is_saved` (boolean | null) — SOLARI에 이 게시물을 저장했는지. 알 수 없으면 null. - `updated_at` (timestamp | null) — 지표를 마지막으로 갱신한 시각. - `assets` (object[]) — 순서대로 담긴 미디어 파일. 각 파일에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 받는 다운로드 링크. 저장된 파일이 없으면 null. #### 예시 ```console $ solari insight instagram content rising region=KR limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "items": [ { "item_type": "content", "post_id": "01a0495a-4e46-73d5-a111-a818248b665b", "author_id": "019e4a24-ee85-78e9-8763-602930999853", "username": "iiiwantkitty", "full_name": "주 령", "profile_pic_url": "https://dcr.bzine.co/instagram/users/iiiwantkitty/profile-picture", "follower_count": 706, "region": "KR", "posted_at": "2026-08-28T07:38:46Z", "media_type": "video", "play_count": 48092, "like_count": null, "score": 0.1292899036795201, "efficiency_score": 0.1292899036795201, "est_percentile": 84.68488691008565, "updated_at": "2026-09-03T05:20:45.496271Z", "media_url": "https://smr-images-b.bzine.co/users/019e4a24-ee85-78e9-8763-602930999853/posts/01a0495a-4e46-73d5-a111-a818248b665b/medias/01a0495a-4fc0-7352-92dd-a04afe898589.mp4", "thumbnail_url": "https://bzine.co/cdn-cgi/media/width=480,mode=frame,time=0ms/https://smr-images-a.bzine.co/users/019e4a24-ee85-78e9-8763-602930999853/posts/01a0495a-4e46-73d5-a111-a818248b665b/medias/01a0495a-4fc0-7352-92dd-a04afe898589 …", "slug": "Dck0Wj8xeq3", "text": "이정도가 아니면 뮤트라고 하지말자..⭐️ 뮤트톤 친구 입술에 빡빡 발라주고싶음\n\n컬러 보자마자 아 내꺼하자ㅡㅡ 하고 바로 겟한 것\n\n그레이애쉬,, 핑크 ,, 브라운 다 들어간 밑힌 컬러 이거 뮤트톤들이 바르면 진짜 분위기 미처버리는 립이걸랑 영상보다 실물이 더 뮤트!\n\n입술에 올리면 좀더 투명하게 올라가면서 회끼도는데 뉴트럴하면서도 팥앙금 같은 고런 깔 느낌\n안쪽에만 톡톡 발라서 쌩얼립으로도 …", "brand_match_score": null, "recent_collab_brands": [ "apieu_cosmetics", "… 8 more" ], "total_views_3m": 2389749, "median_views_3m": 5215, "is_saved": false, "content_source": null }, "… 1 more" ], "total_count": 291665, "region": "KR", "content_type": "rising", "next_cursor": "eyJhcyI6ICIyMDI2LTA5LTAzVDA1OjIwOjQ5LjA3Mjg3MiswMDowMCIsICJzYyI6ICIyMDI2LTA5LTAzVDA1OjE5OjQwLjc1NzUwOCswMDowMCIsICJzcCI6ICIwMWEwNDNmOC1hODdlLTdiMWItYjFiNi1iODliMTU2YjU0ODgifQ==" } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_content_rising", "arguments": { "region": "KR", "limit": 2 } } ``` #### 주의사항 - content trending 도구와 파라미터가 같습니다. 브랜드 기준 순위 매기기도 포함합니다. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_content_trending`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-trending.md?lang=ko) - [`solari_insight_instagram_content_trend_clusters`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-trend-clusters.md?lang=ko) ### solari insight instagram content trend clusters > 주제별로 묶은 Instagram 트렌드. - **CLI**: `solari insight instagram content trend clusters` - **MCP 도구**: `solari_insight_instagram_content_trend_clusters` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 지정한 지역의 트렌드 요약입니다. 이름 붙은 주제마다 규모, 변화, 대표 게시물 몇 개가 들어 있습니다. **언제 쓰나요** — 게시물 목록보다 지금 흐름의 큰 그림이 필요할 때. **돌려주는 값** — 이름 붙은 묶음과 묶음에 속한 게시물 미리보기. #### 파라미터 - `region` (string, 선택, 기본값 "KR") — KR, JP 같은 국가 코드. - `since_days` (integer, 선택, 기본값 7, 1–90) — 며칠 전까지 거슬러 볼지. - `limit` (integer, 선택, 기본값 20, 1–24) — 받을 묶음 수. - `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` (string, 선택, ≤ 64 chars) — 브랜드 username. 넣으면 이 브랜드에 맞춰 묶음 순위를 매깁니다. account_id가 있으면 무시합니다. - `brand_aware` (boolean, 선택, 기본값 true) — 브랜드에 맞춰 묶음 순위를 매길지. 브랜드를 넣으면 기본으로 켜집니다. #### 응답 ##### `Response` - `success` (boolean) — 요약이 만들어졌는지 여부. - `trend_count` (integer) — 받은 묶음 수. - `header_text` (string) — 요약 헤드라인. - `region / since_days` (string · integer) — 적용된 지역과 조회 기간. - `brand_aware` (boolean) — 브랜드 친화도로 순위를 다시 매기도록 요청했는지 여부. - `als_applied` (boolean) — 친화도 모델이 실제로 돌았는지 여부. - `trends` (object[]) — 묶음 목록. ##### `trends[]` - `cluster_id` (string) — 묶음 id. - `name` (string) — 묶음 이름. - `bullets` (string[]) — 묶음을 설명하는 문장. - `count` (integer) — 묶음에 속한 게시물 수. - `count_delta` (integer) — 직전 기간 대비 소속 게시물 수 변화. - `growth_pct` (number) — 증가율(%). - `avg_play_delta` (number) — 평균 재생 수 변화. - `distinct_creators` (integer) — 이 묶음에 게시물을 올린 크리에이터 수. - `creator_delta` (integer) — 크리에이터 수 변화. - `is_new` (boolean) — 이번 기간에 처음 나타난 묶음인지 여부. - `member_thumbnails` (object[]) — 소속 게시물 썸네일 미리보기. #### 예시 ```console $ solari insight instagram content trend clusters region=KR since_days=7 limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "success": true, "trend_count": 2, "header_text": "최근 7일 인기 트렌드 2개 (브랜드 컨텍스트 없음)", "brand_aware": true, "als_applied": false, "region": "KR", "since_days": 7, "directive": null, "trends": [ { "cluster_id": "01a05857-7727-74d8-8da5-4e95981aca8d", "name": "GV90의 미래형 하이테크 기능", "bullets": [ "화면이 회전하거나 시트가 뒤로 돌아가는 등 물리적으로 변형되는 자동차 내부 장치들을 직접 시연함", "… 1 more" ], "count": 7, "count_delta": 0, "growth_pct": 0, "avg_play_delta": 0, "creator_delta": 0, "distinct_creators": 3, "is_new": false, "early_zone_creator_count": null, "early_zone_creator_ratio": null, "als_member_count": null, "mean_als_score": null, "annotation": null, "group": null, "member_thumbnails": [ { "post_id": "01a030df-c4b3-739c-9214-44b3b9463c7b", "thumbnail_url": "https://bzine.co/cdn-cgi/media/width=480,mode=frame,time=100ms/https://smr-images-c.bzine.co/users/018cb4c9-da89-7b02-8efd-53ccb65c26c9/posts/01a030df-c4b3-739c-9214-44b3b9463c7b/medias/01a030df-c7c3-788e-8775-1096728e07 …", "slug": "DcP6jgRMTRv", "username": "sol.bpd", "media_url": "https://smr-images-c.bzine.co/users/018cb4c9-da89-7b02-8efd-53ccb65c26c9/posts/01a030df-c4b3-739c-9214-44b3b9463c7b/medias/01a030df-c7c3-788e-8775-1096728e07f2.mp4", "media_type": "video", "play_count": 1947419, "posted_at": "2026-08-20T04:37:17+00:00" }, "… 3 more" ] }, "… 1 more" ], "insights": null, "insight_query": null } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_content_trend_clusters", "arguments": { "region": "KR", "since_days": 7, "limit": 2 } } ``` #### 주의사항 - 호출이 최대 2분까지 걸릴 수 있습니다. - 브랜드를 넣으면 그 브랜드에 맞춰 묶음 순위를 매깁니다. 원래 순서를 유지하려면 brand_aware=false로 두세요. #### 관련 도구 - [`solari_insight_instagram_content_trending`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-trending.md?lang=ko) - [`solari_insight_instagram_content_rising`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-rising.md?lang=ko) ### solari insight instagram content aggregate > Instagram 게시물 수를 셀 때 씁니다. - **CLI**: `solari insight instagram content aggregate` - **MCP 도구**: `solari_insight_instagram_content_aggregate` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 수집한 게시물을 계정, 형식, 해시태그, 멘션, 키워드별로 합산합니다. 숫자로 답해야 하는 질문에 씁니다. **언제 쓰나요** — 게시량, 평균, 가장 많이 쓰인 해시태그를 알고 싶을 때. 게시물 자체가 필요하면 콘텐츠 검색을 쓰세요. **돌려주는 값** — 그룹별 개수를 큰 순서로 돌려줍니다. 다른 지표는 요청할 때만 들어갑니다. #### 파라미터 - `region` (enum, 선택, 기본값 "KR") — KR, JP, US, TW 중 하나. 값: `KR`, `JP`, `US`, `TW`. - `group_by` (enum, 선택) — 개수를 나눌 기준. 값: `account`, `post_type`, `hashtag`, `mention`, `caption_keyword`, `transcription_keyword`. - `interval` (enum, 선택) — 이 달력 단위로 시계열을 추가합니다. 값: `day`, `week`, `month`. - `metrics` (string[], 선택) — post_count 외에 받을 지표. 값: `like_sum`, `like_avg`, `comment_sum`, `comment_avg`, `view_sum`, `view_avg`, `follower_avg`, `account_count`. - `query` (string, 선택) — 캡션과 영상 자막에서 찾을 키워드. - `usernames` (string[], 선택) — 이 Instagram username만. - `hashtags` (string[], 선택) — 이 해시태그를 모두 단 게시물만. - `mentions` (string[], 선택) — 이 username을 모두 멘션한 게시물만. - `post_types` (string[], 선택) — 이 형식만. - `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) 당일이나 이전 게시물만. - `limit` (integer, 선택, 기본값 20, 1–50) — 받을 그룹 수. #### 응답 ##### `Response` - `region` (string) — 합산한 지역. - `since` (date) — 실제로 쓴 시작일. - `until` (date | null) — 실제로 쓴 종료일. - `group_by` (string | null) — 적용된 그룹 기준. - `interval` (string | null) — 적용된 시간 단위. - `total_posts` (integer) — 필터에 맞는 게시물 수. - `truncated` (boolean) — 그룹이 limit보다 많았으면 true. - `buckets` (object[]) — 큰 순서로 정렬한 그룹. ##### `buckets[]` - `key` (string) — 그룹 값. group_by를 빼면 전체 합계 하나만 옵니다. - `metrics.post_count` (integer) — 게시물 수. 항상 들어 있습니다. - `metrics.like_sum / like_avg` (number | null) — 좋아요 합계와 평균. 요청했을 때만. - `metrics.comment_sum / comment_avg` (number | null) — 댓글 합계와 평균. 요청했을 때만. - `metrics.view_sum / view_avg` (number | null) — 조회수 합계와 평균. 요청했을 때만. - `metrics.share_sum / collect_sum` (number | null) — TikTok 전용. 여기서는 항상 null. - `metrics.follower_avg` (number | null) — 작성자 평균 팔로워 수. - `metrics.account_count` (integer | null) — 그룹 안의 서로 다른 계정 수. - `series` (object[] | null) — 기간별 세부 값. interval을 넣었을 때만. #### 예시 ```console $ solari insight instagram content aggregate group_by=hashtag query="이니스프리" metrics='["like_avg","view_sum","account_count"]' limit=5 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "region": "KR", "since": "2026-03-04", "until": null, "group_by": "hashtag", "interval": null, "total_posts": 1647, "truncated": true, "buckets": [ { "key": "이니스프리", "metrics": { "post_count": 772, "like_sum": null, "like_avg": 320.7240932642487, "comment_sum": null, "comment_avg": null, "view_sum": 9400953, "view_avg": null, "share_sum": null, "share_avg": null, "collect_sum": null, "collect_avg": null, "follower_avg": null, "account_count": 587 }, "series": null }, { "key": "광고", "metrics": { "post_count": 548, "like_sum": null, "like_avg": 373.04021937842776, "comment_sum": null, "comment_avg": null, "view_sum": 5463711, "view_avg": null, "share_sum": null, "share_avg": null, "collect_sum": null, "collect_avg": null, "follower_avg": null, "account_count": 381 }, "series": null }, "… 3 more" ] } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_content_aggregate", "arguments": { "group_by": "hashtag", "query": "이니스프리", "metrics": [ "like_avg", "view_sum", "account_count" ], "limit": 5 } } ``` #### 주의사항 - 다른 지표를 지정하지 않으면 post_count만 채워집니다. - KR·JP·US·TW 지역의 최근 약 6개월을 다룹니다. since가 그보다 이르면 가장 오래된 날짜로 맞춥니다. - interval만 넣으면 기간마다 구간이 하나씩 생깁니다. group_by와 함께 쓰면 그룹마다 시계열이 생깁니다. #### 관련 도구 - [`solari_catalog_instagram_content_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-search.md?lang=ko) - [`solari_insight_tiktok_content_aggregate`](https://clip-pub.bzine.co/docs/tools/insight-tiktok-content-aggregate.md?lang=ko) ### solari insight instagram account discover > 캠페인 브리프에 맞는 Instagram 크리에이터를 찾습니다. - **CLI**: `solari insight instagram account discover` - **MCP 도구**: `solari_insight_instagram_account_discover` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 브리프를 바탕으로 크리에이터 후보 목록을 만듭니다. 어떤 콘텐츠를 올리는지, 소개글에 무엇이 있는지, 누구와 비슷한지, 성장 중인지, 전에 무엇을 광고했는지로 찾습니다. 팔로워 수와 3개월 조회수로 거르고, 제외 키워드에 걸리는 크리에이터는 뺍니다. **언제 쓰나요** — 아직 모르는 크리에이터가 필요할 때. 이미 이름을 알면 catalog account search 도구를 쓰세요. **돌려주는 값** — search_id, 찾은 전체 수, 상위 username 미리보기, 결과 섹션. 전체 목록은 discover results 도구로 페이지를 넘겨 보세요. #### 파라미터 - `intent` (string, 필수, ≤ 300 chars) — 브리프를 한 문장으로. 결과 이름으로 쓰입니다. - `topic_keywords` (string[], 선택, 1–3 items) — 콘텐츠에 관한 문구 2~3개. 타깃 시장의 언어로 쓰세요. 여러 단어로 된 문구가 더 잘 맞습니다. - `profile_keywords` (string[], 선택, 1–2 items) — 소개글에서 찾을 문구 1~2개. 직업명이나 분야 같은 것. - `similar_username` (string, 선택, ≤ 64 chars) — 참고할 크리에이터의 username. 그 크리에이터와 비슷한 크리에이터를 더합니다. - `trending` (boolean, 선택, 기본값 false) — 조회수가 빠르게 느는 크리에이터도 더합니다. - `product_query` (string, 선택, ≤ 200 chars) — 짧은 영어 제품 설명. 비슷한 제품을 광고한 크리에이터를 앞에 둡니다. - `follower_min` (integer, 선택, ≥ 0) — 최소 팔로워 수. - `follower_max` (integer, 선택, ≥ 0) — 최대 팔로워 수. - `total_views_min` (integer, 선택, ≥ 0) — 최근 3개월 총 조회수 최솟값. - `total_views_max` (integer, 선택, ≥ 0) — 최근 3개월 총 조회수 최댓값. - `median_views_min` (integer, 선택, ≥ 0) — 최근 3개월 게시물당 조회수 중앙값의 최솟값. - `median_views_max` (integer, 선택, ≥ 0) — 최근 3개월 게시물당 조회수 중앙값의 최댓값. - `negative_keywords` (string[], 선택, 1–10 items) — 소개글이나 게시물에 이 단어가 하나라도 있으면 뺍니다. - `media_focus` (enum, 선택, 기본값 "balanced") — 시각 스타일을 맞출 때 사진과 영상 중 어느 쪽을 더 볼지. 값: `balanced`, `photo`, `video`. - `region` (string, 선택, 기본값 "KR") — KR, JP, US 같은 국가 코드. - `brand_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. 브랜드 오디언스와 잘 맞는 순서로 크리에이터를 정렬합니다. - `brand_username` (string, 선택, ≤ 64 chars) — 브랜드 사용자 이름. brand_account_id를 넣으면 무시됩니다. - `limit` (integer, 선택, 기본값 20, 1–60) — 미리보기로 보여 줄 상위 username 수. 전체 목록은 늘 따로 페이지로 받습니다. #### 응답 ##### `Response` - `search_id` (uuid) — discover results 도구에 넣어 전체 목록을 페이지로 넘겨 보세요. - `intent` (string) — 결과 이름으로 쓴 브리프. - `total` (integer) — 찾은 크리에이터 수. - `top_usernames` (string[]) — 가장 잘 맞는 크리에이터 미리보기. 잘 맞는 순서입니다. - `sections` (object[]) — 결과를 나눈 방식. - `duration_ms` (integer) — 검색에 걸린 시간. - `next` (string) — 전체 목록을 페이지로 넘겨 보는 명령어. ##### `sections[]` - `type` (string) — 가장 잘 맞는 크리에이터는 best_match, 나머지는 full_results. - `label` (string) — 표시용 이름. - `count` (integer) — 섹션 첫 페이지의 크리에이터. - `has_more` (boolean) — 섹션이 첫 페이지 뒤로 더 이어지는지 여부. #### 예시 ```console $ solari insight instagram account discover intent="KR makeup creators for an autumn eyeshadow palette launch" topic_keywords='["가을 메이크업 팔레트","데일리 아이섀도우"]' follower_min=10000 follower_max=300000 region=KR limit=5 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "search_id": "01a0f3c2-7e41-7b9a-8d2c-5e6f1a9b3c47", "intent": "KR makeup creators for an autumn eyeshadow palette launch", "total": 184, "top_usernames": [ "beinny_motd", "donge_cos", "… 18 more" ], "sections": [ { "type": "best_match", "label": "베스트 매칭", "count": 12, "has_more": false }, { "type": "full_results", "label": "전체 결과", "count": 48, "has_more": true } ], "duration_ms": 23871, "next": "solari insight instagram account discover results search_id=01a0f3c2-7e41-7b9a-8d2c-5e6f1a9b3c47" } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_account_discover", "arguments": { "intent": "KR makeup creators for an autumn eyeshadow palette launch", "topic_keywords": [ "가을 메이크업 팔레트", "데일리 아이섀도우" ], "follower_min": 10000, "follower_max": 300000, "region": "KR", "limit": 5 } } ``` #### 주의사항 - topic_keywords, profile_keywords, similar_username, product_query, trending=true 중 하나 이상을 넣으세요. - 브리프가 넓으면 최대 1분쯤 걸릴 수 있습니다. - search_id는 계속 쓸 수 있습니다. 나중에 다시 검색하지 않고 정렬을 바꾸거나 페이지를 넘길 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_account_discover_results`](https://clip-pub.bzine.co/docs/tools/insight-instagram-account-discover-results.md?lang=ko) - [`solari_catalog_instagram_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-search.md?lang=ko) - [`solari_insight_instagram_ranking_creators`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-creators.md?lang=ko) ### solari insight instagram account discover results > discover 검색으로 찾은 크리에이터를 페이지로 넘겨 봅니다. - **CLI**: `solari insight instagram account discover results` - **MCP 도구**: `solari_insight_instagram_account_discover_results` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 discover 검색 하나로 찾은 크리에이터 전체 목록을 페이지로 넘겨 봅니다. 크리에이터마다 프로필 지표와 최근 인기 게시물이 함께 나옵니다. **언제 쓰나요** — discover 다음에, 미리보기보다 많이 보거나 다른 순서로 보고 싶을 때. **돌려주는 값** — 크리에이터 한 페이지. 프로필 지표와 최근 게시물이 함께 나옵니다. #### 파라미터 - `search_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)$) — discover에서 받은 search_id. - `page` (integer, 선택, 기본값 1, ≥ 1) — 페이지 번호. 1부터 시작합니다. - `page_size` (integer, 선택, 기본값 20, 1–100) — 한 페이지에 가져올 크리에이터 수. - `sort` (enum, 선택, 기본값 "relevance") — relevance는 검색 순서를 그대로 씁니다. 나머지는 팔로워 수, 조회수 중앙값, 한 달 성장률, 광고 수로 정렬합니다. 값: `relevance`, `follower_count`, `follower_count_asc`, `median_views_cur`, `total_views_growth_m1`, `ad_count_cur`. #### 응답 ##### `Response` - `search_id` (uuid) — 페이지를 넘기고 있는 검색. - `intent` (string) — 브리프. - `total` (integer) — 찾은 크리에이터 수. - `page / page_size` (integer) — 적용한 페이지. - `has_more` (boolean) — 다음 페이지가 있는지 여부. - `items` (object[]) — 이 페이지의 크리에이터. ##### `items[]` - `account_id` (uuid) — 다른 도구에 넣을 account_id. - `username / full_name` (string) — 핸들과 표시 이름. - `bio` (string | null) — 프로필 소개글. - `profile_pic_url` (string | null) — 프로필 사진 URL. - `follower_count` (integer | null) — 팔로워 수. - `median_views_cur` (integer | null) — 최근 3개월 게시물당 조회수 중앙값. - `total_views_cur` (integer | null) — 최근 3개월 총 조회수. - `total_views_growth_m1` (number | null) — 지난 한 달 조회수 성장률. 0.27이면 +27%입니다. - `ad_count_cur` (integer | null) — 최근 광고 게시물. - `reel_count_cur` (integer | null) — 최근 릴스. - `score` (number) — 이 검색에서의 일치 점수. - `rising_score` (number | null) — 성장 점수. trending=true로 들어온 크리에이터에만 있습니다. - `bio_matched / bio_only` (boolean) — bio_matched: 소개글이 맞았습니다. bio_only: 맞는 게시물 없이 소개글만 맞았습니다. - `recent_posts` (object[]) — 최근 인기 게시물. post_id, slug, media_type, media_url, thumbnail_url, text, posted_at, play_count, like_count가 들어 있습니다. #### 예시 ```console $ solari insight instagram account discover results search_id=01a0f3c2-7e41-7b9a-8d2c-5e6f1a9b3c47 page_size=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "search_id": "01a0f3c2-7e41-7b9a-8d2c-5e6f1a9b3c47", "intent": "KR makeup creators for an autumn eyeshadow palette launch", "total": 184, "page": 1, "page_size": 2, "has_more": true, "items": [ { "user_id": "018ecc75-55d8-70a7-a348-d370aa504ed9", "username": "beinny_motd", "full_name": "베이니 BEINNY", "bio": "메이크업 · 뷰티 크리에이터", "profile_pic_url": "https://dcr.bzine.co/instagram/users/beinny_motd/profile-picture", "follower_count": 205754, "total_views_cur": 6184200, "median_views_cur": 98200, "rising_score": null, "total_views_growth_m1": 0.27, "reel_count_cur": 38, "ad_count_cur": 15, "bio_matched": true, "bio_only": false, "score": 0.0487, "recent_posts": [ { "post_id": "01a05575-7c9b-7232-8519-4a38fa061389", "slug": "DcpugJ2kzv8", "media_type": "carousel", "media_url": null, "thumbnail_url": "https://dcr.bzine.co/instagram/posts/DcpugJ2kzv8/thumbnails/m", "text": "#광고 무겁지 않은 가을 데일리 팔레트 로즈밀크티 . .🫖🤎 …", "posted_at": "2026-08-30T05:08:56+00:00", "play_count": null, "like_count": 878 }, "… 2 more" ], "account_id": "018ecc75-55d8-70a7-a348-d370aa504ed9" }, "… 1 more" ] } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_account_discover_results", "arguments": { "search_id": "01a0f3c2-7e41-7b9a-8d2c-5e6f1a9b3c47", "page_size": 2 } } ``` #### 주의사항 - 소개글만으로 일치한 크리에이터는 recent_posts 없이 나올 수 있습니다. - 미디어 파일이 저장돼 있지 않으면 media_url은 null입니다. thumbnail_url은 그래도 쓸 수 있습니다. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_account_discover`](https://clip-pub.bzine.co/docs/tools/insight-instagram-account-discover.md?lang=ko) - [`solari_catalog_instagram_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-profile.md?lang=ko) - [`solari_insight_instagram_account_collabs`](https://clip-pub.bzine.co/docs/tools/insight-instagram-account-collabs.md?lang=ko) ### solari insight instagram content similar > Instagram 게시물 하나와 비슷한 게시물. - **CLI**: `solari insight instagram content similar` - **MCP 도구**: `solari_insight_instagram_content_similar` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 가지고 있는 게시물 하나와 비슷한 Instagram 게시물을 찾습니다. 주제, 형식, 분위기가 비슷한 게시물입니다. 크리에이티브 레퍼런스를 모을 때 좋습니다. **언제 쓰나요** — 게시물 하나에서 출발할 때. 브랜드 광고에서 출발하려면 브랜드와 비슷한 콘텐츠 도구를 쓰세요. **돌려주는 값** — 비슷한 순서대로 정렬한 게시물. 각 게시물에 협찬 여부가 표시됩니다. #### 파라미터 - `post_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)$) — 기준 게시물의 post_id. 어느 콘텐츠 도구에서 받은 값이든 됩니다. - `region` (string, 선택) — KR, JP 같은 국가 코드. 비워 두면 전체 지역에서 찾습니다. - `limit` (integer, 선택, 기본값 20, 1–60) — 한 페이지에 받을 게시물 수. - `offset` (integer, 선택, 기본값 0, 0–120) — 건너뛸 게시물 수. #### 응답 ##### `Response` - `anchor_post_id` (uuid) — 기준 게시물. - `items` (object[]) — 비슷한 순서대로 정렬한 게시물. ##### `items[]` - `post_id` (uuid) — 다른 콘텐츠 도구에 넘기는 게시물 id. - `id` (uuid) — post_id와 같습니다. - `slug` (string | null) — 공개 URL에 있는 shortcode. - `account_id` (uuid | null) — 작성자 account_id. - `label` (string | null) — 작성자 username. - `media_type` (string | null) — image, video, carousel 중 하나. - `thumbnail_url` (string | null) — 썸네일 URL. - `media_url` (string | null) — 미디어 URL. 파일이 저장돼 있지 않으면 null. - `play_count` (integer | null) — 영상 재생 수. - `posted_at` (timestamp | null) — 게시 시각(UTC). - `is_ad` (boolean) — 협찬으로 분류됐는지 여부. #### 예시 ```console $ solari insight instagram content similar post_id=01a04c73-3ec3-7873-9e84-334c644abfe4 limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "anchor_post_id": "01a04c73-3ec3-7873-9e84-334c644abfe4", "items": [ { "id": "019ecb92-a677-7421-8ed6-752efe3d99d0", "post_id": "019ecb92-a677-7421-8ed6-752efe3d99d0", "user_id": "0196cb39-870a-7a76-9773-0b95789c877d", "label": "boo_rookie", "thumbnail_url": "https://dcr.bzine.co/instagram/posts/DZcD8KXxKwd/thumbnails/m", "media_url": null, "media_type": "video", "play_count": 427258, "posted_at": "2026-06-11T08:14:37+00:00", "slug": "DZcD8KXxKwd", "is_ad": false, "account_id": "0196cb39-870a-7a76-9773-0b95789c877d" }, "… 1 more" ] } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_content_similar", "arguments": { "post_id": "01a04c73-3ec3-7873-9e84-334c644abfe4", "limit": 2 } } ``` #### 주의사항 - 최근 약 4개월을 다룹니다. 페이지를 넘겨도 결과는 최대 180개입니다. - 없거나 너무 오래된 post_id를 넣으면 빈 목록이 옵니다. #### 관련 도구 - [`solari_insight_instagram_brand_lookalike_content`](https://clip-pub.bzine.co/docs/tools/insight-instagram-brand-lookalike-content.md?lang=ko) - [`solari_catalog_instagram_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-detail.md?lang=ko) - [`solari_catalog_instagram_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-batch.md?lang=ko) ### solari insight instagram ranking brands > 주변 콘텐츠 성과로 Instagram 브랜드 순위를 매깁니다. - **CLI**: `solari insight instagram ranking brands` - **MCP 도구**: `solari_insight_instagram_ranking_brands` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 한 시장의 브랜드 순위표입니다. 브랜드를 태그하거나 멘션한 게시물의 성과로 순위를 매깁니다. 행마다 협찬 게시물과 비협찬 게시물을 나눠서 보여 줍니다. 그래서 브랜드의 비협찬 성과와 도달 중 유료 비중을 함께 볼 수 있습니다. **언제 쓰나요** — 카테고리 1위가 누구인지, 한 브랜드가 몇 위인지, 비협찬 콘텐츠 성과가 어떤지 알고 싶을 때. 크리에이터는 크리에이터 순위 도구를 쓰세요. **돌려주는 값** — 순위가 매겨진 브랜드 한 페이지. 내 브랜드 위치(me)와 찾아 달라고 한 브랜드(lookup)도 함께 옵니다. #### 파라미터 - `region` (enum, 선택, 기본값 "KR") — KR, JP, US 중 하나. 값: `KR`, `JP`, `US`. - `days` (integer, 선택, 기본값 30) — 30 또는 90. - `sort` (enum, 선택, 기본값 "plays") — 순위 기준. 총 조회수, 게시물당 조회수, 게시물 수, 크리에이터 수, 좋아요, 협찬 조회수, 비협찬 조회수 중 하나. 값: `plays`, `median_plays`, `posts`, `creators`, `likes`, `sponsored_plays`, `organic_plays`. - `scope` (string, 선택, ≤ 120 chars) — 카테고리. all, d1:, d2:/ 중 하나. 쓸 수 있는 값은 categories와 category_groups에 옵니다. - `brand_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. 기본 카테고리를 정하고 내 순위를 me로 돌려줍니다. - `brand_username` (string, 선택, ≤ 64 chars) — 내 브랜드 username. brand_account_id가 있으면 무시합니다. - `find_username` (string, 선택, ≤ 64 chars) — 이 순위표에서 위치를 찾을 브랜드 username. - `min_posts` (integer, 선택, 기본값 1) — 게시물이 이 개수 이상인 브랜드만. 1, 3, 10 중 하나. - `limit` (integer, 선택, 기본값 20, 1–100) — 한 페이지에 받을 행 수. - `offset` (integer, 선택, 기본값 0, ≥ 0) — 건너뛸 행 수. #### 응답 ##### `Response` - `region / days / sort / min_posts` (string · integer) — 적용된 설정. - `scope` (string) — 순위를 매긴 카테고리. - `scope_source` (string) — explicit(직접 지정), brand_default(내 브랜드의 대표 카테고리), default(all) 중 하나. - `total` (integer) — 이 카테고리에 있는 브랜드 수. - `median_metric` (number | null) — 카테고리 전체의 정렬 지표 중앙값. 첫 페이지에만 옵니다. - `sponsored_share_median` (number | null) — 협찬 게시물 비중의 중앙값(0–1). 첫 페이지에만 옵니다. - `snapshot_at` (timestamp | null) — 순위표를 만든 시각. - `items` (object[]) — 순위가 매겨진 브랜드. - `me` (object | null) — 내 브랜드의 rank, total, top_pct, row. - `me_reason` (string | null) — me가 null인 이유. no_brand, not_in_category, below_min_posts, no_posts 중 하나. - `lookup` (object | null) — find_username으로 찾은 브랜드의 rank, total, top_pct, row. - `lookup_reason` (string | null) — lookup이 null인 이유. not_in_category, below_min_posts, no_posts 중 하나. - `lookup_scopes` (string[]) — 찾은 브랜드가 속한 카테고리를 scope 값으로 담았습니다. 이 중 하나로 다시 요청하세요. - `brand_categories` (object[]) — 내 브랜드의 카테고리. 비중이 큰 순서입니다. - `categories / category_groups` (object[]) — 쓸 수 있는 scope 값과 각각의 브랜드 수. ##### `items[] · me.row · lookup.row` - `rank` (integer) — 순위표에서의 순위. - `account_id` (uuid) — 다른 도구에 넘기는 account_id. - `username / full_name` (string) — 핸들과 표시 이름. - `follower_count` (integer | null) — 팔로워 수. - `post_count / creator_count` (integer) — 브랜드에 관한 게시물 수와 그 게시물을 만든 크리에이터 수. - `total_plays / median_plays` (integer) — 총 조회수와 게시물당 조회수. - `total_likes / total_comments` (integer) — 참여. - `sponsored_post_count / sponsored_total_plays / sponsored_median_plays` (integer) — 협찬 게시물만 따로 센 같은 수치. - `organic_median_plays` (integer | null) — 비협찬 게시물의 게시물당 조회수. - `organic_post_count / organic_total_plays` (integer | null) — 협찬을 뺀 게시물 수와 총 조회수. 수치가 맞지 않으면 null. - `sponsored_share` (number | null) — 전체 게시물 중 협찬 게시물 비중(0–1). 게시물이 없으면 null. - `sponsored_reel_count / organic_reel_count` (integer | null) — 각 부분 집합의 릴스 수. - `categories` (string[]) — 브랜드의 카테고리. / 형식입니다. #### 예시 ```console $ solari insight instagram ranking brands region=KR days=30 find_username=innisfreeofficial limit=1 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "region": "KR", "days": 30, "sort": "plays", "scope": "all", "scope_source": "default", "min_posts": 1, "offset": 0, "limit": 1, "total": 21483, "median_metric": 18250, "sponsored_share_median": 0.25, "snapshot_at": "2026-09-22T19:04:11.482913+00:00", "me_reason": "no_brand", "lookup_username": "innisfreeofficial", "lookup_reason": null, "lookup_scopes": [], "brand_categories": [], "categories": [ { "depth_1": "BEAUTY", "depth_2": "MAKEUP", "brands": 1622 }, { "depth_1": "BEAUTY", "depth_2": "SKINCARE", "brands": 1843 }, "… 41 more" ], "category_groups": [ { "depth_1": "BEAUTY", "brands": 3120 }, "… 11 more" ], "items": [ { "account_id": "018cab6d-1648-7071-9734-c47a2be2fd19", "rank": 1, "user_id": "018cab6d-1648-7071-9734-c47a2be2fd19", "username": "oliveyoung_official", "full_name": "올리브영 OLIVE YOUNG", "follower_count": 1199628, "post_count": 18342, "creator_count": 6120, "total_plays": 412880000, "median_plays": 9840, "total_likes": 15230000, "total_comments": 402100, "sponsored_post_count": 7010, "sponsored_total_plays": 131200000, "sponsored_median_plays": 11200, "organic_median_plays": 9100, "sponsored_reel_count": 5230, "organic_reel_count": 8120, "categories": [ "BEAUTY/SKINCARE", "BEAUTY/MAKEUP" ], "organic_post_count": 11332, "organic_total_plays": 281680000, "sponsored_share": 0.3822 } ], "me": null, "lookup": { "rank": 7, "total": 21483, "top_pct": 0.1, "row": { "account_id": "018cabce-14cc-7544-8890-7811ec33ef74", "rank": 7, "user_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "full_name": "INNISFREE | 이니스프리", "follower_count": 847619, "post_count": 1204, "creator_count": 688, "total_plays": 38920400, "median_plays": 14120, "total_likes": 1182300, "total_comments": 30440, "sponsored_post_count": 402, "sponsored_total_plays": 17610200, "sponsored_median_plays": 21800, "organic_median_plays": 11900, "sponsored_reel_count": 318, "organic_reel_count": 611, "categories": [ "BEAUTY/SKINCARE" ], "organic_post_count": 802, "organic_total_plays": 21310200, "sponsored_share": 0.3339 } } } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_ranking_brands", "arguments": { "region": "KR", "days": 30, "find_username": "innisfreeofficial", "limit": 1 } } ``` #### 주의사항 - 순위표는 매일 새로 만듭니다. 만든 시각은 snapshot_at에 있습니다. - 브랜드를 넣고 scope를 비우면 all이 아니라 그 브랜드의 대표 카테고리 순위표가 열립니다. - me와 lookup은 첫 페이지(offset=0)에서만 옵니다. #### 관련 도구 - [`solari_insight_instagram_ranking_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-posts.md?lang=ko) - [`solari_insight_instagram_ranking_find`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-find.md?lang=ko) - [`solari_insight_instagram_ranking_creators`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-creators.md?lang=ko) ### solari insight instagram ranking creators > 카테고리 안에서 Instagram 크리에이터 순위를 매깁니다. - **CLI**: `solari insight instagram ranking creators` - **MCP 도구**: `solari_insight_instagram_ranking_creators` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 한 시장의 크리에이터 순위표입니다. 브랜드를 태그한 콘텐츠를 만드는 크리에이터를 카테고리 안에서 순위를 매깁니다. 그래서 그 카테고리에 게시물 하나만 올린 큰 계정보다 전문 크리에이터가 밀리지 않습니다. 브랜드, 에이전시, 쇼핑몰 계정은 빠집니다. **언제 쓰나요** — 카테고리 상위 크리에이터를 도달, 효율, 성장 기준으로 보고 싶을 때. 브랜드는 브랜드 순위 도구를 쓰세요. **돌려주는 값** — 순위가 매겨진 크리에이터 한 페이지. 찾아 달라고 한 크리에이터(lookup)도 함께 옵니다. #### 파라미터 - `region` (enum, 선택, 기본값 "KR") — KR 또는 JP. 크리에이터가 활동하는 시장입니다. 값: `KR`, `JP`. - `days` (integer, 선택, 기본값 30) — 30 또는 90. - `sort` (enum, 선택, 기본값 "plays") — 순위 기준. 총 조회수, 게시물당 조회수, 좋아요, 협업한 브랜드 수, 협찬 조회수, reach, lift, growth 중 하나. 값: `plays`, `median_plays`, `likes`, `brands`, `sponsored_plays`, `reach`, `lift`, `growth`. - `kind` (enum, 선택, 기본값 "creator") — 개인은 creator, 매거진·미디어 계정은 magazine. 값: `creator`, `magazine`. - `scope` (string, 선택, ≤ 120 chars) — 카테고리. all, d1:, d2:/ 중 하나. 쓸 수 있는 값은 categories와 category_groups에 옵니다. - `brand_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. 그 브랜드의 대표 카테고리 순위표를 엽니다. - `brand_username` (string, 선택, ≤ 64 chars) — 브랜드 username. brand_account_id가 있으면 무시합니다. - `find_username` (string, 선택, ≤ 64 chars) — 이 순위표에서 위치를 찾을 크리에이터 username. - `min_posts` (integer, 선택, 기본값 3) — 카테고리 안 게시물이 이 개수 이상인 크리에이터만. 3, 10, 30 중 하나. - `min_followers` (integer, 선택, 기본값 10000) — 최소 팔로워 수. 1000, 10000, 100000 중 하나. - `limit` (integer, 선택, 기본값 20, 1–100) — 한 페이지에 받을 행 수. - `offset` (integer, 선택, 기본값 0, ≥ 0) — 건너뛸 행 수. #### 응답 ##### `Response` - `region / days / sort / list_kind` (string · integer) — 적용된 설정. - `scope / scope_source` (string) — 순위를 매긴 카테고리와 그 카테고리를 정한 방식. - `min_posts / min_followers / min_reels` (integer) — 적용된 필터. min_reels는 릴스가 필요한 정렬 기준에만 적용됩니다. - `total` (integer) — 이 카테고리에 있는 크리에이터 수. - `max_rank` (integer) — 페이지를 넘겨 볼 수 있는 가장 낮은 순위. - `snapshot_ready` (boolean) — 첫 순위표를 아직 만드는 중이면 false. - `median_metric / sponsored_share_median` (number | null) — 카테고리 중앙값. 첫 페이지에만 옵니다. - `snapshot_at` (timestamp | null) — 순위표를 만든 시각. - `items` (object[]) — 순위가 매겨진 크리에이터. - `lookup / lookup_reason / lookup_scopes` (object | string | string[]) — find_username으로 찾은 크리에이터의 순위·전체 수·top_pct·행. ranking brands와 같은 형태입니다. - `categories / category_groups` (object[]) — 쓸 수 있는 scope 값과 각각의 크리에이터 수. ##### `items[] · lookup.row` - `rank` (integer) — 순위표에서의 순위. - `account_id` (uuid) — 다른 도구에 넘기는 account_id. - `username / full_name` (string) — 핸들과 표시 이름. - `follower_count` (integer | null) — 팔로워 수. - `post_count / reel_count` (integer) — 카테고리 안에서 브랜드를 태그한 게시물과 릴스 수. - `brand_count` (integer) — 그 게시물에 태그된 브랜드 수. - `total_plays / median_plays` (integer) — 총 조회수와 게시물당 조회수. - `total_likes / total_comments` (integer) — 참여. - `sponsored_post_count / sponsored_total_plays / sponsored_median_plays` (integer) — 협찬 게시물만 따로 센 같은 수치. - `organic_median_plays` (integer | null) — 비협찬 게시물의 게시물당 조회수. - `organic_post_count / organic_total_plays` (integer | null) — 협찬을 뺀 게시물 수와 총 조회수. 수치가 맞지 않으면 null. - `sponsored_share` (number | null) — 전체 게시물 중 협찬 게시물 비중(0–1). 게시물이 없으면 null. - `baseline_median_views` (integer | null) — 크리에이터가 올린 모든 게시물 기준의 평소 게시물당 조회수. - `ad_partner_count` (integer | null) — 광고를 진행한 브랜드. - `reach_rate` (number | null) — 팔로워당 조회수. 기준값이 너무 작으면 null. - `lift` (number | null) — 평소 중앙값 대비 게시물당 조회수. 1.5면 평소보다 50% 높다는 뜻입니다. - `growth_m1` (number | null) — 한 달 동안의 조회수 증가율. 0.27이면 +27%입니다. #### 예시 ```console $ solari insight instagram ranking creators region=KR days=30 scope=d2:BEAUTY/MAKEUP limit=1 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "region": "KR", "days": 30, "sort": "plays", "max_rank": 1000, "list_kind": "creator", "scope": "d2:BEAUTY/MAKEUP", "scope_source": "explicit", "min_posts": 3, "min_followers": 10000, "min_reels": 0, "offset": 0, "limit": 1, "snapshot_ready": true, "total": 2841, "median_metric": 61200, "sponsored_share_median": 0.4, "snapshot_at": "2026-09-22T19:04:11.482913+00:00", "lookup_username": null, "lookup_reason": null, "lookup_scopes": [], "categories": [ { "depth_1": "BEAUTY", "creators": 2841, "depth_2": "MAKEUP" }, { "depth_1": "BEAUTY", "creators": 2310, "depth_2": "SKINCARE" }, "… 38 more" ], "category_groups": [ { "depth_1": "BEAUTY", "creators": 5120 }, "… 11 more" ], "items": [ { "account_id": "018ecc75-55d8-70a7-a348-d370aa504ed9", "rank": 1, "user_id": "018ecc75-55d8-70a7-a348-d370aa504ed9", "username": "beinny_motd", "full_name": "베이니 BEINNY", "follower_count": 205754, "post_count": 22, "brand_count": 14, "reel_count": 19, "total_plays": 3120400, "median_plays": 98200, "total_likes": 84210, "total_comments": 3120, "sponsored_post_count": 15, "sponsored_total_plays": 2010300, "sponsored_median_plays": 91200, "organic_median_plays": 112000, "baseline_median_views": 64000, "ad_partner_count": 14, "reach_rate": 0.48, "lift": 1.53, "growth_m1": 0.27, "organic_post_count": 7, "organic_total_plays": 1110100, "sponsored_share": 0.6818 } ], "lookup": null } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_ranking_creators", "arguments": { "region": "KR", "days": 30, "scope": "d2:BEAUTY/MAKEUP", "limit": 1 } } ``` #### 주의사항 - 순위표는 매일 새로 만듭니다. 만든 시각은 snapshot_at에 있습니다. - 기준값이 너무 작은 크리에이터는 reach, lift, growth가 null입니다. - 크리에이터는 자기 게시물에서 실제로 비중이 있는 카테고리에만 집계됩니다. #### 관련 도구 - [`solari_insight_instagram_ranking_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-posts.md?lang=ko) - [`solari_insight_instagram_ranking_find`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-find.md?lang=ko) - [`solari_insight_instagram_account_discover`](https://clip-pub.bzine.co/docs/tools/insight-instagram-account-discover.md?lang=ko) ### solari insight instagram ranking find > 브랜드·크리에이터 순위표에서 계정 하나의 순위를 찾습니다. - **CLI**: `solari insight instagram ranking find` - **MCP 도구**: `solari_insight_instagram_ranking_find` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 Instagram 계정 하나의 순위를 알려 줍니다. 브랜드인지 크리에이터인지 몰라도 됩니다. 계정이 올라 있는 순위표마다, 계정이 속한 모든 카테고리의 순위와 상위 퍼센트를 돌려줍니다. **언제 쓰나요** — "이 계정은 몇 위야?"나 "협찬이 아닌 콘텐츠 성과는 어때?"를 묻는데 어느 순위표인지 모를 때. **돌려주는 값** — 브랜드 쪽과 크리에이터 쪽 결과. 계정이 그 순위표에 없으면 해당 쪽은 null입니다. #### 파라미터 - `username` (string, 필수, ≤ 64 chars) — Instagram username. @는 붙여도 되고 빼도 됩니다. - `region` (enum, 선택, 기본값 "KR") — KR, JP, US 중 하나. 크리에이터 순위표는 KR과 JP만 있습니다. 값: `KR`, `JP`, `US`. - `days` (integer, 선택, 기본값 30) — 30 또는 90. #### 응답 ##### `Response` - `username` (string) — 찾은 핸들. - `region / days` (string · integer) — 적용된 설정. - `sort` (string) — 항상 plays(총 조회수). - `brand` (object | null) — 브랜드 순위표에서의 위치. - `creator` (object | null) — 크리에이터 순위표에서의 위치. ##### `brand · creator` - `account` (object) — account_id, username, full_name, follower_count. - `row` (object | null) — 전체 순위 행. 해당 순위 도구와 필드가 같고, 비협찬 구분 값(organic_post_count, organic_total_plays, organic_median_plays, sponsored_share)도 들어 있습니다. - `positions` (object[]) — 순위에 오른 카테고리마다 항목이 하나씩 있습니다. - `positions[].scope / rank / total / top_pct` (string · integer · number) — 카테고리, 순위, 순위에 오른 수, 상위 퍼센트(최소 0.1). - `positions[].share` (number | null) — 크리에이터 쪽만. 크리에이터 게시물 중 이 카테고리의 비중. - `min_posts / min_followers` (integer) — 계정이 빠지지 않도록 쓴 가장 느슨한 필터. - `list_kind` (string) — 크리에이터 쪽만. creator 또는 magazine. - `snapshot_at` (timestamp | null) — 순위표를 만든 시각. #### 예시 ```console $ solari insight instagram ranking find username=innisfreeofficial region=KR ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "username": "innisfreeofficial", "region": "KR", "days": 30, "sort": "plays", "brand": { "account": { "account_id": "018cabce-14cc-7544-8890-7811ec33ef74", "user_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "full_name": "INNISFREE | 이니스프리", "follower_count": 847619 }, "min_posts": 1, "row": { "account_id": "018cabce-14cc-7544-8890-7811ec33ef74", "rank": 7, "user_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "post_count": 1204, "total_plays": 38920400, "median_plays": 14120, "sponsored_post_count": 402, "sponsored_total_plays": 17610200, "organic_median_plays": 11900, "categories": [ "BEAUTY/SKINCARE" ], "organic_post_count": 802, "organic_total_plays": 21310200, "sponsored_share": 0.3339 }, "positions": [ { "scope": "all", "rank": 7, "total": 21483, "top_pct": 0.1 }, { "scope": "d1:BEAUTY", "rank": 4, "total": 3120, "top_pct": 0.1 }, { "scope": "d2:BEAUTY/SKINCARE", "rank": 2, "total": 1843, "top_pct": 0.1 } ], "snapshot_at": "2026-09-22T19:04:11.482913+00:00" }, "creator": null } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_ranking_find", "arguments": { "username": "innisfreeofficial", "region": "KR" } } ``` #### 주의사항 - 가장 느슨한 필터를 씁니다. 그래서 여기 순위가 필터를 더 엄격하게 건 목록보다 높게 나올 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_ranking_brands`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-brands.md?lang=ko) - [`solari_insight_instagram_ranking_creators`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-creators.md?lang=ko) ### solari insight instagram ranking posts > 순위 행 뒤에 있는 상위 게시물. - **CLI**: `solari insight instagram ranking posts` - **MCP 도구**: `solari_insight_instagram_ranking_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 순위표 한 행 뒤에 있는 성과가 가장 좋은 게시물입니다. 브랜드나 크리에이터 수치의 근거가 됩니다. 게시물마다 협찬 여부가 표시되고, kind=organic이면 비협찬 게시물만 남깁니다. **언제 쓰나요** — 브랜드나 크리에이터 순위를 본 뒤, 한 행의 수치가 어디서 나왔는지 보고 싶을 때. **돌려주는 값** — 작성자 정보가 붙은 상위 게시물. 성과가 좋은 순서입니다. #### 파라미터 - `board` (enum, 필수) — brand 또는 creator. 행이 나온 순위표입니다. 값: `brand`, `creator`. - `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. - `region` (enum, 선택, 기본값 "KR") — 목록과 같은 시장. 값: `KR`, `JP`, `US`. - `days` (integer, 선택, 기본값 30) — 목록과 같은 기간. 30 또는 90. - `scope` (string, 선택, ≤ 120 chars) — 크리에이터 순위표만. 목록에서 쓴 것과 같은 scope. - `kind` (enum, 선택, 기본값 "all") — all, 협찬 게시물만 보는 sponsored, 비협찬 게시물만 보는 organic 중 하나. 값: `all`, `sponsored`, `organic`. - `limit` (integer, 선택, 기본값 6, 1–12) — 받을 게시물 수. #### 응답 ##### `Response` - `account_id` (uuid) — 행의 계정. - `kind` (string) — all, sponsored, organic 중 하나. - `checked_top_posts` (integer) — kind=organic일 때만. 행의 상위 게시물 중 확인한 개수. - `items` (object[]) — 상위 게시물. 성과가 좋은 순서입니다. ##### `items[]` - `post_id / slug` (string) — 게시물 식별자. - `posted_at` (timestamp | null) — 게시 시각(UTC). - `media_type` (string) — image 또는 video. - `thumbnail_url` (string) — 썸네일 URL. - `media_url` (string | null) — 미디어 URL. 파일이 저장돼 있지 않으면 null. - `play_count` (integer | null) — 영상 재생 수. - `sponsored` (boolean) — 협찬 게시물인지 여부. - `author` (object) — account_id, username, full_name, follower_count, profile_pic_url. #### 예시 ```console $ solari insight instagram ranking posts board=brand account_id=018cabce-14cc-7544-8890-7811ec33ef74 region=KR limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "account_id": "018cabce-14cc-7544-8890-7811ec33ef74", "kind": "all", "items": [ { "post_id": "01a04c73-3ec3-7873-9e84-334c644abfe4", "slug": "DckGrZ6vZiU", "posted_at": "2026-08-21T10:03:52+00:00", "media_type": "video", "media_url": null, "thumbnail_url": "https://dcr.bzine.co/instagram/posts/DckGrZ6vZiU/thumbnails/m", "play_count": 155729, "author": { "account_id": "0196c474-c96e-71ad-aceb-61af051c81d3", "user_id": "0196c474-c96e-71ad-aceb-61af051c81d3", "username": "hwitto_", "full_name": null, "follower_count": 48210, "profile_pic_url": "https://dcr.bzine.co/instagram/users/hwitto_/profile-picture" }, "sponsored": true }, "… 1 more" ] } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_ranking_posts", "arguments": { "board": "brand", "account_id": "018cabce-14cc-7544-8890-7811ec33ef74", "region": "KR", "limit": 2 } } ``` #### 주의사항 - 목록과 같은 region, days, (크리에이터라면) scope를 쓰세요. 다르면 게시물이 수치와 맞지 않습니다. - 브랜드 순위표에서는 작성자가 대부분 브랜드를 태그하거나 멘션한 크리에이터입니다. - 행마다 조회수 기준 상위 6개 게시물만 보관합니다. kind=organic은 그중 비협찬 게시물만 돌려주니까 개수가 적거나 비어 있을 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_ranking_brands`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-brands.md?lang=ko) - [`solari_insight_instagram_ranking_creators`](https://clip-pub.bzine.co/docs/tools/insight-instagram-ranking-creators.md?lang=ko) - [`solari_catalog_instagram_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-batch.md?lang=ko) ### solari insight instagram hashtag trending > 급상승·인기 Instagram 해시태그. - **CLI**: `solari insight instagram hashtag trending` - **MCP 도구**: `solari_insight_instagram_hashtag_trending` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 시장과 기간별 해시태그 순위표입니다. 두 목록으로 나옵니다. rising은 직전 기간보다 비중이 가장 빨리 늘어난 해시태그입니다. top은 평소보다 얼마나 더 쓰였는지로 가중한 게시량 순위입니다. 브랜드를 넣으면 그 브랜드 주변 크리에이터 사이에서 뜨는 해시태그를 볼 수 있습니다. **언제 쓰나요** — 시장 전체나 브랜드 주변에서 지금 뜨는 해시태그를 알고 싶을 때. **돌려주는 값** — rising 목록과 top 목록. 태그마다 게시량, 증가율, 일별 비중 시계열이 있습니다. #### 파라미터 - `region` (enum, 선택, 기본값 "KR") — KR 또는 JP. 값: `KR`, `JP`. - `days` (integer, 선택, 기본값 30) — 7, 30, 90 중 하나. 증가율은 바로 이전 같은 길이의 기간과 비교합니다. - `brand_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. 수치를 그 브랜드 주변 크리에이터로 좁힙니다. - `brand_username` (string, 선택, ≤ 64 chars) — 브랜드 username. brand_account_id가 있으면 무시합니다. - `limit` (integer, 선택, 기본값 30, 1–100) — 목록마다 남길 태그 수. #### 응답 ##### `Response` - `region / days / start_date / end_date` (string · integer · date) — 적용된 시장과 기간. - `lens` (string) — 브랜드 주변 크리에이터로 좁혔으면 brand, 시장 전체면 global. - `lens_reason` (string | null) — brand, no_brand(브랜드를 넣지 않음), brand_not_modeled 중 하나. brand_not_modeled는 SOLARI가 아직 이 브랜드 주변 크리에이터를 정하지 못해서 시장 전체를 썼다는 뜻입니다. - `pool_size` (integer | null) — 브랜드 기준에 들어간 크리에이터 수. global이면 null. - `spark_dates` (date[]) — spark 값마다의 날짜. - `top / rising` (object[]) — 두 목록. - `top_total / rising_total` (integer) — limit을 적용하기 전 목록 전체 크기. ##### `top[] · rising[]` - `tag` (string) — 해시태그. #는 뺍니다. - `count / prev_count` (integer) — 이번 기간과 직전 기간의 게시물 수. - `unique_creators` (integer) — 이 해시태그를 쓴 크리에이터 수. - `views` (integer) — 총 조회수. - `sponsored_pct` (integer) — 협찬 게시물 비율(%). - `growth_x` (number) — 직전 기간 대비 비중 증가. 3.9면 3.9배입니다. - `is_new` (boolean) — 직전 기간에는 거의 쓰이지 않았습니다. - `spark` (number[]) — spark_dates 날짜별로 전체 게시물 중 이 해시태그의 비중(%). - `momentum` (number | null) — 기간 초반 비중 대비 후반 비중. 1보다 크면 아직 오르는 중입니다. - `lift / global_growth_x / contrast` (number · number · string | null) — 브랜드 기준일 때만. 브랜드 주변 크리에이터가 시장보다 얼마나 더 쓰는지, 시장 증가율, 그리고 두 값이 다를 때 local인지 nationwide인지. - `watch` (boolean) — 눈여겨볼 만한 태그. 새로 나왔거나 빠르게 늘고 있고, 광고가 아직 많지 않습니다. - `watch_reasons` (string[]) — new, lift, growth, room(광고가 아직 적음), creators. 중요한 것부터 나열합니다. - `family` (object[]) — 이 태그로 합친 다른 표기와 각각의 개수. #### 예시 ```console $ solari insight instagram hashtag trending region=KR days=7 limit=1 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "region": "KR", "days": 7, "start_date": "2026-09-15", "end_date": "2026-09-22", "lens": "global", "lens_reason": "no_brand", "pool_size": null, "spark_dates": [ "2026-09-15", "2026-09-16", "… 6 more" ], "top": [ { "tag": "올영세일", "count": 4812, "unique_creators": 2210, "views": 38400000, "sponsored_pct": 41, "prev_count": 1290, "growth_x": 3.62, "is_new": false, "spark": [ 0.62, 0.71, 0.94, 1.38, 1.52, 1.61, 1.49, 1.44 ], "momentum": 1.84, "lift": null, "global_growth_x": null, "contrast": null, "watch": false, "watch_reasons": [ "growth", "creators" ], "family": [ { "tag": "올리브영세일", "count": 612 } ] } ], "rising": [ { "tag": "가을메이크업", "count": 356, "unique_creators": 241, "views": 2140000, "sponsored_pct": 12, "prev_count": 88, "growth_x": 3.9, "is_new": false, "spark": [ 0.05, 0.06, 0.07, 0.08, 0.09, 0.1, 0.11, 0.12 ], "momentum": 1.52, "lift": null, "global_growth_x": null, "contrast": null, "watch": true, "watch_reasons": [ "growth", "room", "creators" ], "family": [] } ], "top_total": 20, "rising_total": 20 } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_hashtag_trending", "arguments": { "region": "KR", "days": 7, "limit": 1 } } ``` #### 주의사항 - KR과 JP를 다룹니다. - 브랜드 기준 순위표를 보기 전에 lens를 확인하세요. brand_not_modeled면 시장 전체 결과를 받은 것입니다. #### 관련 도구 - [`solari_insight_instagram_hashtag_detail`](https://clip-pub.bzine.co/docs/tools/insight-instagram-hashtag-detail.md?lang=ko) - [`solari_insight_instagram_hashtag_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-hashtag-posts.md?lang=ko) - [`solari_insight_instagram_content_trend_clusters`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-trend-clusters.md?lang=ko) ### solari insight instagram hashtag detail > Instagram 해시태그 하나의 상세 정보. - **CLI**: `solari insight instagram hashtag detail` - **MCP 도구**: `solari_insight_instagram_hashtag_detail` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 시장과 기간을 정해 해시태그 하나를 자세히 봅니다. 게시량, 증가율, 상승세, 일별 비중 시계열, 함께 쓰인 태그, 이 태그를 가장 많이 쓴 크리에이터를 알려 줍니다. **언제 쓰나요** — 해시태그 트렌드를 본 뒤, 태그 하나를 더 자세히 봐야 할 때. **돌려주는 값** — 태그 수치, 일별 시계열, 관련 태그, 상위 크리에이터. #### 파라미터 - `tag` (string, 필수, ≤ 100 chars) — 해시태그. #는 붙여도 되고 빼도 됩니다. - `region` (enum, 선택, 기본값 "KR") — KR 또는 JP. 값: `KR`, `JP`. - `days` (integer, 선택, 기본값 30) — 7, 30, 90 중 하나. - `brand_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. 순위표와 같은 기준으로 보려면 같은 브랜드를 넣으세요. - `brand_username` (string, 선택, ≤ 64 chars) — 브랜드 username. brand_account_id가 있으면 무시합니다. #### 응답 ##### `Response` - `tag` (string) — 태그. #는 뺍니다. - `region / days / start_date / end_date` (string · integer · date) — 적용된 시장과 기간. - `lens / lens_reason / pool_size` (string · string · integer | null) — 해시태그 트렌드와 같습니다. - `count / prev_count / unique_creators / views` (integer) — 이번 기간 게시량, 직전 기간 게시량, 크리에이터 수, 조회수. - `sponsored_pct` (integer) — 협찬 게시물 비율(%). - `share_pct` (number) — 기간 안 전체 게시물 중 이 태그의 비중(%). - `growth_x` (number) — 직전 기간 대비 비중 증가. - `is_new` (boolean) — 직전 기간에는 거의 쓰이지 않았습니다. - `momentum` (number | null) — 기간 초반 비중 대비 후반 비중. - `series` (object[]) — 날짜별 추이. date, count, share(%). - `related` (object[]) — 함께 쓰인 태그. tag, count, 이 태그 게시물 중 비율(pct). - `creators` (object[]) — 이 태그를 가장 많이 쓴 사용자. ##### `creators[]` - `account_id` (uuid) — 다른 도구에 넘기는 account_id. - `username` (string) — 핸들. - `posts` (integer) — 기간 안에 이 태그를 단 게시물 수. - `views` (integer) — 그 게시물의 조회수. - `follower_count` (integer | null) — 팔로워 수. #### 예시 ```console $ solari insight instagram hashtag detail tag=가을메이크업 region=KR days=7 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "tag": "가을메이크업", "region": "KR", "days": 7, "start_date": "2026-09-15", "end_date": "2026-09-22", "lens": "global", "lens_reason": "no_brand", "pool_size": null, "count": 356, "prev_count": 88, "unique_creators": 241, "views": 2140000, "sponsored_pct": 12, "share_pct": 0.084, "growth_x": 3.9, "is_new": false, "momentum": 1.52, "series": [ { "date": "2026-09-15", "count": 21, "share": 0.05 }, { "date": "2026-09-16", "count": 27, "share": 0.06 }, "… 6 more" ], "related": [ { "tag": "가을립", "count": 64, "pct": 18 }, { "tag": "데일리메이크업", "count": 57, "pct": 16 }, "… 22 more" ], "creators": [ { "username": "beinny_motd", "user_id": "018ecc75-55d8-70a7-a348-d370aa504ed9", "posts": 3, "views": 184300, "follower_count": 205754, "account_id": "018ecc75-55d8-70a7-a348-d370aa504ed9" }, { "username": "donge_cos", "user_id": "0195474c-8ee3-7690-a385-71b2913e31b5", "posts": 2, "views": 96120, "follower_count": 83354, "account_id": "0195474c-8ee3-7690-a385-71b2913e31b5" }, "… 10 more" ] } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_hashtag_detail", "arguments": { "tag": "가을메이크업", "region": "KR", "days": 7 } } ``` #### 주의사항 - KR과 JP를 다룹니다. #### 관련 도구 - [`solari_insight_instagram_hashtag_trending`](https://clip-pub.bzine.co/docs/tools/insight-instagram-hashtag-trending.md?lang=ko) - [`solari_insight_instagram_hashtag_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-hashtag-posts.md?lang=ko) ### solari insight instagram hashtag posts > 인기 Instagram 해시태그 하나를 단 게시물. - **CLI**: `solari insight instagram hashtag posts` - **MCP 도구**: `solari_insight_instagram_hashtag_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 트렌드 기간 안에 해시태그 하나를 단 게시물입니다. 조회수가 많은 순서나 최신순으로 받습니다. 순위표 항목 뒤에 있는 실제 사례입니다. **언제 쓰나요** — 태그 트렌드를 만든 게시물을 보고 싶을 때. 태그의 전체 기록이 필요하면 카탈로그 태그 검색을 쓰세요. **돌려주는 값** — 게시물 한 페이지. 페이지를 넘길 때 쓰는 total도 함께 옵니다. #### 파라미터 - `tag` (string, 필수, ≤ 100 chars) — 해시태그. #는 붙여도 되고 빼도 됩니다. - `region` (enum, 선택, 기본값 "KR") — KR 또는 JP. 값: `KR`, `JP`. - `days` (integer, 선택, 기본값 30) — 7, 30, 90 중 하나. - `brand_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. 순위표와 같은 기준을 유지합니다. - `brand_username` (string, 선택, ≤ 64 chars) — 브랜드 username. brand_account_id가 있으면 무시합니다. - `sort` (enum, 선택, 기본값 "views") — 조회수 많은 순은 views, 최신순은 recent. 값: `views`, `recent`. - `limit` (integer, 선택, 기본값 12, 1–24) — 한 페이지에 받을 게시물 수. - `offset` (integer, 선택, 기본값 0, 0–960) — 건너뛸 게시물 수. #### 응답 ##### `Response` - `tag` (string) — 태그. #는 뺍니다. - `total` (integer) — 기간 안에 이 태그를 단 게시물 수. - `offset` (integer) — 적용된 offset. - `items` (object[]) — 게시물 목록. ##### `items[]` - `post_id / slug` (string) — 게시물 식별자. - `account_id / username` (string) — 작성자. - `posted_at` (timestamp) — 게시 시각. - `play_count / like_count` (integer) — 조회수와 좋아요 수. #### 예시 ```console $ solari insight instagram hashtag posts tag=가을메이크업 region=KR days=30 limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "tag": "가을메이크업", "total": 1204, "offset": 0, "items": [ { "post_id": "01a05575-7c9b-7232-8519-4a38fa061389", "user_id": "018ecc75-55d8-70a7-a348-d370aa504ed9", "username": "beinny_motd", "slug": "DcpugJ2kzv8", "posted_at": "2026-08-30T05:08:56+00:00", "play_count": 0, "like_count": 878, "account_id": "018ecc75-55d8-70a7-a348-d370aa504ed9" }, "… 1 more" ] } ``` #### MCP 호출 ```json { "name": "solari_insight_instagram_hashtag_posts", "arguments": { "tag": "가을메이크업", "region": "KR", "days": 30, "limit": 2 } } ``` #### 주의사항 - offset은 최대 960까지 넘길 수 있습니다. - 캡션과 미디어가 필요하면 post_id를 카탈로그 콘텐츠 일괄 조회에 넘기세요. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_insight_instagram_hashtag_detail`](https://clip-pub.bzine.co/docs/tools/insight-instagram-hashtag-detail.md?lang=ko) - [`solari_catalog_instagram_tag_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-tag-search.md?lang=ko) - [`solari_catalog_instagram_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-batch.md?lang=ko) ### solari catalog instagram tag search > 해시태그나 멘션이 들어간 게시물을 찾을 때 씁니다. - **CLI**: `solari catalog instagram tag search` - **MCP 도구**: `solari_catalog_instagram_tag_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 수집한 전체 기록에서 해시태그나 멘션을 정확히 일치하는 것으로 찾습니다. 본문 어디에든 들어간 키워드를 찾으려면 콘텐츠 검색을 쓰세요. **언제 쓰나요** — 캠페인 해시태그의 도달을 보거나, 어떤 계정을 멘션한 게시물을 찾을 때. **돌려주는 값** — 태그가 들어간 게시물. 최근에 수집한 순서입니다. #### 파라미터 - `query` (string, 필수, ≤ 200 chars) — 해시태그(#ootd) 또는 멘션(@username). - `limit` (integer, 선택, 기본값 20, 1–1000) — 한 페이지에 받을 게시물 수. - `cursor` (string, 선택) — 이전 페이지에서 받은 next_cursor. #### 응답 ##### `Response` - `query` (string) — 실제로 조회한 태그. 앞의 #나 @는 뺍니다. - `tag_kind` (string) — hashtag 또는 mention. 검색어를 어느 쪽으로 읽었는지 알려 줍니다. - `matched_tags` (integer) — 저장된 표기 중 일치한 개수. 0이면 이 태그가 한 번도 수집되지 않았다는 뜻입니다. - `items` (object[]) — 찾은 게시물. - `found` (integer) — 상세 정보까지 불러온 게시물 수. - `next_cursor` (string | null) — 다음 페이지를 받을 때 cursor로 넣습니다. 마지막 페이지면 null. - `mirror_synced_at` (timestamp | null) — 태그 색인을 마지막으로 갱신한 시각(UTC). ##### `items[]` - `id` (uuid) — 게시물 id. - `slug` (string) — Instagram shortcode. - `text` (string) — 캡션. - `posted_at` (timestamp) — 게시 시각(UTC). - `username / user_id / account_id` (string) — 작성 계정. - `like_count / comment_count` (integer) — 참여. - `play_count` (integer | null) — 영상 재생 수. - `media_type` (string) — 게시물 형식. - `assets` (object[]) — 순서대로 담긴 미디어 파일. 각 파일에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 받는 다운로드 링크. 저장된 파일이 없으면 null. #### 예시 ```console $ solari catalog instagram tag search query=#ootd limit=3 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "query": "ootd", "tag_kind": "hashtag", "matched_tags": 1, "items": [ { "id": "01a06a16-781f-7578-822b-1c326e72f28d", "slug": "DW1jniHiVSU", "text": "御殿場是一個一天逛不完的地方 希望下次有時間可以慢慢逛 —— OOTD —— Pants:LAKOLE / Shirt:HARE #LYNN__OOTD #日常穿搭 #ootd …", "posted_at": "2026-04-07T16:16:21Z", "virtual_campaign": null, "username": "llling_yinnnnn", "user_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04", "account_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04", "profile_picture_url": null, "like_count": 3, "comment_count": 4, "media_type": "post", "play_count": null, "media": [] }, { "id": "01a06a16-552d-7099-ae0a-77e6b68de960", "slug": "DaS66VzJBPW", "text": "SEOUL OOTD — 這次搭配了四種完全不同風格 #ootd #lynn__ootd #穿搭販賣機 #韓國穿搭", "posted_at": "2026-07-02T15:33:13Z", "virtual_campaign": null, "username": "llling_yinnnnn", "user_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04", "account_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04", "profile_picture_url": null, "like_count": 32, "comment_count": 1, "media_type": "reel", "play_count": 888, "media": [] }, "… 1 more" ], "found": 3, "next_cursor": "01a06a16-552d-7099-ae0a-77e6b68de960", "mirror_synced_at": "2026-09-03T21:47:19Z" } ``` #### MCP 호출 ```json { "name": "solari_catalog_instagram_tag_search", "arguments": { "query": "#ootd", "limit": 3 } } ``` #### 주의사항 - 정렬 기준은 posted_at이 아니라 수집 시각입니다. 게시 시각이 중요하면 posted_at으로 직접 정렬하세요. - 태그 색인은 매일 갱신됩니다. mirror_synced_at이 기준 시각입니다. - 정확히 일치해야 찾습니다. #ootd로는 #ootdkorea가 나오지 않습니다. 멘션은 앞에 @를 붙이세요. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_catalog_instagram_content_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-search.md?lang=ko) - [`solari_insight_instagram_content_aggregate`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-aggregate.md?lang=ko) - [`solari_insight_instagram_hashtag_posts`](https://clip-pub.bzine.co/docs/tools/insight-instagram-hashtag-posts.md?lang=ko) ### solari catalog tiktok account search > 추적 중인 TikTok 계정을 username이나 이름으로 찾습니다. account_id를 얻을 때 씁니다. - **CLI**: `solari catalog tiktok account search` - **MCP 도구**: `solari_catalog_tiktok_account_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 SOLARI가 이미 추적 중인 TikTok 계정에서 username이나 표시 이름으로 브랜드나 크리에이터를 찾습니다. TikTok 카탈로그는 작으니 fetch tiktok account search부터 시작하세요. Instagram account_id는 여기서 쓸 수 없습니다. **언제 쓰나요** — 이미 추적 중인 계정의 account_id가 필요할 때. 처음 보는 이름이면 fetch tiktok account search부터 쓰세요. **돌려주는 값** — 일치하는 계정. 가장 가까운 순서입니다. #### 파라미터 - `query` (string, 필수) — 이름 또는 TikTok username. - `limit` (integer, 선택, 기본값 8, 1–50) — 받을 계정 수. - `region` (string, 선택, ≤ 8 chars) — KR, JP 같은 국가 코드. 비워 두면 전체 지역에서 찾습니다. #### 응답 ##### `Response` - `found` (boolean) — 일치하는 계정이 있는지 여부. - `items` (object[]) — 일치한 계정. 가장 가까운 순서입니다. ##### `items[]` - `account_id` (uuid) — TikTok account_id. Instagram 값과 바꿔 쓸 수 없습니다. - `username` (string) — TikTok username. - `nickname` (string) — 표시 이름. - `follower_count / video_count` (integer) — 팔로워 수와 영상 수. - `region` (string | null) — 지역 코드. 수집한 계정 중 상당수는 값이 없습니다. - `is_verified / is_private` (boolean) — 인증 여부와 비공개 여부. - `is_commerce_user` (boolean) — 커머스 계정인지 여부. - `commerce_user_category` (string | null) — 커머스 카테고리. 예: Beauty. - `profile_url` (string) — 공개 프로필 URL. #### 예시 ```console $ solari catalog tiktok account search query=innisfree limit=5 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "found": true, "items": [ { "account_id": "019b2137-f76e-7b33-9437-26044fa7b1ed", "username": "innisfree_official", "nickname": "Innisfreeofficial", "follower_count": 143800, "video_count": 767, "region": "KR", "is_verified": true, "is_private": false, "is_commerce_user": true, "commerce_user_category": "Beauty", "profile_url": "https://www.tiktok.com/@innisfree_official" } ] } ``` #### MCP 호출 ```json { "name": "solari_catalog_tiktok_account_search", "arguments": { "query": "innisfree", "limit": 5 } } ``` #### 주의사항 - region을 넣으면 그 국가 계정만 남고, 지역 정보가 없는 계정은 빠집니다. 꼭 필요할 때만 넣으세요. - SOLARI가 아직 수집하지 않은 username은 여기 나오지 않습니다. fetch tiktok account search로 찾거나 정확한 핸들을 solari fetch tiktok account에 넘긴 다음, 카탈로그 TikTok 계정 프로필로 읽으세요. #### 관련 도구 - [`solari_catalog_tiktok_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-profile.md?lang=ko) - [`solari_catalog_tiktok_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-posts.md?lang=ko) - [`solari_catalog_instagram_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-search.md?lang=ko) ### solari catalog tiktok account profile > TikTok 계정 프로필과 최근 게시물. - **CLI**: `solari catalog tiktok account profile` - **MCP 도구**: `solari_catalog_tiktok_account_profile` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 TikTok 계정 프로필과 최근 게시물 미리보기. **언제 쓰나요** — TikTok 계정을 전체적으로 파악하고 싶을 때. **돌려주는 값** — 프로필, 최근 게시물, 계정 수집 여부. #### 파라미터 - `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)$) — TikTok account_id(SOLARI 계정 UUID). 이 값이나 username 중 하나를 넣으세요. - `username` (string, 선택, ≤ 64 chars) — TikTok username. account_id가 있으면 무시합니다. #### 응답 ##### `Response` - `account_id` (uuid) — TikTok account_id. - `username / nickname / bio` (string) — username, 표시 이름, 소개글. - `bio_links` (string[]) — 소개글에 있는 링크. - `follower_count / following_count` (integer) — 팔로워 수와 팔로잉 수. - `heart_count` (integer) — 계정 전체의 누적 좋아요 수. - `video_count` (integer) — 게시한 영상 수. - `is_verified / is_private` (boolean) — 인증 여부와 비공개 여부. - `is_commerce_user / commerce_user_category` (boolean · string) — 커머스 여부와 카테고리. - `region / language` (string | null) — 지역 코드와 언어 코드. - `avatar_url / profile_url` (string) — 프로필 사진과 공개 프로필 링크. - `tracked` (boolean) — 정기 수집 대상인지 여부. - `sync_status` (string) — 수집 상태. - `synced_at` (timestamp) — 마지막 수집 시각. - `recent_posts` (object[]) — 최근 게시물 미리보기. - `fetched_on_demand` (boolean) — 이번 호출에서 계정을 실시간으로 가져왔으면 true. ##### `recent_posts[]` - `post_id` (uuid) — TikTok 게시물 id. Instagram 값과 바꿔 쓸 수 없습니다. - `video_id` (string) — TikTok URL에 있는 공개 숫자 id. - `url` (string) — 공개 고유 링크. - `account_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 username. - `post_type` (string) — video 또는 carousel. - `posted_at` (timestamp) — 게시 시각(UTC). - `caption` (string) — 캡션. - `duration_seconds` (integer) — 영상 길이. - `width / height` (integer) — 해상도. - `play_count` (integer) — 재생 수. - `like_count` (integer) — 좋아요 수. - `comment_count` (integer) — 댓글 수. - `share_count` (integer) — 공유 수. - `collect_count` (integer) — 저장 수. - `is_ad` (boolean) — TikTok 광고 표시. - `is_pinned` (boolean) — 프로필 상단 고정 여부. - `aigc_label_type` (string | null) — AI 생성 콘텐츠 라벨. TikTok이 붙였을 때만 있습니다. - `original_language_code` (string | null) — 원본 언어. - `cover_url` (string) — 커버 이미지 URL. - `video_url` (string) — 영상 파일 URL. - `images` (string[]) — 캐러셀 슬라이드. 영상이면 비어 있습니다. - `hashtags` (string[]) — 캡션에 있는 해시태그. - `mentions` (string[]) — 캡션에서 멘션한 username. - `transcript` (string | null) — 영상 자막. account posts와 content batch에서는 include_transcript=true일 때만 옵니다. - `assets` (object[]) — 순서대로 담긴 미디어 파일. 각 파일에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 받는 다운로드 링크. 저장된 파일이 없으면 null. #### 예시 ```console $ solari catalog tiktok account profile username=innisfree_official ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "account_id": "019b2137-f76e-7b33-9437-26044fa7b1ed", "username": "innisfree_official", "nickname": "Innisfreeofficial", "bio": "NATURE MEETS KOREAN SKIN SCIENCE", "bio_links": [ "https://linktr.ee/innisfree_official" ], "follower_count": 143900, "following_count": 14, "heart_count": 2200000, "video_count": 767, "is_verified": true, "is_private": false, "is_commerce_user": true, "commerce_user_category": "Beauty", "region": "KR", "language": null, "avatar_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/3f8e48dc4a284a8ead37e93175ebdb86~tplv-tiktokx-cropcenter:720:720.jpeg?dr=10399&refresh_token=04b90255&x-expires=1788541200&x-signature=Gd3gJu4HyBZPCr%2FqEevyDs6 …", "profile_url": "https://www.tiktok.com/@innisfree_official", "sync_status": "OK", "tracked": true, "synced_at": "2026-09-02T17:16:05.835000Z", "recent_posts": [ { "post_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3834", "video_id": "7680375687139642645", "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645", "account_id": "019b2137-f76e-7b33-9437-26044fa7b1ed", "username": "innisfree_official", "post_type": "video", "posted_at": "2026-09-02T12:00:00Z", "caption": "Deeply hydrated skin—NO OFF HOURS. 💚 wherever the day takes MINGYU—his hydration stays SUPERCHARGED ⚡️ Green Tea Ceramide Milk: Lightweight milky toner that won't clog your pores Green Tea Ceramide Mist: Touch-free, fa …", "duration_seconds": 23, "width": 1080, "height": 1920, "play_count": 493, "like_count": 37, "comment_count": 2, "share_count": 0, "collect_count": 3, "is_ad": false, "is_pinned": false, "aigc_label_type": null, "original_language_code": null, "cover_url": "https://smr-images-a.bzine.co/tiktok/users/019b2137-f76e-7b33-9437-26044fa7b1ed/posts/01a0631e-f0df-7e9d-a09b-d84bc31d3834/medias/cover.jpg", "video_url": "https://smr-images-a.bzine.co/tiktok/users/019b2137-f76e-7b33-9437-26044fa7b1ed/posts/01a0631e-f0df-7e9d-a09b-d84bc31d3834/medias/origin.mp4", "images": [], "hashtags": [], "mentions": [], "transcript": null }, "… 5 more" ], "fetched_on_demand": false } ``` #### MCP 호출 ```json { "name": "solari_catalog_tiktok_account_profile", "arguments": { "username": "innisfree_official" } } ``` #### 주의사항 - 카탈로그만 읽습니다. 계정이 아직 카탈로그에 없으면 solari fetch tiktok account username=… 을 실행한 뒤 다시 시도하세요. - 찾을 수 없다는 오류가 오면 그 핸들이 카탈로그에 없다는 뜻입니다. #### 관련 도구 - [`solari_catalog_tiktok_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-posts.md?lang=ko) - [`solari_catalog_tiktok_account_history`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-history.md?lang=ko) - [`solari_catalog_tiktok_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-search.md?lang=ko) - [`solari_catalog_instagram_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-profile.md?lang=ko) ### solari catalog tiktok account posts > TikTok 계정의 게시물. - **CLI**: `solari catalog tiktok account posts` - **MCP 도구**: `solari_catalog_tiktok_account_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 TikTok 계정의 게시물 목록을 가져옵니다. 영상에서 말한 내용이 필요할 때만 include_transcript를 켜세요. **언제 쓰나요** — 프로필 미리보기보다 많은 게시물이 필요하거나, 기간이나 형식으로 거르고 싶을 때 쓰세요. **돌려주는 값** — 게시물 목록. 요청하면 영상 자막도 함께 옵니다. #### 파라미터 - `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)$) — TikTok account_id(SOLARI 계정 UUID). 이 값이나 username 중 하나를 넣으세요. - `username` (string, 선택, ≤ 64 chars) — TikTok username. account_id를 넣으면 무시합니다. - `limit` (integer, 선택, 기본값 12, 1–200) — 한 페이지에 가져올 게시물 수. - `offset` (integer, 선택, 기본값 0, ≥ 0) — 건너뛸 게시물 수. - `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) 이전에 올라온 게시물만 가져옵니다. 당일 포함. - `post_type` (enum, 선택) — video나 carousel 중 하나로 좁힙니다. 값: `video`, `carousel`. - `include_transcript` (boolean, 선택, 기본값 false) — 영상 자막을 함께 가져옵니다. #### 응답 ##### `Response` - `found` (boolean) — TikTok에 없는 username이면 false. - `account_id / username` (string) — 찾은 계정. - `total` (integer) — 필터에 맞는 게시물 수. - `has_more` (boolean) — 다음 페이지가 있는지 여부. - `items` (object[]) — 게시물 목록. 최신순. - `fetched_on_demand` (boolean) — 아직 최근 게시물만 수집돼 있으면 true. ##### `items[]` - `post_id` (uuid) — TikTok 게시물 id. Instagram 게시물 id와 섞어 쓸 수 없습니다. - `video_id` (string) — TikTok URL에 들어 있는 공개 숫자 id. - `url` (string) — 공개 고유 링크. - `account_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 username. - `post_type` (string) — video 또는 carousel. - `posted_at` (timestamp) — 게시 시각(UTC). - `caption` (string) — 캡션. - `duration_seconds` (integer) — 영상 길이. - `width / height` (integer) — 해상도. - `play_count` (integer) — 재생 수. - `like_count` (integer) — 좋아요 수. - `comment_count` (integer) — 댓글 수. - `share_count` (integer) — 공유 수. - `collect_count` (integer) — 저장 수. - `is_ad` (boolean) — TikTok이 표시한 광고 여부. - `is_pinned` (boolean) — 프로필에 고정된 게시물인지 여부. - `aigc_label_type` (string | null) — AI 생성 콘텐츠 표시. TikTok이 붙인 경우에만 있습니다. - `original_language_code` (string | null) — 원문 언어. - `cover_url` (string) — 커버 이미지 URL. - `video_url` (string) — 영상 파일 URL. - `images` (string[]) — 캐러셀 슬라이드. 영상이면 비어 있습니다. - `hashtags` (string[]) — 캡션에 들어 있는 해시태그. - `mentions` (string[]) — 캡션에서 언급한 username. - `transcript` (string | null) — 영상 자막. account posts와 content batch에서는 include_transcript=true일 때만 옵니다. - `assets` (object[]) — 미디어 파일 목록(순서대로). 각 항목에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null. #### 예시 ```console $ solari catalog tiktok account posts username=innisfree_official limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "found": true, "account_id": "019b2137-f76e-7b33-9437-26044fa7b1ed", "username": "innisfree_official", "total": 87, "has_more": true, "items": [ { "post_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3834", "video_id": "7680375687139642645", "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645", "account_id": "019b2137-f76e-7b33-9437-26044fa7b1ed", "username": "innisfree_official", "post_type": "video", "posted_at": "2026-09-02T12:00:00Z", "caption": "Deeply hydrated skin—NO OFF HOURS. 💚 wherever the day takes MINGYU—his hydration stays SUPERCHARGED ⚡️ Green Tea Ceramide Milk: Lightweight milky toner that won't clog your pores Green Tea Ceramide Mist: Touch-free, fa …", "duration_seconds": 23, "width": 1080, "height": 1920, "play_count": 493, "like_count": 37, "comment_count": 2, "share_count": 0, "collect_count": 3, "is_ad": false, "is_pinned": false, "aigc_label_type": null, "original_language_code": null, "cover_url": "https://smr-images-b.bzine.co/tiktok/users/019b2137-f76e-7b33-9437-26044fa7b1ed/posts/01a0631e-f0df-7e9d-a09b-d84bc31d3834/medias/cover.jpg", "video_url": "https://smr-images-a.bzine.co/tiktok/users/019b2137-f76e-7b33-9437-26044fa7b1ed/posts/01a0631e-f0df-7e9d-a09b-d84bc31d3834/medias/origin.mp4", "images": [], "hashtags": [], "mentions": [], "transcript": null }, "… 1 more" ], "fetched_on_demand": false } ``` #### MCP 호출 ```json { "name": "solari_catalog_tiktok_account_posts", "arguments": { "username": "innisfree_official", "limit": 2 } } ``` #### 주의사항 - 영상 자막은 용량이 커서 include_transcript는 기본으로 꺼져 있습니다. - 카탈로그만 읽습니다. 계정이 아직 카탈로그에 없으면 solari fetch tiktok posts username=… 을 실행한 뒤 다시 시도하세요. #### 관련 도구 - [`solari_catalog_tiktok_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-profile.md?lang=ko) - [`solari_catalog_tiktok_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-detail.md?lang=ko) - [`solari_catalog_instagram_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-posts.md?lang=ko) ### solari catalog tiktok account history > TikTok 계정의 팔로워·영상 수 추이예요. - **CLI**: `solari catalog tiktok account history` - **MCP 도구**: `solari_catalog_tiktok_account_history` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 SOLARI가 기록해 둔 값으로 TikTok 계정의 팔로워, 팔로잉, 좋아요, 영상 수가 시간에 따라 어떻게 변했는지 보여 줘요. 성장 추이를 그리거나 계정끼리 비교할 때 써요. **언제 쓰나요** — 지금 숫자만이 아니라 팔로워 성장이나 추이가 필요할 때 사용해요. **돌려주는 값** — 기록된 값이 오래된 순으로 오고, 계정의 현재 값도 같이 와요. #### 파라미터 - `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) — TikTok 사용자명. account_id가 있으면 무시돼요 - `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예요. - `account_id / username` (string) — 찾은 계정이에요 - `granularity` (string) — 적용된 day 또는 all이에요 - `since / until` (date) — 조회한 UTC 날짜 범위예요 - `current` (object | null) — 카탈로그의 현재 값이에요. 날짜 범위와 상관없이 와요 - `points` (object[]) — 기록된 값이에요. 오래된 순이에요 - `truncated` (boolean) — 오래된 점이 잘렸으면 true예요. since를 좁혀서 다시 보세요 ##### `current` - `follower_count / following_count / heart_count / video_count` (integer | null) — 카탈로그의 현재 수치예요. heart_count는 받은 좋아요 합계예요 - `is_verified / is_private` (boolean | null) — 인증 배지와 비공개 여부예요 - `collected_at` (timestamp | null) — TikTok에서 프로필을 마지막으로 수집한 시각이에요 ##### `points[]` - `captured_at` (timestamp) — SOLARI가 이 값을 기록한 시각 (UTC) - `follower_count / following_count / heart_count / video_count` (integer | null) — 그 시점의 수치예요 - `is_verified / is_private` (boolean | null) — 그 시점의 인증 배지와 비공개 여부예요 #### 예시 ```console $ solari catalog tiktok account history username=innisfree_official since=2026-09-20 until=2026-09-30 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "found": true, "account_id": "019b2137-f76e-7b33-9437-26044fa7b1ed", "username": "innisfree_official", "granularity": "day", "since": "2026-09-20", "until": "2026-09-30", "current": { "follower_count": 144300, "following_count": 14, "heart_count": 2200000, "video_count": 768, "is_verified": true, "is_private": false, "collected_at": "2026-09-26T22:06:21.624000Z" }, "points": [ { "captured_at": "2026-09-20T21:23:21.898000Z", "follower_count": 143800, "following_count": 14, "heart_count": 2200000, "video_count": 767, "is_verified": true, "is_private": false }, { "captured_at": "2026-09-24T04:16:11.995000Z", "follower_count": 143800, "following_count": 14, "heart_count": 2200000, "video_count": 768, "is_verified": true, "is_private": false }, { "captured_at": "2026-09-26T22:06:21.624000Z", "follower_count": 144300, "following_count": 14, "heart_count": 2200000, "video_count": 768, "is_verified": true, "is_private": false } ], "truncated": false } ``` #### MCP 호출 ```json { "name": "solari_catalog_tiktok_account_history", "arguments": { "username": "innisfree_official", "since": "2026-09-20", "until": "2026-09-30" } } ``` #### 주의사항 - since와 until은 UTC 날짜이고, 시작일과 종료일을 포함해요. 비워 두면 최근 90일이에요. - SOLARI가 계정을 수집한 시점에만 값이 남아서, 중간중간 비어 있는 게 정상이에요. - 2025-12-15 이전 기록은 없어요. - TikTok은 10,000 이상인 수치를 반올림해서 줘요. 그래서 작은 변화는 보이지 않아요. - current를 오늘 숫자로 보기 전에 current.collected_at을 먼저 확인해 주세요. - 카탈로그만 읽어요. 계정이 없으면 먼저 solari fetch tiktok account username=… 를 호출해 주세요. 기록은 그때부터 쌓이고, 지난 값은 채울 수 없어요. #### 관련 도구 - [`solari_catalog_tiktok_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-profile.md?lang=ko) - [`solari_catalog_tiktok_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-posts.md?lang=ko) - [`solari_fetch_tiktok_account`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-account.md?lang=ko) - [`solari_catalog_instagram_account_history`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-history.md?lang=ko) ### solari catalog tiktok content detail > id, video_id, URL로 찾는 TikTok 게시물 하나. - **CLI**: `solari catalog tiktok content detail` - **MCP 도구**: `solari_catalog_tiktok_content_detail` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 post_id, video_id, 공개 URL 중 하나로 TikTok 게시물을 불러옵니다. **언제 쓰나요** — 게시물 하나가 필요할 때 쓰세요. id가 여러 개면 content batch를 쓰세요. **돌려주는 값** — 게시물. 영상 자막이 있으면 함께 옵니다. #### 파라미터 - `post_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)$) — post_id. 이 값, video_id, url 중 하나를 넣으세요. - `video_id` (string, 선택, pattern ^\d{15,20}$) — TikTok 공개 숫자 id. - `url` (string, 선택, ≤ 512 chars) — TikTok 게시물 공개 URL. #### 응답 ##### `Response` - `item` (object | null) — 게시물. 없거나 공개되지 않은 게시물이면 null. - `fetched_on_demand` (boolean) — 이번 호출에서 게시물을 바로 수집했으면 true. - `note` (string) — item이 null일 때만 옵니다. 다음에 할 일. - `next` (string) — item이 null이고 게시물을 URL로 지정했을 때만 옵니다. 그 게시물을 수집하는 fetch post 명령입니다. ##### `item` - `post_id` (uuid) — TikTok 게시물 id. Instagram 게시물 id와 섞어 쓸 수 없습니다. - `video_id` (string) — TikTok URL에 들어 있는 공개 숫자 id. - `url` (string) — 공개 고유 링크. - `account_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 username. - `post_type` (string) — video 또는 carousel. - `posted_at` (timestamp) — 게시 시각(UTC). - `caption` (string) — 캡션. - `duration_seconds` (integer) — 영상 길이. - `width / height` (integer) — 해상도. - `play_count` (integer) — 재생 수. - `like_count` (integer) — 좋아요 수. - `comment_count` (integer) — 댓글 수. - `share_count` (integer) — 공유 수. - `collect_count` (integer) — 저장 수. - `is_ad` (boolean) — TikTok이 표시한 광고 여부. - `is_pinned` (boolean) — 프로필에 고정된 게시물인지 여부. - `aigc_label_type` (string | null) — AI 생성 콘텐츠 표시. TikTok이 붙인 경우에만 있습니다. - `original_language_code` (string | null) — 원문 언어. - `cover_url` (string) — 커버 이미지 URL. - `video_url` (string) — 영상 파일 URL. - `images` (string[]) — 캐러셀 슬라이드. 영상이면 비어 있습니다. - `hashtags` (string[]) — 캡션에 들어 있는 해시태그. - `mentions` (string[]) — 캡션에서 언급한 username. - `transcript` (string | null) — 영상 자막. account posts와 content batch에서는 include_transcript=true일 때만 옵니다. - `assets` (object[]) — 미디어 파일 목록(순서대로). 각 항목에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null. #### 예시 ```console $ solari catalog tiktok content detail video_id=7680375687139642645 include_transcript=true ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "item": { "post_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3834", "video_id": "7680375687139642645", "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645", "account_id": "019b2137-f76e-7b33-9437-26044fa7b1ed", "username": "innisfree_official", "post_type": "video", "posted_at": "2026-09-02T12:00:00Z", "caption": "Deeply hydrated skin—NO OFF HOURS. 💚 wherever the day takes MINGYU—his hydration stays SUPERCHARGED ⚡️ Green Tea Ceramide Milk: Lightweight milky toner that won't clog your pores Green Tea Ceramide Mist: Touch-free, fa …", "duration_seconds": 23, "width": 1080, "height": 1920, "play_count": 493, "like_count": 37, "comment_count": 2, "share_count": 0, "collect_count": 3, "is_ad": false, "is_pinned": false, "aigc_label_type": null, "original_language_code": null, "cover_url": "https://smr-images-b.bzine.co/tiktok/users/019b2137-f76e-7b33-9437-26044fa7b1ed/posts/01a0631e-f0df-7e9d-a09b-d84bc31d3834/medias/cover.jpg", "video_url": "https://smr-images-c.bzine.co/tiktok/users/019b2137-f76e-7b33-9437-26044fa7b1ed/posts/01a0631e-f0df-7e9d-a09b-d84bc31d3834/medias/origin.mp4", "images": [], "hashtags": [], "mentions": [], "transcript": null }, "fetched_on_demand": false } ``` #### MCP 호출 ```json { "name": "solari_catalog_tiktok_content_detail", "arguments": { "video_id": "7680375687139642645" } } ``` #### 주의사항 - vm.tiktok.com, vt.tiktok.com 단축 링크도 쓸 수 있습니다. - 카탈로그에 있는 데이터만 읽습니다. 카탈로그에 없는 게시물을 수집하려면 solari fetch tiktok post url=…을 실행하세요. 작성자도 함께 알려 줍니다. 작성자를 이미 알면 solari fetch tiktok posts username=…을 실행하세요. #### 관련 도구 - [`solari_fetch_tiktok_post`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-post.md?lang=ko) - [`solari_catalog_tiktok_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-batch.md?lang=ko) - [`solari_catalog_tiktok_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-posts.md?lang=ko) ### solari catalog tiktok content batch > TikTok 게시물 여러 개를 한 번에. - **CLI**: `solari catalog tiktok content batch` - **MCP 도구**: `solari_catalog_tiktok_content_batch` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 TikTok 게시물 id 목록으로 캡션과 지표를 한 번에 불러옵니다. 찾을 수 없는 id는 건너뜁니다. **언제 쓰나요** — 검색이나 계정 게시물 목록에서 얻은 id를 한꺼번에 불러오고 싶을 때 쓰세요. **돌려주는 값** — 찾은 게시물 목록. #### 파라미터 - `post_ids` (uuid[], 필수, 1–100 items, uuid) — 불러올 TikTok 게시물 id. 최대 100개. - `sort` (enum, 선택, 기본값 "recent") — 최신순 또는 참여순으로 정렬합니다. 값: `recent`, `engagement`. - `include_transcript` (boolean, 선택, 기본값 false) — 영상 자막을 함께 가져옵니다. #### 응답 ##### `Response` - `requested` (integer) — 보낸 id 수. - `found` (integer) — 찾은 id 수. - `items` (object[]) — 찾은 게시물 목록. ##### `items[]` - `post_id` (uuid) — TikTok 게시물 id. Instagram 게시물 id와 섞어 쓸 수 없습니다. - `video_id` (string) — TikTok URL에 들어 있는 공개 숫자 id. - `url` (string) — 공개 고유 링크. - `account_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 username. - `post_type` (string) — video 또는 carousel. - `posted_at` (timestamp) — 게시 시각(UTC). - `caption` (string) — 캡션. - `duration_seconds` (integer) — 영상 길이. - `width / height` (integer) — 해상도. - `play_count` (integer) — 재생 수. - `like_count` (integer) — 좋아요 수. - `comment_count` (integer) — 댓글 수. - `share_count` (integer) — 공유 수. - `collect_count` (integer) — 저장 수. - `is_ad` (boolean) — TikTok이 표시한 광고 여부. - `is_pinned` (boolean) — 프로필에 고정된 게시물인지 여부. - `aigc_label_type` (string | null) — AI 생성 콘텐츠 표시. TikTok이 붙인 경우에만 있습니다. - `original_language_code` (string | null) — 원문 언어. - `cover_url` (string) — 커버 이미지 URL. - `video_url` (string) — 영상 파일 URL. - `images` (string[]) — 캐러셀 슬라이드. 영상이면 비어 있습니다. - `hashtags` (string[]) — 캡션에 들어 있는 해시태그. - `mentions` (string[]) — 캡션에서 언급한 username. - `transcript` (string | null) — 영상 자막. account posts와 content batch에서는 include_transcript=true일 때만 옵니다. - `assets` (object[]) — 미디어 파일 목록(순서대로). 각 항목에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null. #### 예시 ```console $ solari catalog tiktok content batch post_ids='["01a0631e-f0df-7e9d-a09b-d84bc31d3834"]' ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "requested": 1, "found": 1, "items": [ { "post_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3834", "video_id": "7680375687139642645", "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645", "account_id": "019b2137-f76e-7b33-9437-26044fa7b1ed", "username": "innisfree_official", "post_type": "video", "posted_at": "2026-09-02T12:00:00Z", "caption": "Deeply hydrated skin—NO OFF HOURS. 💚 wherever the day takes MINGYU—his hydration stays SUPERCHARGED ⚡️ Green Tea Ceramide Milk: Lightweight milky toner that won't clog your pores Green Tea Ceramide Mist: Touch-free, fa …", "duration_seconds": 23, "width": 1080, "height": 1920, "play_count": 493, "like_count": 37, "comment_count": 2, "share_count": 0, "collect_count": 3, "is_ad": false, "is_pinned": false, "aigc_label_type": null, "original_language_code": null, "cover_url": "https://smr-images-b.bzine.co/tiktok/users/019b2137-f76e-7b33-9437-26044fa7b1ed/posts/01a0631e-f0df-7e9d-a09b-d84bc31d3834/medias/cover.jpg", "video_url": "https://smr-images-b.bzine.co/tiktok/users/019b2137-f76e-7b33-9437-26044fa7b1ed/posts/01a0631e-f0df-7e9d-a09b-d84bc31d3834/medias/origin.mp4", "images": [], "hashtags": [], "mentions": [], "transcript": null } ] } ``` #### MCP 호출 ```json { "name": "solari_catalog_tiktok_content_batch", "arguments": { "post_ids": [ "01a0631e-f0df-7e9d-a09b-d84bc31d3834" ] } } ``` #### 주의사항 - SOLARI 게시물 id만 받습니다. 숫자로 된 영상 id는 content detail에 video_id로 넣으세요. - TikTok 게시물 id와 Instagram 게시물 id는 섞어 쓸 수 없습니다. #### 관련 도구 - [`solari_catalog_tiktok_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-detail.md?lang=ko) - [`solari_catalog_tiktok_content_search`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-search.md?lang=ko) ### solari catalog tiktok content search > 수집된 TikTok 캡션과 영상 자막을 기간으로 검색할 때 쓰세요. - **CLI**: `solari catalog tiktok content search` - **MCP 도구**: `solari_catalog_tiktok_content_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 SOLARI가 수집하는 KR, JP, US, TW 지역 TikTok 게시물을 키워드로 검색합니다. 최근 6개월 정도가 대상입니다. TikTok 카탈로그는 작으니 fetch tiktok post search부터 시작하고, 기간 조건이 필요할 때 이 도구를 쓰세요. **언제 쓰나요** — 특정 기간의 TikTok 게시물이나, 영상에서 특정 내용을 말한 게시물을 찾을 때 쓰세요. 주제로 게시물을 찾을 때는 fetch tiktok post search부터 쓰세요. **돌려주는 값** — 관련도순 게시물 목록. 일치한 부분이 강조 표시됩니다. #### 파라미터 - `query` (string, 필수) — 검색어. - `region` (enum, 선택, 기본값 "KR") — KR, JP, US, TW 중 하나. 값: `KR`, `JP`, `US`, `TW`. - `limit` (integer, 선택, 기본값 20, 1–100) — 한 페이지에 가져올 게시물 수. - `offset` (integer, 선택, 기본값 0, 0–9800) — 건너뛸 게시물 수. - `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) 이전에 올라온 게시물만 가져옵니다. 당일 포함. #### 응답 ##### `Response` - `query / region` (string) — 적용된 검색어와 지역. - `total` (integer) — 일치한 게시물 수. 10,000까지는 정확하고, 넘으면 10,000으로 표시됩니다. - `took_ms` (integer) — 검색에 걸린 시간. - `items` (object[]) — 검색 결과. 점수가 높은 순. ##### `items[]` - `post_id / video_id / url` (string) — 게시물 식별자와 공개 링크. - `account_id / username` (string) — 작성한 계정. - `caption` (string) — 캡션. - `user_bio` (string) — 작성자 소개글. - `transcription_text` (string | null) — 영상 자막. 검색 대상 텍스트에 포함됩니다. - `transcription_language` (string | null) — 영상 자막의 언어 코드. - `post_type` (string) — video 또는 carousel. - `posted_at` (timestamp) — 게시 시각(UTC). - `duration_seconds` (integer) — 영상 길이. - `play_count / like_count / comment_count / share_count / collect_count` (integer) — 참여 지표. - `follower_count` (integer) — 작성자 팔로워 수. - `is_ad` (boolean) — TikTok이 직접 표시한 광고 여부. - `cover_url` (string) — 커버 이미지. - `score` (number) — 관련도 점수. - `highlight` (object) — 필드별로 일치한 부분. - `assets` (object[]) — 미디어 파일 목록(순서대로). 각 항목에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null. - `region_inferred` (boolean) — 작성자의 국가를 몰라서 캡션 언어로 지역을 정한 게시물이면 true입니다. #### 예시 ```console $ solari catalog tiktok content search query="올리브영 세일" limit=3 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "query": "올리브영 세일", "region": "KR", "total": 4041, "took_ms": 29, "items": [ { "post_id": "01a05c46-9a08-7e92-a40e-b1a039103118", "video_id": "7679484556189207815", "url": "https://www.tiktok.com/@flos_bonita/video/7679484556189207815", "account_id": "0196cb39-87a7-7be3-ac4a-4a80b7818a90", "username": "flos_bonita", "caption": "태닝한 산리오 키링이라니…☀️🥹💗 푸드올로지 X 산리오 콜라보 실물 너무 귀엽잖아!! 헬로키티·쿠로미·한교동·마이멜로디까지🎀 제품마다 다른 키링이라 산리오 덕후들 취향 제대로 저격💘 올영 세일 시작했으니 얼른 구경해봐요👀🛒 #푸드올로지 #태닝키티 #올리브영추천템 #올영세일", "user_bio": "화미 프로필 링크", "transcription_text": "살리오 덕후라면 절대 그냥 넘길 수 없는 영상 오늘부터 시작인 올리브영 세일과 함께 푸드올로지와 살리오 콜라보 나왔어요 이번 콜라보는 젤리 폼 앰플 젤리 3 종으로 피디아렌 앰플 젤리 글루타치원 씨 앰플 젤리 히알루론산 앰플 젤리까지 제품마다 귀여운 살리오 굿즈도 함께 만나 볼 수 있는데 헬로키티 크로미 한교동부터 마이 멜로디까지 저는 역시 헬로키티 더 쿠답게 키티 키링으로 폼구 최애 캐릭터 …", "transcription_language": "ko", "post_type": "video", "posted_at": "2026-08-29T16:02:22Z", "duration_seconds": 37, "play_count": 955, "like_count": 26, "comment_count": 0, "share_count": 0, "collect_count": 5, "follower_count": 1345, "is_ad": true, "cover_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-0037/oEu4VAolaEBAAYjMAjBtiyCIAABiPp9TOCAME~tplv-tiktokx-origin.image?dr=10395&x-expires=1788426000&x-signature=FAP0C10M1M1gEwD4YMB03pYd0YA%3D&t=4d5b0474&ps=13740610&sh …", "score": 53.787056, "highlight": { "caption": [ "헬로키티·쿠로미·한교동·마이멜로디까지🎀 제품마다 다른 키링이라 산리오 덕후들 취향 제대로 저격💘 올영 세일 시작했으니 얼른 구경해봐요👀🛒 #푸드올로지 #태닝키티 #올리브영추천템 #올영세일" ], "user_bio": [], "transcription_text": [ "살리오 덕후라면 절대 그냥 넘길 수 없는 영상 오늘부터 시작인 올리브영 세일과 함께 푸드올로지와 살리오 콜라보 나왔어요 이번 콜라보는 젤리 폼 앰플 젤리 3 종으로 피디아렌 앰플 젤리 글루타치원 씨 앰플 젤리 히알루론산 앰플 젤리까지 제품마다 귀여운 살리오 굿즈도 함께", "… 1 more" ] } }, "… 2 more" ] } ``` #### MCP 호출 ```json { "name": "solari_catalog_tiktok_content_search", "arguments": { "query": "올리브영 세일", "limit": 3 } } ``` #### 주의사항 - offset은 최대 9,800입니다. 더 뒤까지 보려면 기간을 좁히세요. - total은 10,000까지만 셉니다. - 작성자의 국가를 모르면 캡션 언어에 맞는 지역에 넣고 region_inferred=true를 붙입니다. #### 관련 도구 - [`solari_insight_tiktok_content_aggregate`](https://clip-pub.bzine.co/docs/tools/insight-tiktok-content-aggregate.md?lang=ko) - [`solari_catalog_tiktok_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-batch.md?lang=ko) - [`solari_catalog_instagram_content_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-search.md?lang=ko) ### solari insight tiktok content aggregate > TikTok 게시물 수를 셀 때 쓰세요. - **CLI**: `solari insight tiktok content aggregate` - **MCP 도구**: `solari_insight_tiktok_content_aggregate` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 SOLARI가 수집하는 TikTok 게시물을 계정, 형식, 해시태그, 언급, 키워드별로 집계합니다. **언제 쓰나요** — 게시 주기, 해시태그 구성, 평균 재생 수가 필요할 때 쓰세요. 게시물 자체가 필요하면 content search를 쓰세요. **돌려주는 값** — 그룹별 개수. 큰 순서로 옵니다. 다른 지표는 요청할 때만 옵니다. #### 파라미터 - `region` (enum, 선택, 기본값 "KR") — KR, JP, US, TW 중 하나. 값: `KR`, `JP`, `US`, `TW`. - `group_by` (enum, 선택) — 개수를 나눌 기준. 값: `account`, `post_type`, `hashtag`, `mention`, `caption_keyword`. - `interval` (enum, 선택) — 이 달력 단위로 시계열을 함께 가져옵니다. 값: `day`, `week`, `month`. - `metrics` (string[], 선택) — post_count 말고 더 받을 지표. 값: `like_sum`, `like_avg`, `comment_sum`, `comment_avg`, `view_sum`, `view_avg`, `share_sum`, `share_avg`, `collect_sum`, `collect_avg`, `follower_avg`, `account_count`. - `query` (string, 선택) — 캡션과 영상 자막에서 찾을 키워드. - `usernames` (string[], 선택) — 이 TikTok username의 게시물만. - `hashtags` (string[], 선택) — 이 해시태그가 모두 들어 있는 게시물만. - `mentions` (string[], 선택) — 이 username을 모두 언급한 게시물만. - `post_types` (string[], 선택) — 이 형식의 게시물만. 값: `video`, `carousel`. - `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) 이전에 올라온 게시물만 가져옵니다. 당일 포함. - `limit` (integer, 선택, 기본값 20, 1–50) — 가져올 그룹 수. #### 응답 ##### `Response` - `region` (string) — 집계한 지역. - `since` (date) — 실제로 적용된 시작일. - `until` (date | null) — 실제로 적용된 종료일. - `group_by` (string | null) — 적용된 그룹 기준. - `interval` (string | null) — 적용된 시간 단위. - `total_posts` (integer) — 필터에 맞는 게시물 수. - `truncated` (boolean) — 그룹이 limit보다 많았으면 true. - `buckets` (object[]) — 그룹 목록. 큰 순서. ##### `buckets[]` - `key` (string) — 그룹 값. group_by를 빼면 전체 합계 하나만 옵니다. - `metrics.post_count` (integer) — 게시물 수. 항상 옵니다. - `metrics.like_sum / like_avg` (number | null) — 좋아요 합계와 평균. 요청할 때만 옵니다. - `metrics.comment_sum / comment_avg` (number | null) — 댓글 합계와 평균. 요청할 때만 옵니다. - `metrics.view_sum / view_avg` (number | null) — 재생 수 합계와 평균. 요청할 때만 옵니다. - `metrics.share_sum / collect_sum` (number | null) — 공유 수와 저장 수 합계. 요청할 때만 옵니다. - `metrics.follower_avg` (number | null) — 작성자 평균 팔로워 수. - `metrics.account_count` (integer | null) — 그룹에 속한 계정 수(중복 제외). - `series` (object[] | null) — 기간별 내역. interval을 넣었을 때만 옵니다. #### 예시 ```console $ solari insight tiktok content aggregate group_by=account query="이니스프리" metrics='["view_sum","like_avg","account_count"]' limit=5 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "region": "KR", "since": "2026-03-04", "until": null, "group_by": "account", "interval": null, "total_posts": 20, "truncated": true, "buckets": [ { "key": "merryview_", "metrics": { "post_count": 2, "like_sum": null, "like_avg": 2378.5, "comment_sum": null, "comment_avg": null, "view_sum": 179504, "view_avg": null, "share_sum": null, "share_avg": null, "collect_sum": null, "collect_avg": null, "follower_avg": null, "account_count": 1 }, "series": null }, { "key": "_kimdayun_", "metrics": { "post_count": 1, "like_sum": null, "like_avg": 1829, "comment_sum": null, "comment_avg": null, "view_sum": 102000, "view_avg": null, "share_sum": null, "share_avg": null, "collect_sum": null, "collect_avg": null, "follower_avg": null, "account_count": 1 }, "series": null }, "… 3 more" ] } ``` #### MCP 호출 ```json { "name": "solari_insight_tiktok_content_aggregate", "arguments": { "group_by": "account", "query": "이니스프리", "metrics": [ "view_sum", "like_avg", "account_count" ], "limit": 5 } } ``` #### 주의사항 - view_*는 재생 수입니다. Instagram과 달리 share_*와 collect_*에도 값이 들어 있습니다. - KR·JP·US·TW 지역의 최근 약 6개월을 다룹니다. since가 그보다 이르면 가장 오래된 날짜로 맞춥니다. #### 관련 도구 - [`solari_catalog_tiktok_content_search`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-search.md?lang=ko) - [`solari_insight_instagram_content_aggregate`](https://clip-pub.bzine.co/docs/tools/insight-instagram-content-aggregate.md?lang=ko) ### solari fetch instagram account > Instagram 핸들 하나를 카탈로그에 추가합니다. - **CLI**: `solari fetch instagram account` - **MCP 도구**: `solari_fetch_instagram_account` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 정확한 username으로 Instagram 계정 하나를 SOLARI 카탈로그에 추가합니다. 검색 기능이 아닙니다. 하루 안에 수집한 계정이면 새로 수집하지 않고, 그보다 오래됐으면 지금 다시 수집합니다. 태그나 언급으로 이름만 알려진 핸들이면 지금 수집합니다. **언제 쓰나요** — 정확한 핸들을 알고 있는데 카탈로그 검색에 나오지 않을 때 쓰세요. **돌려주는 값** — 추가됐는지 여부, account_id, 그 계정을 읽는 카탈로그 명령. #### 파라미터 - `username` (string, 필수, ≤ 64 chars) — Instagram username. #### 응답 ##### `Response` - `ingested` (boolean) — 이번 호출에서 바로 수집했으면 true. - `already_tracked` (boolean) — 이미 수집돼 있었으면 true. - `fetched_on_demand` (boolean) — ingested와 같은 값. - `account_id` (uuid) — 추가된 계정. - `username` (string) — 찾은 핸들. - `note` (string) — 다음에 일어날 일. - `next` (string) — 결과를 읽는 카탈로그 명령. - `refreshed` (boolean) — 하루 넘게 지난 저장본을 지금 다시 수집했으면 true. - `collected_at` (timestamp) — 저장된 프로필을 수집한 시각(UTC). #### 예시 ```console $ solari fetch instagram account username=innisfreeofficial ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "ingested": false, "already_tracked": true, "fetched_on_demand": false, "account_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "note": "Already in the SOLARI catalog. Nothing was scraped.", "next": "solari catalog instagram account profile username=innisfreeofficial" } ``` #### MCP 호출 ```json { "name": "solari_fetch_instagram_account", "arguments": { "username": "innisfreeofficial" } } ``` #### 주의사항 - 이름을 검색하는 데 쓰지 마세요. 먼저 catalog account search를 쓰세요. - 처음 추가할 때는 몇 초 걸릴 수 있습니다. 수집이 끝날 때까지 지표와 협업 정보는 비어 있습니다. - 카탈로그 검색에는 안 나오고 프로필을 읽으면 비어 있는 핸들은 이름만 등록된 계정입니다. 이 호출이 그 계정을 수집합니다. #### 관련 도구 - [`solari_catalog_instagram_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-search.md?lang=ko) - [`solari_catalog_instagram_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-profile.md?lang=ko) - [`solari_fetch_instagram_posts`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-posts.md?lang=ko) ### solari fetch instagram posts > Instagram 계정의 게시물·릴스·태그된 게시물을 실시간으로 수집합니다. - **CLI**: `solari fetch instagram posts` - **MCP 도구**: `solari_fetch_instagram_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 Instagram 계정의 탭 하나를 실시간으로 수집하고, 같은 호출에서 게시물을 탭 순서대로 조회수·좋아요·댓글과 함께 돌려줍니다. type으로 탭을 고릅니다: posts(프로필 그리드), reels(릴스), tagged_posts(다른 계정이 이 계정을 태그한 게시물). **언제 쓰나요** — 계정의 최신 게시물이나 현재 릴스 조회수가 필요할 때, 또는 catalog account posts 결과에 빠진 게시물이 있거나 오래돼 보일 때 쓰세요. **돌려주는 값** — 수집한 게시물(catalog account posts와 같은 item 형태)과 수집 결과. #### 파라미터 - `username` (string, 필수, ≤ 64 chars) — Instagram username. - `type` (enum, 선택, 기본값 "posts") — posts(프로필 그리드), reels(릴스 탭), tagged_posts(다른 계정이 이 계정을 태그한 게시물). 값: `posts`, `reels`, `tagged_posts`. - `pages` (integer, 선택, 기본값 1, 1–3) — 수집할 탭 페이지 수. 한 페이지에 게시물 12개 정도입니다. - `cursor` (string, 선택, ≤ 8192 chars) — 이전 호출의 collection.next_cursor. 넘기면 그 다음(더 오래된) 페이지부터 이어서 수집합니다. #### 응답 ##### `Response` - `found` (boolean) — Instagram에 그 핸들의 계정이 없으면 false. 이때 items는 비어 있습니다. - `account_id` (uuid) — 해당 계정. - `username` (string) — 찾은 핸들. - `type` (string) — 수집한 탭. - `collection` (object) — 수집 결과. - `total` (integer) — items에 담긴 게시물 수. - `items` (object[]) — 수집한 게시물(탭 순서). - `note` (string) — 알릴 내용이 있을 때만 옵니다: 비공개 계정, 탭을 받지 못함, 아직 저장 중인 게시물, 더 가져올 페이지. - `next` (string) — 탭이 더 이어질 때만: cursor=next_cursor를 붙인 같은 호출로 이어서 수집합니다. ##### `collection` - `type / pages` (string / integer) — 읽은 탭과 페이지 수. - `fetched_count` (integer) — Instagram이 돌려준 게시물 수. - `stored_count` (integer) — 이번 호출에서 카탈로그에 저장·갱신한 게시물 수. - `has_more` (boolean) — 읽은 페이지보다 탭이 더 이어지면 true. cursor=next_cursor로 이어서 수집합니다. - `truncated` (boolean) — 요청한 페이지를 다 읽기 전에 수집이 멈췄으면 true. - `pending_count` (integer) — 아직 저장 중인 게시물 수. 이 게시물의 item에는 당분간 post_id, slug, url, posted_at만 있습니다. - `skipped_reason` (string | null) — 아무것도 수집하지 않은 이유. private은 비공개 계정이라는 뜻입니다. - `unavailable_reason` (string | null) — Instagram이 탭을 돌려주지 않은 이유. ##### `items[]` - `post_id` (uuid) — SOLARI 게시물 id. - `slug` (string) — Instagram shortcode. - `url` (string) — 공개 고유 링크. - `post_type` (string) — reel, video, photo, carousel 중 하나. - `posted_at` (timestamp) — 게시 시각(UTC). - `text` (string) — 캡션. - `like_count / comment_count` (integer) — 참여 지표. - `play_count` (integer | null) — 조회수. Instagram이 조회수를 주지 않으면 null이며, 사진 대부분이 그렇습니다. - `media_count` (integer) — 미디어 수. - `is_paid_partnership` (boolean | null) — Instagram 유료 파트너십 표시. - `medias` (object[]) — 캐러셀 순서대로 나열한 모든 미디어. - `assets` (object[]) — 미디어 파일 목록(순서대로). 파일마다 바로 내려받는 asset_url, media_type, video_duration이 있습니다. - `thumbnail_url` (string) — 썸네일. - `author_username / author_account_id` (string / uuid) — tagged_posts에서만: 게시물을 올린 계정. #### 예시 ```console $ solari fetch instagram posts username=innisfreeofficial type=reels ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "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" } ``` #### MCP 호출 ```json { "name": "solari_fetch_instagram_posts", "arguments": { "username": "innisfreeofficial", "type": "reels" } } ``` #### 주의사항 - 조회수는 type=reels로 보세요. 프로필 그리드의 사진은 play_count가 null입니다. - 최근 게시물을 빠짐없이 보거나 현재 조회수가 필요하면 catalog instagram account posts 대신 이 도구를 쓰세요. 저장된 카탈로그는 빠진 게시물이 있거나 오래됐을 수 있습니다. - 호출 한 번에 보통 5~45초 걸립니다. 수집한 게시물은 카탈로그에도 저장됩니다. - 비공개 계정은 items가 비어 있고 collection.skipped_reason=private입니다. 모르는 핸들은 먼저 수집하며, found=false면 Instagram에 그런 계정이 없다는 뜻입니다. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_catalog_instagram_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-posts.md?lang=ko) - [`solari_fetch_instagram_account`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-account.md?lang=ko) - [`solari_fetch_instagram_post`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-post.md?lang=ko) - [`solari_fetch_instagram_hashtag_posts`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-hashtag-posts.md?lang=ko) ### solari fetch instagram post > URL로 Instagram 게시물 하나를 수집하고 작성자를 알려 줍니다. - **CLI**: `solari fetch instagram post` - **MCP 도구**: `solari_fetch_instagram_post` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 공개 URL이나 shortcode로 Instagram 게시물 하나를 SOLARI 카탈로그에 수집하고, 누가 올렸는지 알려 줍니다. 이미 저장된 게시물이면 새로 수집하지 않습니다. **언제 쓰나요** — 게시물 링크는 있는데 catalog content detail이 item=null을 돌려주고, 작성자도 모를 때 쓰세요. **돌려주는 값** — 수집됐는지 여부, 작성자 정보가 붙은 게시물, 그 작성자를 수집하는 fetch 명령. #### 파라미터 - `url` (string, 선택, ≤ 512 chars) — 게시물 공개 URL(/p/, /reel/, /tv/). - `slug` (string, 선택, pattern ^[A-Za-z0-9_-]{3,20}$) — Instagram shortcode. url보다 우선입니다. #### 응답 ##### `Response` - `ingested` (boolean) — 이번 호출에서 바로 수집했으면 true. - `already_tracked` (boolean) — 이미 카탈로그에 있었으면 true. - `fetched_on_demand` (boolean) — ingested와 같은 값. - `found` (boolean) — Instagram에 해당하는 공개 게시물이 없으면 false. - `post_id` (uuid) — 저장된 게시물. - `account_id` (uuid) — 작성자 계정. - `username` (string) — 작성자 핸들. - `item` (object | null) — 미디어 파일이 붙은 게시물. - `note` (string) — 다음에 일어날 일. - `next` (string) — 작성자를 수집하는 fetch 명령. ##### `item` - `post_id` (uuid) — 다른 콘텐츠 도구에 넣을 게시물 id. - `slug` (string) — 공개 URL에 들어 있는 shortcode. - `author_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 username. - `full_name` (string | null) — 표시 이름. - `profile_pic_url` (string | null) — 프로필 사진 URL. - `follower_count` (integer | null) — 작성자 팔로워 수. - `region` (string | null) — 작성자 지역. - `posted_at` (timestamp) — 게시 시각(UTC). - `media_type` (string) — image, video, carousel 중 하나. - `play_count` (integer | null) — 영상 재생 수. 이미지면 null. - `like_count` (integer | null) — 좋아요 수. - `text` (string | null) — 캡션. - `media_url` (string) — 미디어 URL. - `thumbnail_url` (string) — 썸네일 URL. - `score` (number | null) — 순위 점수. 순위가 매겨진 목록이 아니면 null. - `efficiency_score` (number | null) — 작성자 팔로워 수 대비 성과. - `est_percentile` (number | null) — 지역 내 백분위. 0~1. - `total_views_3m` (integer | null) — 최근 3개월 동안 작성자의 조회 수. - `median_views_3m` (integer | null) — 최근 3개월 동안 작성자의 조회 수 중앙값. - `recent_collab_brands` (string[]) — 작성자가 최근 협업한 브랜드. - `item_type` (string) — 항목 종류. 항상 "content". - `content_source` (string | null) — 게시물이 나온 피드. 피드에서 온 게 아니면 null. - `is_saved` (boolean | null) — SOLARI에 이 게시물을 저장했는지. 알 수 없으면 null. - `updated_at` (timestamp | null) — 지표를 마지막으로 갱신한 시각. - `assets` (object[]) — 미디어 파일 목록(순서대로). 각 항목에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null. #### 예시 ```console $ solari fetch instagram post url=https://www.instagram.com/p/DcyMAmUh6FZ/ ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "ingested": true, "already_tracked": false, "fetched_on_demand": true, "found": true, "post_id": "01a06275-d974-7fda-98ee-dd3ee15b4dcf", "account_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "item": { "account_id": "018cabce-14cc-7544-8890-7811ec33ef74", "item_type": "content", "post_id": "01a06275-d974-7fda-98ee-dd3ee15b4dcf", "author_id": "018cabce-14cc-7544-8890-7811ec33ef74", "username": "innisfreeofficial", "slug": "DcyMAmUh6FZ", "posted_at": "2026-09-02T12:00:06Z", "media_type": "video", "play_count": 22467, "like_count": 3224 }, "note": "Collected live and stored now. The author is known by name only: run next to crawl their profile and posts.", "next": "solari fetch instagram account username=innisfreeofficial" } ``` #### MCP 호출 ```json { "name": "solari_fetch_instagram_post", "arguments": { "url": "https://www.instagram.com/p/DcyMAmUh6FZ/" } } ``` #### 주의사항 - 작성자는 이름만 등록된 계정으로 옵니다. 프로필과 게시물을 수집하려면 next에 있는 명령(fetch instagram account)을 실행하세요. - 처음 수집할 때는 몇 초 걸립니다. #### 관련 도구 - [`solari_fetch_instagram_post_assets`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-post-assets.md?lang=ko) - [`solari_catalog_instagram_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-detail.md?lang=ko) - [`solari_fetch_instagram_account`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-account.md?lang=ko) - [`solari_fetch_instagram_posts`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-posts.md?lang=ko) ### solari fetch instagram post assets > Instagram 게시물 하나의 원본 크기 다운로드 링크. - **CLI**: `solari fetch instagram post assets` - **MCP 도구**: `solari_fetch_instagram_post_assets` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 Instagram 게시물 하나의 미디어 파일을 모두, Instagram이 제공하는 가장 큰 크기로 내려받을 수 있는 새 링크를 돌려줍니다. 릴스, 사진이나 영상 한 개, 캐러셀의 모든 슬라이드가 대상입니다. 호출할 때마다 Instagram에서 바로 읽어 옵니다. **언제 쓰나요** — 게시물의 원본 파일이 필요할 때 쓰세요. 다른 도구의 assets는 저장된 사본을 가리키며, 원본보다 작을 수 있습니다. **돌려주는 값** — 작성자와 게시물 유형, 그리고 미디어 파일마다 순서대로 다운로드 링크 하나. #### 파라미터 - `url` (string, 선택, ≤ 512 chars) — 게시물 공개 URL(/p/, /reel/, /tv/). - `slug` (string, 선택, pattern ^[A-Za-z0-9_-]{3,20}$) — Instagram shortcode. url보다 우선입니다. #### 응답 ##### `Response` - `found` (boolean) — Instagram에 해당하는 공개 게시물이 없으면 false. - `slug` (string | null) — 게시물 shortcode. - `url` (string | null) — 공개 고유 링크. - `username` (string | null) — 작성자 핸들. - `post_type` (string | null) — reel, video, photo, carousel 중 하나. - `media_count` (integer) — assets에 들어 있는 파일 수. - `assets` (object[]) — 미디어 파일 목록(순서대로). - `note` (string | null) — 내려받을 파일이 없을 때 그 이유. ##### `assets[]` - `index` (integer) — 게시물 안에서 파일의 순서. 1부터 시작합니다. - `media_type` (string) — video 또는 image. - `asset_url` (string) — 플랫폼이 제공하는 가장 큰 크기의 파일 다운로드 링크. 임시 링크라 바로 내려받아야 합니다. - `fallback_urls` (string[]) — 같은 파일의 다른 링크. asset_url이 실패하면 순서대로 시도합니다. - `width` (integer | null) — 가로 픽셀 수. 알 수 있을 때만 있습니다. - `height` (integer | null) — 세로 픽셀 수. 알 수 있을 때만 있습니다. - `video_duration` (number | null) — 영상 길이(초). - `file_extension` (string) — 저장할 때 쓸 파일 확장자. 예: mp4, jpg. - `size_bytes` (integer | null) — 파일 크기(바이트). 알 수 있을 때만 있습니다. - `referer` (string | null) — 내려받을 때 Referer 헤더로 보내야 하는 값. 필요 없으면 null입니다. #### 예시 ```console $ solari fetch instagram post assets slug=DcyMAmUh6FZ ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "found": true, "slug": "DcyMAmUh6FZ", "video_id": null, "url": "https://www.instagram.com/p/DcyMAmUh6FZ/", "username": "innisfreeofficial", "post_type": "reel", "media_count": 1, "assets": [ { "index": 1, "media_type": "video", "asset_url": "https://scontent-cph2-1.cdninstagram.com/….mp4?…", "fallback_urls": [], "width": 720, "height": 1280, "video_duration": 23.868, "file_extension": "mp4", "size_bytes": null, "referer": null } ], "note": null } ``` #### MCP 호출 ```json { "name": "solari_fetch_instagram_post_assets", "arguments": { "slug": "DcyMAmUh6FZ" } } ``` #### 주의사항 - 파일을 한 번에 저장하려면 solari instagram download content slugs=… dir=…를 실행하세요. 이 도구를 호출하고 모든 파일을 내려받습니다. - 링크는 임시 서명 링크입니다. 바로 내려받고, 다시 필요하면 새로 호출하세요. - 호출할 때마다 Instagram에 요청하므로 몇 초 걸립니다. #### 관련 도구 - [`solari instagram download content`](https://clip-pub.bzine.co/docs/tools/instagram-download-content.md?lang=ko) - [`solari_fetch_instagram_post`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-post.md?lang=ko) - [`solari_catalog_instagram_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-detail.md?lang=ko) - [`solari_fetch_tiktok_post_assets`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-post-assets.md?lang=ko) ### solari fetch instagram account search > Instagram에서 이름으로 계정을 바로 찾습니다. - **CLI**: `solari fetch instagram account search` - **MCP 도구**: `solari_fetch_instagram_account_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 이름이나 핸들 일부로 Instagram에서 직접 계정을 찾습니다. catalog account search는 SOLARI가 수집하는 계정만 찾을 수 있습니다. 이 도구는 나머지 계정도 찾고, 그중 이미 수집 중인 계정을 알려 줍니다. **언제 쓰나요** — catalog account search에서 이름으로 찾은 결과가 없거나, 카탈로그에 추가하기 전에 정확한 핸들을 알아야 할 때 쓰세요. **돌려주는 값** — Instagram이 정한 순서대로 최대 50개 계정. 이미 카탈로그에 있는 계정에는 account_id가 붙습니다. #### 파라미터 - `query` (string, 필수, ≤ 100 chars) — 이름이나 핸들 일부. @는 붙여도 되고 빼도 됩니다. #### 응답 ##### `Response` - `query` (string) — 검색에 쓴 텍스트. @는 뺀 값입니다. - `items` (object[]) — 일치한 계정 목록. Instagram이 정한 순서. - `found` (integer) — 돌려받은 계정 수. - `tracked` (integer) — account_id가 있는 계정 수. ##### `items[]` - `username` (string) — 핸들. 소문자로 바꾼 값. - `full_name` (string | null) — 표시 이름. - `is_verified` (boolean) — 인증 배지 여부. - `is_private` (boolean) — 비공개 계정 여부. - `profile_picture_url` (string | null) — 프로필 사진 URL. - `account_id` (uuid | null) — 이미 수집 중인 계정이면 SOLARI 계정 id. null이면 먼저 fetch instagram account로 추가하세요. #### 예시 ```console $ solari fetch instagram account search query=innisfree ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "query": "innisfree", "items": [ { "username": "innisfreeofficial", "full_name": "innisfree official", "is_verified": true, "is_private": false, "profile_picture_url": "https://scontent.cdninstagram.com/v/t51.2885-19/example.jpg", "account_id": "018cabce-14cc-7544-8890-7811ec33ef74" }, { "username": "innisfree_jp", "full_name": "innisfree Japan", "is_verified": false, "is_private": false, "profile_picture_url": null, "account_id": null } ], "found": 2, "tracked": 1 } ``` #### MCP 호출 ```json { "name": "solari_fetch_instagram_account_search", "arguments": { "query": "innisfree" } } ``` #### 주의사항 - 아무것도 저장하지 않습니다. 수집하지 않은 계정을 카탈로그에 넣으려면 그 username으로 fetch instagram account를 실행하세요. - 순서는 Instagram이 정해서 공식 계정이 항상 맨 앞에 오지는 않습니다. is_verified를 확인하세요. - 여기서는 팔로워 수가 오지 않습니다. 계정이 수집된 뒤 catalog account profile로 확인하세요. #### 관련 도구 - [`solari_catalog_instagram_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-search.md?lang=ko) - [`solari_fetch_instagram_account`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-account.md?lang=ko) - [`solari_catalog_instagram_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-account-profile.md?lang=ko) ### solari fetch instagram hashtag posts > 해시태그 게시물을 한 페이지 바로 수집합니다. - **CLI**: `solari fetch instagram hashtag posts` - **MCP 도구**: `solari_fetch_instagram_hashtag_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 Instagram 해시태그 피드를 한 페이지 바로 수집합니다. 게시물을 저장하고 피드 순서대로 돌려줍니다. 호출할 때마다 Instagram에 요청하니 catalog tag search를 먼저 확인하세요. **언제 쓰나요** — catalog tag search에 해시태그가 없거나 오래된 데이터만 있을 때, 또는 지금 시점의 인기 게시물이나 릴스가 필요할 때 쓰세요. **돌려주는 값** — 그 페이지의 게시물(이미 저장됨)과 다음 페이지 cursor. #### 파라미터 - `hashtag` (string, 필수, ≤ 150 chars) — 해시태그. #은 붙여도 되고 빼도 됩니다. - `tab` (enum, 선택) — recent, top, clips(릴스) 중 하나. 값: `recent`, `top`, `clips`. - `cursor` (string, 선택, ≤ 8192 chars) — 이전 페이지에서 받은 next_cursor. #### 응답 ##### `Response` - `ingested` (boolean) — 이번 호출에서 게시물을 하나 이상 저장했으면 true. - `fetched_on_demand` (boolean) — 항상 true. 호출할 때마다 바로 수집합니다. - `hashtag` (string) — 수집에 쓴 해시태그. #은 뺀 값입니다. - `tab` (string) — 이 페이지를 가져온 피드. - `is_hidden` (boolean) — Instagram이 이 해시태그의 피드를 주지 않으면 true. 숨겨졌거나, 제한됐거나, 없는 해시태그입니다. 이때 items는 비어 있습니다. - `hidden_reason` (string | null) — 숨겨진 해시태그에 Instagram이 붙인 안내 문구. - `found` (integer) — items에 담긴 게시물 수. - `fetched_count` (integer) — Instagram이 이 페이지에서 돌려준 게시물 수. 일부를 저장하지 못하면 found보다 큽니다. - `items` (object[]) — 이 페이지의 게시물 목록. 피드 순서. - `next_cursor` (string | null) — 다음 페이지를 요청할 때 cursor에 넣으세요. 피드가 끝나면 null. - `note` (string) — 다음에 일어날 일. - `next` (string) — 나중에 같은 태그를 읽는 카탈로그 명령. ##### `items[]` - `id` (uuid) — 게시물 id. - `slug` (string) — Instagram shortcode. - `text` (string) — 캡션. - `posted_at` (timestamp) — 게시 시각(UTC). - `username / user_id / account_id` (string) — 작성한 계정. - `like_count / comment_count` (integer) — 참여 지표. - `play_count` (integer | null) — 영상 재생 수. - `media_type` (string) — 게시물 형식. - `assets` (object[]) — 미디어 파일 목록(순서대로). 각 항목에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 아직 저장된 파일이 없으면 null. #### 예시 ```console $ solari fetch instagram hashtag posts hashtag=ootd tab=top ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "ingested": true, "fetched_on_demand": true, "hashtag": "ootd", "tab": "top", "is_hidden": false, "hidden_reason": null, "found": 1, "fetched_count": 1, "items": [ { "id": "01a06a16-552d-7099-ae0a-77e6b68de960", "slug": "DaS66VzJBPW", "text": "SEOUL OOTD — 這次搭配了四種完全不同風格 #ootd #lynn__ootd #穿搭販賣機 #韓國穿搭", "posted_at": "2026-07-02T15:33:13Z", "virtual_campaign": null, "username": "llling_yinnnnn", "user_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04", "account_id": "019dbc46-1a67-7ef5-b95a-2fb466790d04", "profile_picture_url": null, "like_count": 32, "comment_count": 1, "media_type": "reel", "play_count": 888, "media": [] } ], "next_cursor": "eyJwIjoxLCJtIjoiUVZGRC4uLiJ9", "note": "These posts were collected live and are stored now. solari_catalog_instagram_tag_search lists them after its next daily refresh.", "next": "solari catalog instagram tag search query=#ootd" } ``` #### MCP 호출 ```json { "name": "solari_fetch_instagram_hashtag_posts", "arguments": { "hashtag": "ootd", "tab": "top" } } ``` #### 주의사항 - 한 페이지는 게시물 20~30개 정도이고 몇 초 걸립니다. - cursor는 그 cursor를 받은 해시태그와 tab에서만 쓸 수 있습니다. - 피드는 next_cursor가 null일 때만 끝납니다. found가 0인데 next_cursor가 있는 페이지도 올 수 있습니다. 그럴 때는 계속 다음 페이지를 요청하세요. - 숨겨진 해시태그, 제한된 해시태그, 철자가 틀린 해시태그 모두 Instagram은 같은 응답을 줍니다. is_hidden=true이고 게시물이 없습니다. hashtag search로 철자를 확인하세요. - 게시물은 바로 저장되지만 catalog tag search에는 다음 일일 갱신 뒤에 나옵니다. - 방금 수집한 게시물은 미디어 파일 저장에 시간이 조금 걸려서 처음에는 asset_url이 null일 수 있습니다. - likes_hidden이 true면 like_count를 쓰지 마세요. 작성자가 좋아요를 숨겨서 null이거나 실제 값이 아닐 수 있습니다. #### 관련 도구 - [`solari_fetch_instagram_hashtag_search`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-hashtag-search.md?lang=ko) - [`solari_catalog_instagram_tag_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-tag-search.md?lang=ko) - [`solari_catalog_instagram_content_batch`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-content-batch.md?lang=ko) ### solari fetch instagram hashtag search > 키워드로 해시태그와 게시물 수를 찾습니다. - **CLI**: `solari fetch instagram hashtag search` - **MCP 도구**: `solari_fetch_instagram_hashtag_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 키워드로 Instagram 해시태그를 찾고, 해시태그마다 게시물이 몇 개인지 보여 줍니다. 아무것도 저장하지 않습니다. **언제 쓰나요** — 태그를 읽거나 수집하기 전에 정확한 철자나 게시물이 가장 많은 표기를 알아야 할 때 쓰세요. **돌려주는 값** — 최대 20개 해시태그와 Instagram이 알려 주는 게시물 수. #### 파라미터 - `query` (string, 필수, ≤ 100 chars) — 키워드. #은 붙여도 되고 빼도 됩니다. #### 응답 ##### `Response` - `query` (string) — 검색에 쓴 키워드. - `hashtags` (object[]) — 일치한 해시태그 목록. 가장 잘 맞는 순. - `found` (integer) — 돌려받은 해시태그 수. ##### `hashtags[]` - `name` (string) — #을 뺀 해시태그. - `post_count` (integer | null) — Instagram이 알려 주는 이 해시태그의 게시물 수. #### 예시 ```console $ solari fetch instagram hashtag search query=skincare ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "query": "skincare", "hashtags": [ { "name": "skincare", "post_count": 128000000 }, { "name": "skincareroutine", "post_count": 31000000 }, { "name": "skincaretips", "post_count": 9400000 } ], "found": 3 } ``` #### MCP 호출 ```json { "name": "solari_fetch_instagram_hashtag_search", "arguments": { "query": "skincare" } } ``` #### 주의사항 - post_count는 Instagram이 집계한 전체 수입니다. SOLARI가 수집한 게시물 수가 아닙니다. - 페이지 나누기는 없습니다. Instagram이 후보를 최대 20개까지만 줍니다. #### 관련 도구 - [`solari_fetch_instagram_hashtag_posts`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-hashtag-posts.md?lang=ko) - [`solari_catalog_instagram_tag_search`](https://clip-pub.bzine.co/docs/tools/catalog-instagram-tag-search.md?lang=ko) ### solari fetch tiktok account > TikTok 핸들 하나를 카탈로그에 추가합니다. - **CLI**: `solari fetch tiktok account` - **MCP 도구**: `solari_fetch_tiktok_account` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 정확한 username으로 TikTok 계정 하나를 SOLARI 카탈로그에 추가합니다. 검색 기능이 아닙니다. 이미 저장된 계정이면 새로 수집하지 않습니다. **언제 쓰나요** — 정확한 핸들을 알고 있는데 카탈로그 검색에 나오지 않을 때 쓰세요. **돌려주는 값** — 추가됐는지 여부, account_id, 그 계정을 읽는 카탈로그 명령. #### 파라미터 - `username` (string, 필수, ≤ 64 chars) — TikTok username. #### 응답 ##### `Response` - `ingested` (boolean) — 이번 호출에서 바로 수집했으면 true. - `already_tracked` (boolean) — 이미 카탈로그에 있었으면 true. - `fetched_on_demand` (boolean) — ingested와 같은 값. - `account_id` (uuid) — 추가된 계정. - `username` (string) — 찾은 핸들. - `note` (string) — 다음에 일어날 일. - `next` (string) — 결과를 읽는 카탈로그 명령. #### 예시 ```console $ solari fetch tiktok account username=innisfree_official ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "ingested": false, "already_tracked": true, "fetched_on_demand": false, "account_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3834", "username": "innisfree_official", "note": "Already in the SOLARI catalog. Nothing was scraped.", "next": "solari catalog tiktok account profile username=innisfree_official" } ``` #### MCP 호출 ```json { "name": "solari_fetch_tiktok_account", "arguments": { "username": "innisfree_official" } } ``` #### 주의사항 - 이름을 검색하는 데 쓰지 마세요. 먼저 catalog account search를 쓰세요. - 처음 추가할 때는 10~40초 걸릴 수 있습니다. 수집이 끝날 때까지는 최근 게시물만 있습니다. #### 관련 도구 - [`solari_catalog_tiktok_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-search.md?lang=ko) - [`solari_catalog_tiktok_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-profile.md?lang=ko) - [`solari_fetch_tiktok_posts`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-posts.md?lang=ko) - [`solari_fetch_tiktok_account_search`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-account-search.md?lang=ko) ### solari fetch tiktok post > URL로 TikTok 게시물 하나를 수집하고 작성자를 알려 줍니다. - **CLI**: `solari fetch tiktok post` - **MCP 도구**: `solari_fetch_tiktok_post` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 공개 URL로 TikTok 게시물 하나를 SOLARI 카탈로그에 수집하고, 누가 올렸는지 알려 줍니다. 이미 저장된 게시물이면 새로 수집하지 않습니다. **언제 쓰나요** — 게시물 링크는 있는데 catalog content detail이 item=null을 돌려주고, 작성자도 모를 때 쓰세요. **돌려주는 값** — 수집됐는지 여부, 작성자 정보가 붙은 게시물, 그 작성자를 수집하는 fetch 명령. #### 파라미터 - `url` (string, 필수, ≤ 512 chars) — 게시물 공개 URL. vm.tiktok.com, vt.tiktok.com 단축 링크도 됩니다. #### 응답 ##### `Response` - `ingested` (boolean) — 이번 호출에서 바로 수집했으면 true. - `already_tracked` (boolean) — 이미 카탈로그에 있었으면 true. - `fetched_on_demand` (boolean) — ingested와 같은 값. - `found` (boolean) — 그 URL에 TikTok 공개 게시물이 없으면 false. - `post_id` (uuid) — 저장된 게시물. - `account_id` (uuid) — 작성자 계정. - `username` (string) — 작성자 핸들. - `item` (object | null) — 미디어 파일이 붙은 게시물. - `note` (string) — 다음에 일어날 일. - `next` (string) — 작성자를 수집하는 fetch 명령. ##### `item` - `post_id` (uuid) — TikTok 게시물 id. Instagram 게시물 id와 섞어 쓸 수 없습니다. - `video_id` (string) — TikTok URL에 들어 있는 공개 숫자 id. - `url` (string) — 공개 고유 링크. - `account_id` (uuid) — 작성자 account_id. - `username` (string) — 작성자 username. - `post_type` (string) — video 또는 carousel. - `posted_at` (timestamp) — 게시 시각(UTC). - `caption` (string) — 캡션. - `duration_seconds` (integer) — 영상 길이. - `width / height` (integer) — 해상도. - `play_count` (integer) — 재생 수. - `like_count` (integer) — 좋아요 수. - `comment_count` (integer) — 댓글 수. - `share_count` (integer) — 공유 수. - `collect_count` (integer) — 저장 수. - `is_ad` (boolean) — TikTok이 표시한 광고 여부. - `is_pinned` (boolean) — 프로필에 고정된 게시물인지 여부. - `aigc_label_type` (string | null) — AI 생성 콘텐츠 표시. TikTok이 붙인 경우에만 있습니다. - `original_language_code` (string | null) — 원문 언어. - `cover_url` (string) — 커버 이미지 URL. - `video_url` (string) — 영상 파일 URL. - `images` (string[]) — 캐러셀 슬라이드. 영상이면 비어 있습니다. - `hashtags` (string[]) — 캡션에 들어 있는 해시태그. - `mentions` (string[]) — 캡션에서 언급한 username. - `transcript` (string | null) — 영상 자막. account posts와 content batch에서는 include_transcript=true일 때만 옵니다. - `assets` (object[]) — 미디어 파일 목록(순서대로). 각 항목에 asset_url, media_type, video_duration이 있습니다. - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 내려받는 링크. 저장된 파일이 없으면 null. #### 예시 ```console $ solari fetch tiktok post url=https://www.tiktok.com/@innisfree_official/video/7680375687139642645 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "ingested": true, "already_tracked": false, "fetched_on_demand": true, "found": true, "post_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3900", "account_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3834", "username": "innisfree_official", "item": { "account_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3834", "post_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3900", "video_id": "7680375687139642645", "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645", "username": "innisfree_official", "post_type": "video", "posted_at": "2026-09-01T09:00:00Z", "play_count": 12000, "like_count": 800 }, "note": "Collected live and stored now. The author is known by name only: run next to crawl their profile and posts.", "next": "solari fetch tiktok account username=innisfree_official" } ``` #### MCP 호출 ```json { "name": "solari_fetch_tiktok_post", "arguments": { "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645" } } ``` #### 주의사항 - 작성자는 이름만 등록된 계정으로 옵니다. 프로필과 게시물을 수집하려면 next에 있는 명령(fetch tiktok account)을 실행하세요. - 처음 수집할 때는 몇 초 걸립니다. #### 관련 도구 - [`solari_fetch_tiktok_post_assets`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-post-assets.md?lang=ko) - [`solari_catalog_tiktok_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-detail.md?lang=ko) - [`solari_fetch_tiktok_account`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-account.md?lang=ko) - [`solari_fetch_tiktok_posts`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-posts.md?lang=ko) ### solari fetch tiktok post assets > TikTok 게시물 하나의 원본 크기 다운로드 링크. - **CLI**: `solari fetch tiktok post assets` - **MCP 도구**: `solari_fetch_tiktok_post_assets` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 TikTok 게시물 하나의 미디어를 TikTok이 제공하는 가장 큰 크기로 내려받을 수 있는 새 링크를 돌려줍니다. 영상 하나, 또는 사진 게시물의 모든 사진이 대상입니다. 호출할 때마다 TikTok에서 바로 읽어 옵니다. **언제 쓰나요** — 게시물의 원본 파일이 필요할 때 쓰세요. 다른 도구의 assets는 저장된 사본을 가리키며, 원본보다 작을 수 있습니다. **돌려주는 값** — 작성자와 게시물 유형, 그리고 미디어 파일마다 순서대로 다운로드 링크 하나. #### 파라미터 - `url` (string, 선택, ≤ 512 chars) — 게시물 공개 URL. vm.tiktok.com, vt.tiktok.com 단축 링크도 됩니다. video_id보다 우선입니다. - `video_id` (string, 선택, pattern ^\d{15,20}$) — 숫자 video id. 이미 카탈로그에 있는 게시물만 됩니다. 그 외에는 url을 쓰세요. #### 응답 ##### `Response` - `found` (boolean) — 그 참조에 TikTok 공개 게시물이 없으면 false. - `video_id` (string | null) — 게시물의 공개 숫자 id. - `url` (string | null) — 공개 고유 링크. - `username` (string | null) — 작성자 핸들. - `post_type` (string | null) — video 또는 carousel. - `media_count` (integer) — assets에 들어 있는 파일 수. - `assets` (object[]) — 미디어 파일 목록(순서대로). - `note` (string | null) — 내려받을 파일이 없을 때 그 이유. ##### `assets[]` - `index` (integer) — 게시물 안에서 파일의 순서. 1부터 시작합니다. - `media_type` (string) — video 또는 image. - `asset_url` (string) — 플랫폼이 제공하는 가장 큰 크기의 파일 다운로드 링크. 임시 링크라 바로 내려받아야 합니다. - `fallback_urls` (string[]) — 같은 파일의 다른 링크. asset_url이 실패하면 순서대로 시도합니다. - `width` (integer | null) — 가로 픽셀 수. 알 수 있을 때만 있습니다. - `height` (integer | null) — 세로 픽셀 수. 알 수 있을 때만 있습니다. - `video_duration` (number | null) — 영상 길이(초). - `file_extension` (string) — 저장할 때 쓸 파일 확장자. 예: mp4, jpg. - `size_bytes` (integer | null) — 파일 크기(바이트). 알 수 있을 때만 있습니다. - `referer` (string | null) — 내려받을 때 Referer 헤더로 보내야 하는 값. 필요 없으면 null입니다. #### 예시 ```console $ solari fetch tiktok post assets url=https://www.tiktok.com/@innisfree_official/video/7680375687139642645 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "found": true, "slug": null, "video_id": "7680375687139642645", "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645", "username": "innisfree_official", "post_type": "video", "media_count": 1, "assets": [ { "index": 1, "media_type": "video", "asset_url": "https://www.tiktok.com/aweme/v1/play/?…", "fallback_urls": [ "https://www.tiktok.com/aweme/v1/play/?…" ], "width": 1080, "height": 1920, "video_duration": 23, "file_extension": "mp4", "size_bytes": 2775677, "referer": "https://www.tiktok.com/" } ], "note": null } ``` #### MCP 호출 ```json { "name": "solari_fetch_tiktok_post_assets", "arguments": { "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645" } } ``` #### 주의사항 - 파일을 한 번에 저장하려면 solari tiktok download content urls=… dir=…를 실행하세요. 이 도구를 호출하고 모든 파일을 내려받습니다. - TikTok은 Referer 헤더가 없는 영상 다운로드를 거부합니다. 요청에 referer 값을 함께 보내세요. - 링크는 임시 서명 링크입니다. 바로 내려받고, 다시 필요하면 새로 호출하세요. #### 관련 도구 - [`solari tiktok download content`](https://clip-pub.bzine.co/docs/tools/tiktok-download-content.md?lang=ko) - [`solari_fetch_tiktok_post`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-post.md?lang=ko) - [`solari_catalog_tiktok_content_detail`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-detail.md?lang=ko) - [`solari_fetch_instagram_post_assets`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-post-assets.md?lang=ko) ### solari fetch tiktok posts > TikTok 계정 하나의 게시물을 카탈로그에 수집합니다. - **CLI**: `solari fetch tiktok posts` - **MCP 도구**: `solari_fetch_tiktok_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 정확한 username으로 TikTok 계정 하나의 게시물을 SOLARI 카탈로그에 수집합니다. 게시물 목록을 보는 기능이 아닙니다. 이미 저장된 핸들이면 새로 수집하지 않습니다. **언제 쓰나요** — 정확한 핸들을 알고 있는데 카탈로그 게시물 목록에 나오지 않을 때 쓰세요. **돌려주는 값** — 추가됐는지 여부, 가져온 게시물 수, 그 게시물을 읽는 카탈로그 명령. #### 파라미터 - `username` (string, 필수, ≤ 64 chars) — TikTok username. #### 응답 ##### `Response` - `ingested` (boolean) — 이번 호출에서 바로 수집했으면 true. - `already_tracked` (boolean) — 이미 카탈로그에 있었으면 true. - `fetched_on_demand` (boolean) — ingested와 같은 값. - `found` (boolean) — 핸들을 수집하지 못했으면 false. - `account_id` (uuid) — 추가된 계정. - `username` (string) — 찾은 핸들. - `total` (integer) — 지금까지 수집된 게시물 수. - `note` (string) — 다음에 일어날 일. - `next` (string) — 결과를 읽는 카탈로그 명령. #### 예시 ```console $ solari fetch tiktok posts username=innisfree_official ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "ingested": false, "already_tracked": true, "fetched_on_demand": false, "found": true, "account_id": "01a0631e-f0df-7e9d-a09b-d84bc31d3834", "username": "innisfree_official", "total": 12, "note": "Already in the SOLARI catalog. Nothing was scraped.", "next": "solari catalog tiktok account posts username=innisfree_official" } ``` #### MCP 호출 ```json { "name": "solari_fetch_tiktok_posts", "arguments": { "username": "innisfree_official" } } ``` #### 주의사항 - 저장된 게시물 목록을 보는 데 쓰지 마세요. 그럴 때는 catalog tiktok account posts를 쓰세요. - 처음 추가할 때는 10~40초 걸릴 수 있습니다. 수집이 끝날 때까지는 최근 게시물만 있습니다. #### 관련 도구 - [`solari_fetch_tiktok_account`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-account.md?lang=ko) - [`solari_catalog_tiktok_account_posts`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-posts.md?lang=ko) - [`solari_catalog_tiktok_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-search.md?lang=ko) ### solari fetch tiktok account search > TikTok 계정을 이름으로 라이브 검색합니다. TikTok은 여기서 시작하세요. - **CLI**: `solari fetch tiktok account search` - **MCP 도구**: `solari_fetch_tiktok_account_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 이름이나 핸들 일부로 TikTok에 직접 계정을 물어봅니다. TikTok 카탈로그는 작으니 TikTok 이름은 여기서 시작하세요. 이미 카탈로그에 있는 계정에는 account_id가 붙고, 나머지는 고른 계정을 fetch tiktok account로 추가하면 됩니다. **언제 쓰나요** — TikTok 브랜드나 크리에이터 이름이 있을 때 항상 쓰세요. catalog account search보다 먼저 씁니다. **돌려주는 값** — TikTok 순서대로 최대 limit개 후보, 다음 페이지용 cursor, 첫 후보를 읽거나 추가하는 명령입니다. #### 파라미터 - `query` (string, 필수, ≤ 100 chars) — 이름 또는 핸들 일부. @는 있어도 없어도 됩니다 - `limit` (integer, 선택, 기본값 10, 1–30) — 한 페이지에 최대 몇 개까지 - `cursor` (string, 선택, ≤ 1024 chars) — 같은 query의 이전 페이지에서 받은 next_cursor. 첫 페이지에서는 빼세요 #### 응답 ##### `Response` - `query` (string) — 검색에 쓴 문자열입니다. @는 뺀 값입니다 - `items` (object[]) — 맞는 계정입니다. TikTok 순서입니다 - `total` (integer) — 이 페이지의 후보 수입니다 - `has_more` (boolean) — TikTok에 다음 페이지가 있으면 true입니다 - `next_cursor` (string | null) — 같은 query와 함께 cursor로 넘기는 값입니다. 마지막 페이지면 null입니다 - `next` (string) — 첫 후보에 대한 명령입니다. 이미 수집된 계정이면 catalog 프로필, 아니면 fetch tiktok account입니다. 후보가 있을 때만 옵니다 ##### `items[]` - `username` (string) — 핸들입니다. @는 없습니다 - `nickname` (string | null) — 표시 이름입니다 - `bio` (string | null) — bio 텍스트입니다 - `is_verified` (boolean | null) — 인증 배지입니다 - `follower_count` (integer | null) — TikTok이 지금 보여 주는 팔로워 수입니다 - `profile_pic_url` (string | null) — 프로필 사진 URL입니다 - `url` (string) — 공개 프로필 URL입니다 - `account_id` (uuid | null) — 이미 카탈로그에 있는 계정이면 TikTok account_id, 아니면 null입니다 #### 예시 ```console $ solari fetch tiktok account search query=innisfree limit=1 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "query": "innisfree", "items": [ { "username": "innisfree_official", "nickname": "Innisfreeofficial", "bio": "NATURE MEETS KOREAN SKIN SCIENCE", "is_verified": true, "follower_count": 143900, "profile_pic_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/3f8e48dc4a284a8ead37e93175ebdb86~tplv-tiktokx-cropcenter:720:720.jpeg?…", "url": "https://www.tiktok.com/@innisfree_official", "account_id": "019b2137-f76e-7b33-9437-26044fa7b1ed" } ], "total": 1, "has_more": true, "next_cursor": "eyJjIjoiMSIsInMiOiIyMDI2MDkyOTA2NDMxMkE3QzRFMTlCMkQzRjVBOEM2RTAxIn0", "next": "solari catalog tiktok account profile username=innisfree_official" } ``` #### MCP 호출 ```json { "name": "solari_fetch_tiktok_account_search", "arguments": { "query": "innisfree", "limit": 1 } } ``` #### 주의사항 - 순서와 랭킹은 TikTok 기준이라 공식 계정이 항상 맨 앞은 아닙니다. 고르기 전에 is_verified와 follower_count를 확인하세요. - 결과는 얇은 기록으로 저장됩니다. account_id가 있는 후보는 이미 카탈로그에 있어서 catalog tiktok 도구로 바로 읽을 수 있습니다. account_id가 없는 후보는 그 username으로 fetch tiktok account를 호출하면 추가됩니다. - has_more가 true이면 next_cursor를 같은 query와 함께 cursor로 넘겨 다음 페이지를 받으세요. cursor는 다른 query에는 쓸 수 없습니다. - 호출마다 TikTok에 라이브로 물어봅니다. 몇 초 걸리고, cache하지 않습니다. items가 비어 있으면 TikTok에 맞는 계정이 없다는 뜻입니다. #### 관련 도구 - [`solari_fetch_tiktok_account`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-account.md?lang=ko) - [`solari_catalog_tiktok_account_search`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-search.md?lang=ko) - [`solari_catalog_tiktok_account_profile`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-account-profile.md?lang=ko) - [`solari_fetch_tiktok_post_search`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-post-search.md?lang=ko) ### solari fetch tiktok post search > TikTok 영상을 키워드로 라이브 검색합니다. TikTok은 여기서 시작하세요. - **CLI**: `solari fetch tiktok post search` - **MCP 도구**: `solari_fetch_tiktok_post_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 키워드로 TikTok에 직접 영상을 검색합니다. 결과는 TikTok의 관련도 순입니다. TikTok 카탈로그는 작으니 TikTok 주제는 여기서 시작하세요. 결과는 얇은 기록으로 저장되고, 어느 결과든 URL로 fetch tiktok post를 호출하면 전체가 수집됩니다. **언제 쓰나요** — 어떤 주제, 브랜드, 문구에 대해 사람들이 TikTok에 무엇을 올리는지 보고 싶을 때 항상 쓰세요. catalog content search보다 먼저 씁니다. **돌려주는 값** — TikTok 순서대로 최대 limit개 영상, 다음 페이지용 cursor, 첫 영상을 수집하는 fetch 명령입니다. #### 파라미터 - `query` (string, 필수, ≤ 100 chars) — 검색할 키워드나 문구 - `limit` (integer, 선택, 기본값 20, 1–30) — 한 페이지에 최대 몇 개까지 - `cursor` (string, 선택, ≤ 1024 chars) — 같은 query의 이전 페이지에서 받은 next_cursor. 첫 페이지에서는 빼세요 #### 응답 ##### `Response` - `query` (string) — 검색에 쓴 키워드입니다 - `items` (object[]) — 맞는 영상입니다. TikTok 관련도 순입니다 - `total` (integer) — 이 페이지의 영상 수입니다 - `has_more` (boolean) — TikTok에 다음 페이지가 있으면 true입니다 - `next_cursor` (string | null) — 같은 query와 함께 cursor로 넘기는 값입니다. 마지막 페이지면 null입니다 - `note` (string | null) — 주의할 점이 있을 때만 옵니다. 예를 들어 맞는 영상이 없을 때입니다 - `next` (string) — 첫 영상을 수집하는 fetch 명령입니다. 결과가 있을 때만 옵니다 ##### `items[]` - `video_id` (string) — TikTok 공개 숫자 id입니다 - `url` (string) — 공개 영상 URL입니다. fetch tiktok post에 그대로 넘기면 됩니다 - `username` (string | null) — 작성자 핸들입니다. URL에 들어 있을 때만 옵니다 - `caption` (string | null) — 캡션입니다 - `posted_at` (timestamp | null) — 게시 시각 (UTC) - `play_count` (integer | null) — 재생 수입니다 - `like_count` (integer | null) — 좋아요 수입니다 - `comment_count` (integer | null) — 댓글 수입니다 - `share_count` (integer | null) — 공유 수입니다 - `duration_seconds` (integer | null) — 영상 길이(초)입니다 - `cover_url` (string | null) — 커버 이미지 URL입니다. 만료될 수 있으니 바로 쓰세요 #### 예시 ```console $ solari fetch tiktok post search query="green tea ceramide" limit=1 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "query": "green tea ceramide", "items": [ { "video_id": "7680375687139642645", "url": "https://www.tiktok.com/@innisfree_official/video/7680375687139642645", "username": "innisfree_official", "caption": "Deeply hydrated skin—NO OFF HOURS. 💚 wherever the day takes MINGYU—his hydration stays SUPERCHARGED ⚡️ Green Tea Ceramide Milk: Lightweight milky toner that won't clog your pores …", "posted_at": "2026-09-02T12:00:00Z", "play_count": 493, "like_count": 37, "comment_count": 2, "share_count": 0, "duration_seconds": 23, "cover_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-0037/oQfAEIgDBRiLAeFsAQeZhIQ9CEfIAgBDpAqbfE~tplv-tiktokx-origin.image?…" } ], "total": 1, "has_more": true, "next_cursor": "eyJjIjoiMSIsInMiOiIyMDI2MDkyOTA2NDUxOEIzRDJGMDdBOUMxRTRCNkQ4RjAyIn0", "note": null, "next": "solari fetch tiktok post url=https://www.tiktok.com/@innisfree_official/video/7680375687139642645" } ``` #### MCP 호출 ```json { "name": "solari_fetch_tiktok_post_search", "arguments": { "query": "green tea ceramide", "limit": 1 } } ``` #### 주의사항 - 결과는 TikTok의 관련도 랭킹이라 느슨하게만 관련된 영상이 섞일 수 있습니다. 쓰기 전에 caption과 username을 확인하세요. - 결과는 얇은 기록으로 저장되고 post_id는 없습니다. 결과의 url로 fetch tiktok post를 호출하면 작성자와 함께 전체 게시물을 수집합니다. - has_more가 true이면 next_cursor를 같은 query와 함께 cursor로 넘겨 다음 페이지를 받으세요. cursor는 다른 query에는 쓸 수 없습니다. - 호출마다 TikTok에 라이브로 물어봅니다. 몇 초 걸리고, cache하지 않습니다. items가 비어 있고 note가 있으면 맞는 공개 영상이 없다는 뜻입니다. - 날짜 필터는 없습니다. 기간으로 찾으려면 catalog tiktok content search에 since와 until을 넣으세요. #### 관련 도구 - [`solari_fetch_tiktok_post`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-post.md?lang=ko) - [`solari_fetch_tiktok_account_search`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-account-search.md?lang=ko) - [`solari_catalog_tiktok_content_search`](https://clip-pub.bzine.co/docs/tools/catalog-tiktok-content-search.md?lang=ko) ### solari fetch threads account > Threads 계정 프로필 하나를 라이브로 읽습니다. - **CLI**: `solari fetch threads account` - **MCP 도구**: `solari_fetch_threads_account` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 정확한 사용자명으로 Threads 계정 프로필을 읽습니다. 표시 이름, 소개(bio), 팔로워 수, 인증·비공개 여부, bio 링크, 프로필 사진이 옵니다. SOLARI가 처음 보는 핸들은 그 자리에서 수집하고(5~30초), 한 시간 안의 재호출은 저장된 사본을 다시 씁니다. refresh=true면 새로 수집합니다. **언제 쓰나요** — 정확한 Threads 핸들이 있고 그 프로필이 필요할 때 쓰세요. 이름만 안다면 fetch threads account search를 먼저 돌리세요. **돌려주는 값** — 프로필, 수집 시각, 그리고 게시물을 읽는 fetch 명령입니다. #### 파라미터 - `username` (string, 필수, ≤ 64 chars) — Threads 사용자명. @는 있어도 없어도 됩니다 - `refresh` (boolean, 선택) — 최근 한 시간 안의 사본이 있어도 다시 수집합니다 #### 응답 ##### `Response` - `account` (object) — 프로필입니다 - `collected_at` (timestamp | null) — 이 사본을 수집한 시각입니다 - `fetched_on_demand` (boolean) — 이 호출이 라이브로 수집했으면 true입니다 - `stale` (boolean) — 라이브 수집이 실패해서 예전 사본이 왔으면 true입니다. collected_at이 얼마나 오래됐는지 알려 줍니다 - `note` (string | null) — 주의할 점이 있을 때만 옵니다 - `next` (string) — 게시물을 읽는 fetch 명령입니다 ##### `account` - `account_id` (uuid) — Threads 계정 id입니다. Instagram, TikTok id와 바꿔 쓸 수 없습니다 - `username` (string) — 핸들입니다. 소문자이고 @는 없습니다 - `full_name` (string | null) — 표시 이름입니다 - `biography` (string | null) — 소개(bio) 문구입니다 - `follower_count` (integer | null) — 수집 시점의 팔로워 수입니다 - `is_verified` (boolean | null) — 인증 배지입니다 - `is_private` (boolean | null) — 비공개 계정입니다. 게시물은 비어서 옵니다 - `bio_links` (string[]) — bio에 적힌 링크입니다 - `profile_pic_url` (string | null) — 프로필 사진 URL입니다. 가장 큰 크기입니다 - `url` (string | null) — 공개 프로필 URL입니다 #### 예시 ```console $ solari fetch threads account username=zuck ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "account": { "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e", "username": "zuck", "full_name": "Mark Zuckerberg", "biography": "Mostly superintelligence and MMA takes", "follower_count": 5745085, "is_verified": true, "is_private": false, "bio_links": [], "profile_pic_url": "https://scontent-gmp1-1.cdninstagram.com/v/t51.82787-19/825322135_17989325280103224_1252773933700107438_n.jpg?…", "url": "https://www.threads.com/@zuck" }, "collected_at": "2026-09-28T09:13:55Z", "fetched_on_demand": true, "stale": false, "note": null, "next": "solari fetch threads posts username=zuck" } ``` #### MCP 호출 ```json { "name": "solari_fetch_threads_account", "arguments": { "username": "zuck" } } ``` #### 주의사항 - 이름으로 핸들을 찾으려면 fetch threads account search를 쓰세요. - 첫 수집은 5~30초 걸립니다(fetched_on_demand=true). 한 시간 안의 재호출은 저장된 사본을 돌려주고, refresh=true면 새로 수집합니다. - stale=true는 라이브 수집이 실패해서 예전 사본이 왔다는 뜻입니다. collected_at이 얼마나 오래됐는지 알려 줍니다. - 수집 직후의 미디어 URL은 임시일 수 있습니다. 바로 읽어 두세요. - Threads 프로필이 없는 핸들은 빈 결과가 아니라 에러입니다. 실패한 호출은 크레딧을 쓰지 않습니다. #### 관련 도구 - [`solari_fetch_threads_account_search`](https://clip-pub.bzine.co/docs/tools/fetch-threads-account-search.md?lang=ko) - [`solari_fetch_threads_posts`](https://clip-pub.bzine.co/docs/tools/fetch-threads-posts.md?lang=ko) - [`solari_fetch_threads_post`](https://clip-pub.bzine.co/docs/tools/fetch-threads-post.md?lang=ko) ### solari fetch threads posts > Threads 계정의 최근 게시물을 라이브로 읽습니다. - **CLI**: `solari fetch threads posts` - **MCP 도구**: `solari_fetch_threads_posts` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 정확한 사용자명으로 Threads 계정의 최신 상위 게시물을 프로필과 함께 읽습니다. 게시물마다 본문, 해시태그, 멘션, 링크, 좋아요·답글·리포스트·인용·공유 수, 인용한 게시물, 그리고 바로 받을 수 있는 asset_url이 든 assets가 옵니다. SOLARI가 처음 보는 핸들은 그 자리에서 수집하고(5~30초), 한 시간 안의 재호출은 저장된 사본을 다시 씁니다. refresh=true면 새로 수집합니다. **언제 쓰나요** — 정확한 Threads 핸들이 있고 최근에 무엇을 올렸는지 보고 싶을 때 쓰세요. **돌려주는 값** — 프로필, 최신순 상위 게시물 최대 limit개, 그리고 가장 최신 게시물을 답글과 함께 여는 fetch 명령입니다. #### 파라미터 - `username` (string, 필수, ≤ 64 chars) — Threads 사용자명. @는 있어도 없어도 됩니다 - `limit` (integer, 선택, 기본값 12, 1–25) — 몇 개까지. 최신순입니다 - `refresh` (boolean, 선택) — 최근 한 시간 안의 사본이 있어도 다시 수집합니다 #### 응답 ##### `Response` - `account` (object) — 프로필입니다 - `posts` (object[]) — 상위 게시물입니다. 최신순입니다 - `total` (integer) — 돌아온 게시물 수입니다 - `collected_at` (timestamp | null) — 이 사본을 수집한 시각입니다 - `fetched_on_demand` (boolean) — 이 호출이 라이브로 수집했으면 true입니다 - `stale` (boolean) — 라이브 수집이 실패해서 예전 사본이 왔으면 true입니다. collected_at이 얼마나 오래됐는지 알려 줍니다 - `note` (string | null) — 주의할 점이 있을 때만 옵니다. 예를 들어 비공개 계정입니다 - `next` (string) — 가장 최신 게시물을 답글과 함께 여는 fetch 명령입니다. 게시물이 있을 때만 옵니다 ##### `account` - `account_id` (uuid) — Threads 계정 id입니다. Instagram, TikTok id와 바꿔 쓸 수 없습니다 - `username` (string) — 핸들입니다. 소문자이고 @는 없습니다 - `full_name` (string | null) — 표시 이름입니다 - `biography` (string | null) — 소개(bio) 문구입니다 - `follower_count` (integer | null) — 수집 시점의 팔로워 수입니다 - `is_verified` (boolean | null) — 인증 배지입니다 - `is_private` (boolean | null) — 비공개 계정입니다. 게시물은 비어서 옵니다 - `bio_links` (string[]) — bio에 적힌 링크입니다 - `profile_pic_url` (string | null) — 프로필 사진 URL입니다. 가장 큰 크기입니다 - `url` (string | null) — 공개 프로필 URL입니다 ##### `posts[]` - `post_id` (uuid) — Threads 게시물 id입니다. Instagram, TikTok id와 바꿔 쓸 수 없습니다 - `code` (string | null) — 퍼머링크 코드입니다. URL에서 /post/ 뒤에 오는 부분입니다 - `url` (string | null) — 공개 퍼머링크입니다 - `account_id` (uuid | null) — 작성자 account_id입니다 - `username` (string | null) — 작성자 핸들입니다 - `text` (string | null) — 게시물 본문입니다 - `posted_at` (timestamp | null) — 게시 시각 (UTC) - `like_count` (integer | null) — 좋아요 수입니다 - `reply_count` (integer | null) — Threads가 보여 주는 답글 수입니다. 돌아온 답글보다 많을 수 있습니다 - `repost_count` (integer | null) — 리포스트 수입니다 - `quote_count` (integer | null) — 인용 수입니다 - `reshare_count` (integer | null) — 공유 수입니다 - `counts_hidden` (boolean | null) — 작성자가 참여 수치를 숨겼으면 true입니다 - `hashtags` (string[]) — 해시태그입니다. #는 없습니다 - `mentions` (string[]) — 멘션된 핸들입니다. @는 없습니다 - `link_urls` (string[]) — 게시물에 붙은 링크입니다 - `is_reply` (boolean | null) — 다른 게시물에 단 답글이면 true입니다 - `reply_to_username` (string | null) — 이 게시물이 답한 상대 핸들입니다. 상위 게시물이면 null입니다 - `is_paid_partnership` (boolean | null) — 유료 파트너십 표시입니다 - `topic` (string | null) — Threads가 붙인 토픽 태그입니다. 있을 때만 옵니다 - `language` (string | null) — 본문의 언어 코드입니다 - `quoted_post` (object | null) — 인용한 게시물입니다. username, text, like_count, posted_at, url이 있습니다. 인용 게시물이 아니면 null입니다 - `assets` (object[]) — 게시물의 미디어 파일입니다. 순서대로 오고, 각각 asset_url, media_type, video_duration이 있습니다 - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 받을 수 있는 링크입니다. 저장된 파일이 없으면 null입니다 #### 예시 ```console $ solari fetch threads posts username=zuck limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "account": { "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e", "username": "zuck", "full_name": "Mark Zuckerberg", "biography": "Mostly superintelligence and MMA takes", "follower_count": 5745085, "is_verified": true, "is_private": false, "bio_links": [], "profile_pic_url": "https://scontent-gmp1-1.cdninstagram.com/v/t51.82787-19/825322135_17989325280103224_1252773933700107438_n.jpg?…", "url": "https://www.threads.com/@zuck" }, "posts": [ { "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d60", "code": "Ddt7cL5EfUG", "url": "https://www.threads.com/@zuck/post/Ddt7cL5EfUG", "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e", "username": "zuck", "text": "Agrippa said it's time to get back to work 😎", "posted_at": "2026-09-25T16:50:21.000Z", "like_count": 4964, "reply_count": 477, "repost_count": 254, "quote_count": 45, "reshare_count": 136, "counts_hidden": false, "hashtags": [], "mentions": [], "link_urls": [], "is_reply": false, "reply_to_username": null, "is_paid_partnership": false, "topic": null, "language": null, "quoted_post": null, "assets": [ { "asset_url": "https://smr-images.bzine.co/threads/…", "media_type": "image", "video_duration": null }, { "asset_url": "https://smr-images.bzine.co/threads/…", "media_type": "image", "video_duration": null } ] }, { "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d61", "code": "Ddpj4YZkd3P", "url": "https://www.threads.com/@zuck/post/Ddpj4YZkd3P", "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e", "username": "zuck", "text": "Here's everything I announced at Meta Connect today 👇", "posted_at": "2026-09-24T00:07:31.000Z", "like_count": 2680, "reply_count": 612, "repost_count": 164, "quote_count": 34, "reshare_count": 138, "counts_hidden": false, "hashtags": [], "mentions": [], "link_urls": [], "is_reply": false, "reply_to_username": null, "is_paid_partnership": false, "topic": null, "language": null, "quoted_post": null, "assets": [] } ], "total": 2, "collected_at": "2026-09-28T09:13:55Z", "fetched_on_demand": true, "stale": false, "note": null, "next": "solari fetch threads post url=https://www.threads.com/@zuck/post/Ddt7cL5EfUG" } ``` #### MCP 호출 ```json { "name": "solari_fetch_threads_posts", "arguments": { "username": "zuck", "limit": 2 } } ``` #### 주의사항 - 상위 게시물만 최신순으로 옵니다. 계정이 남긴 답글은 빠집니다. fetch threads post가 게시물 하나를 답글과 함께 읽습니다. - 첫 수집은 5~30초 걸립니다(fetched_on_demand=true). 한 시간 안의 재호출은 저장된 사본을 돌려주고, refresh=true면 새로 수집합니다. - stale=true는 라이브 수집이 실패해서 예전 사본이 왔다는 뜻입니다. collected_at이 얼마나 오래됐는지 알려 줍니다. - 비공개 계정은 프로필만 오고 posts는 비어 있습니다. 수집 직후의 미디어 URL은 임시일 수 있으니 바로 읽어 두세요. - Threads 프로필이 없는 핸들은 빈 결과가 아니라 에러입니다. 실패한 호출은 크레딧을 쓰지 않습니다. #### 관련 도구 - [`solari_fetch_threads_account`](https://clip-pub.bzine.co/docs/tools/fetch-threads-account.md?lang=ko) - [`solari_fetch_threads_account_search`](https://clip-pub.bzine.co/docs/tools/fetch-threads-account-search.md?lang=ko) - [`solari_fetch_threads_post`](https://clip-pub.bzine.co/docs/tools/fetch-threads-post.md?lang=ko) ### solari fetch threads post > Threads 게시물 하나를 첫 답글들과 함께 라이브로 읽습니다. - **CLI**: `solari fetch threads post` - **MCP 도구**: `solari_fetch_threads_post` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 공개 URL이나 퍼머링크 코드로 Threads 게시물 하나를 작성자, 그리고 첫 번째 묶음의 직접 답글(좋아요 많은 순)과 함께 읽습니다. SOLARI가 처음 보는 게시물은 그 자리에서 수집하고(5~30초), 한 시간 안의 재호출은 저장된 사본을 다시 씁니다. refresh=true면 새로 수집합니다. **언제 쓰나요** — Threads 게시물 링크나 코드를 받았고, 그 게시물과 작성자, 사람들이 무엇이라고 답했는지 보고 싶을 때 쓰세요. **돌려주는 값** — 게시물, 좋아요 많은 순 직접 답글 최대 replies_limit개, 그리고 작성자 프로필을 읽는 fetch 명령입니다. #### 파라미터 - `url` (string, 선택, ≤ 512 chars) — threads.com이나 threads.net의 공개 게시물 URL. code 대신 넣으세요 - `code` (string, 선택, pattern ^[A-Za-z0-9_-]{5,40}$) — 퍼머링크 코드. URL에서 /post/ 뒤에 오는 부분입니다. url 대신 넣으세요 - `replies_limit` (integer, 선택, 기본값 20, 0–50) — 직접 답글을 몇 개까지. 좋아요 많은 순이고, 0이면 건너뜁니다 - `refresh` (boolean, 선택) — 최근 한 시간 안의 사본이 있어도 다시 수집합니다 #### 응답 ##### `Response` - `item` (object) — 게시물입니다. 작성자 핸들이 같이 있습니다 - `replies` (object[]) — 직접 답글입니다. 좋아요 많은 순이고, 첫 번째 묶음만입니다 - `collected_at` (timestamp | null) — 이 사본을 수집한 시각입니다 - `fetched_on_demand` (boolean) — 이 호출이 라이브로 수집했으면 true입니다 - `stale` (boolean) — 라이브 수집이 실패해서 예전 사본이 왔으면 true입니다. collected_at이 얼마나 오래됐는지 알려 줍니다 - `note` (string | null) — 주의할 점이 있을 때만 옵니다 - `next` (string) — 작성자 프로필을 읽는 fetch 명령입니다 ##### `item · replies[]` - `post_id` (uuid) — Threads 게시물 id입니다. Instagram, TikTok id와 바꿔 쓸 수 없습니다 - `code` (string | null) — 퍼머링크 코드입니다. URL에서 /post/ 뒤에 오는 부분입니다 - `url` (string | null) — 공개 퍼머링크입니다 - `account_id` (uuid | null) — 작성자 account_id입니다 - `username` (string | null) — 작성자 핸들입니다 - `text` (string | null) — 게시물 본문입니다 - `posted_at` (timestamp | null) — 게시 시각 (UTC) - `like_count` (integer | null) — 좋아요 수입니다 - `reply_count` (integer | null) — Threads가 보여 주는 답글 수입니다. 돌아온 답글보다 많을 수 있습니다 - `repost_count` (integer | null) — 리포스트 수입니다 - `quote_count` (integer | null) — 인용 수입니다 - `reshare_count` (integer | null) — 공유 수입니다 - `counts_hidden` (boolean | null) — 작성자가 참여 수치를 숨겼으면 true입니다 - `hashtags` (string[]) — 해시태그입니다. #는 없습니다 - `mentions` (string[]) — 멘션된 핸들입니다. @는 없습니다 - `link_urls` (string[]) — 게시물에 붙은 링크입니다 - `is_reply` (boolean | null) — 다른 게시물에 단 답글이면 true입니다 - `reply_to_username` (string | null) — 이 게시물이 답한 상대 핸들입니다. 상위 게시물이면 null입니다 - `is_paid_partnership` (boolean | null) — 유료 파트너십 표시입니다 - `topic` (string | null) — Threads가 붙인 토픽 태그입니다. 있을 때만 옵니다 - `language` (string | null) — 본문의 언어 코드입니다 - `quoted_post` (object | null) — 인용한 게시물입니다. username, text, like_count, posted_at, url이 있습니다. 인용 게시물이 아니면 null입니다 - `assets` (object[]) — 게시물의 미디어 파일입니다. 순서대로 오고, 각각 asset_url, media_type, video_duration이 있습니다 - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 받을 수 있는 링크입니다. 저장된 파일이 없으면 null입니다 #### 예시 ```console $ solari fetch threads post url=https://www.threads.com/@zuck/post/Ddt7cL5EfUG replies_limit=2 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "item": { "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d66", "code": "DdU1-6okapE", "url": "https://www.threads.com/@zuck/post/DdU1-6okapE", "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e", "username": "zuck", "text": "Last month I wrote about how we can build a positive and safe future for everyone: meta.com/thefutureisforeveryone \n\nEvery lab has the responsibility and incentive to move at the pace required to train its models safely,…", "posted_at": "2026-09-15T23:01:39.000Z", "like_count": 1639, "reply_count": 412, "repost_count": 136, "quote_count": 30, "reshare_count": 112, "counts_hidden": false, "hashtags": [], "mentions": [], "link_urls": [], "is_reply": false, "reply_to_username": null, "is_paid_partnership": false, "topic": null, "language": null, "quoted_post": null, "assets": [] }, "replies": [ { "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d62", "code": "DdU1-7_kb4B", "url": "https://www.threads.com/@zuck/post/DdU1-7_kb4B", "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e", "username": "zuck", "text": "The reality is:\n\n- People won't want to use agents that are misaligned with them and that don't do what they ask, so labs have a strong natural incentive to make their models more aligned.\n\nThere is a lot of debate about…", "posted_at": "2026-09-15T23:01:39.000Z", "like_count": 663, "reply_count": 77, "repost_count": 27, "quote_count": 4, "reshare_count": 10, "counts_hidden": false, "hashtags": [], "mentions": [], "link_urls": [], "is_reply": true, "reply_to_username": "zuck", "is_paid_partnership": false, "topic": null, "language": null, "quoted_post": null, "assets": [] }, { "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d63", "code": "DdU1-7tEf-q", "url": "https://www.threads.com/@zuck/post/DdU1-7tEf-q", "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d5e", "username": "zuck", "text": "- Labs face significant liability if their models cause harm, so they have a strong incentive to prevent this as well. \n\nMeta delayed shipping Muse for several months to focus on safety and security. We didn't call for e…", "posted_at": "2026-09-15T23:01:39.000Z", "like_count": 230, "reply_count": 11, "repost_count": 3, "quote_count": 0, "reshare_count": 2, "counts_hidden": false, "hashtags": [], "mentions": [], "link_urls": [], "is_reply": true, "reply_to_username": "zuck", "is_paid_partnership": false, "topic": null, "language": null, "quoted_post": null, "assets": [] } ], "collected_at": "2026-09-28T09:13:55Z", "fetched_on_demand": true, "stale": false, "note": null, "next": "solari fetch threads account username=zuck" } ``` #### MCP 호출 ```json { "name": "solari_fetch_threads_post", "arguments": { "url": "https://www.threads.com/@zuck/post/Ddt7cL5EfUG", "replies_limit": 2 } } ``` #### 주의사항 - url이나 code 중 하나만 넣으세요. threads.com, threads.net URL 둘 다 됩니다. - 답글은 첫 번째 묶음만 옵니다. 그래서 게시물의 reply_count가 돌아온 답글 수보다 클 수 있습니다. replies_limit=0이면 답글을 건너뜁니다. - 첫 수집은 5~30초 걸립니다(fetched_on_demand=true). 한 시간 안의 재호출은 저장된 사본을 돌려주고, refresh=true면 새로 수집합니다. - stale=true는 라이브 수집이 실패해서 예전 사본이 왔다는 뜻입니다. collected_at이 얼마나 오래됐는지 알려 줍니다. - 수집 직후의 미디어 URL은 임시일 수 있습니다. 바로 읽어 두세요. - 공개 게시물이 없는 참조는 빈 결과가 아니라 에러입니다. 실패한 호출은 크레딧을 쓰지 않습니다. #### 관련 도구 - [`solari_fetch_threads_post_search`](https://clip-pub.bzine.co/docs/tools/fetch-threads-post-search.md?lang=ko) - [`solari_fetch_threads_account`](https://clip-pub.bzine.co/docs/tools/fetch-threads-account.md?lang=ko) - [`solari_fetch_threads_posts`](https://clip-pub.bzine.co/docs/tools/fetch-threads-posts.md?lang=ko) ### solari fetch threads account search > Threads 계정을 이름으로 라이브 검색합니다. - **CLI**: `solari fetch threads account search` - **MCP 도구**: `solari_fetch_threads_account_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 이름이나 핸들 일부로 Threads에 직접 계정을 물어봅니다. 결과는 핸들, 표시 이름, 인증 배지, 프로필 사진, URL만 든 얇은 목록이고 Threads가 정한 순서입니다. 하나를 골라 fetch threads account로 전체 프로필을 읽으세요. **언제 쓰나요** — 이름이나 핸들 일부는 알지만 정확한 Threads 핸들은 모를 때 쓰세요. **돌려주는 값** — Threads 순서대로 최대 limit개 후보와, 첫 후보의 프로필을 읽는 fetch 명령입니다. #### 파라미터 - `query` (string, 필수, ≤ 100 chars) — 이름 또는 핸들 일부. @는 있어도 없어도 됩니다 - `limit` (integer, 선택, 기본값 10, 1–20) — 최대 몇 개까지 #### 응답 ##### `Response` - `query` (string) — 검색에 쓴 문자열입니다. @는 뺀 값입니다 - `items` (object[]) — 맞는 계정입니다. Threads 순서입니다 - `total` (integer) — 돌아온 후보 수입니다 - `next` (string) — 첫 후보의 프로필을 읽는 fetch 명령입니다. 후보가 있을 때만 옵니다 ##### `items[]` - `username` (string) — 핸들입니다. 소문자이고 @는 없습니다 - `full_name` (string | null) — 표시 이름입니다 - `is_verified` (boolean | null) — 인증 배지입니다 - `profile_pic_url` (string | null) — 프로필 사진 URL입니다 - `url` (string | null) — 공개 프로필 URL입니다 #### 예시 ```console $ solari fetch threads account search query=nike limit=1 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "query": "nike", "items": [ { "username": "nike", "full_name": "Nike", "is_verified": true, "profile_pic_url": "https://scontent-gmp1-1.cdninstagram.com/v/t51.2885-19/467733497_2299328197118830_1129133478722126916_n.jpg?…", "url": "https://www.threads.com/@nike" } ], "total": 1, "next": "solari fetch threads account username=nike" } ``` #### MCP 호출 ```json { "name": "solari_fetch_threads_account_search", "arguments": { "query": "nike", "limit": 1 } } ``` #### 주의사항 - 순서와 랭킹은 Threads 기준이라 공식 계정이 항상 맨 앞은 아닙니다. 고르기 전에 is_verified와 full_name을 확인하세요. - 아무것도 저장하지 않고 결과에 account_id도 없습니다. 고른 username으로 fetch threads account를 호출하면 팔로워 수, bio, bio 링크를, fetch threads posts를 호출하면 게시물을 읽습니다. - 호출마다 Threads에 라이브로 물어봅니다. 1~2초 걸리고, cache하지 않습니다. items가 비어 있으면 Threads에 맞는 계정이 없다는 뜻입니다. #### 관련 도구 - [`solari_fetch_threads_account`](https://clip-pub.bzine.co/docs/tools/fetch-threads-account.md?lang=ko) - [`solari_fetch_threads_posts`](https://clip-pub.bzine.co/docs/tools/fetch-threads-posts.md?lang=ko) - [`solari_fetch_threads_post_search`](https://clip-pub.bzine.co/docs/tools/fetch-threads-post-search.md?lang=ko) ### solari fetch threads post search > 키워드에 대한 Threads top 게시물을 라이브로 검색합니다. - **CLI**: `solari fetch threads post search` - **MCP 도구**: `solari_fetch_threads_post_search` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 1 키워드로 Threads에 직접 게시물을 검색해서 Threads의 top 결과를 받습니다. 한 페이지(20개 안팎)를 Threads의 관련도 순으로 주고, 게시물마다 전체 필드와 assets가 옵니다. 맞는 게시물은 수집해서 저장하니, fetch threads post로 어느 것이든 답글과 함께 열 수 있습니다. **언제 쓰나요** — 어떤 주제, 브랜드, 문구에 대해 사람들이 Threads에 무엇을 올리는지 보고 싶은데 시작할 핸들이 없을 때 쓰세요. **돌려주는 값** — Threads 결과 한 페이지에서 최대 limit개 게시물이 관련도 순으로 오고, 첫 게시물을 답글과 함께 여는 fetch 명령이 옵니다. #### 파라미터 - `query` (string, 필수, ≤ 100 chars) — 검색할 키워드나 문구 - `limit` (integer, 선택, 기본값 20, 1–25) — 결과 한 페이지에서 최대 몇 개까지 #### 응답 ##### `Response` - `query` (string) — 검색에 쓴 키워드입니다 - `items` (object[]) — 맞는 게시물입니다. Threads 관련도 순입니다 - `total` (integer) — 돌아온 게시물 수입니다 - `fetched_on_demand` (boolean) — 항상 true입니다. 검색은 매번 라이브로 수집합니다 - `note` (string | null) — 주의할 점이 있을 때만 옵니다. 예를 들어 맞는 게시물이 없을 때입니다 - `next` (string) — 첫 게시물을 답글과 함께 여는 fetch 명령입니다. 결과가 있을 때만 옵니다 ##### `items[]` - `post_id` (uuid) — Threads 게시물 id입니다. Instagram, TikTok id와 바꿔 쓸 수 없습니다 - `code` (string | null) — 퍼머링크 코드입니다. URL에서 /post/ 뒤에 오는 부분입니다 - `url` (string | null) — 공개 퍼머링크입니다 - `account_id` (uuid | null) — 작성자 account_id입니다 - `username` (string | null) — 작성자 핸들입니다 - `text` (string | null) — 게시물 본문입니다 - `posted_at` (timestamp | null) — 게시 시각 (UTC) - `like_count` (integer | null) — 좋아요 수입니다 - `reply_count` (integer | null) — Threads가 보여 주는 답글 수입니다. 돌아온 답글보다 많을 수 있습니다 - `repost_count` (integer | null) — 리포스트 수입니다 - `quote_count` (integer | null) — 인용 수입니다 - `reshare_count` (integer | null) — 공유 수입니다 - `counts_hidden` (boolean | null) — 작성자가 참여 수치를 숨겼으면 true입니다 - `hashtags` (string[]) — 해시태그입니다. #는 없습니다 - `mentions` (string[]) — 멘션된 핸들입니다. @는 없습니다 - `link_urls` (string[]) — 게시물에 붙은 링크입니다 - `is_reply` (boolean | null) — 다른 게시물에 단 답글이면 true입니다 - `reply_to_username` (string | null) — 이 게시물이 답한 상대 핸들입니다. 상위 게시물이면 null입니다 - `is_paid_partnership` (boolean | null) — 유료 파트너십 표시입니다 - `topic` (string | null) — Threads가 붙인 토픽 태그입니다. 있을 때만 옵니다 - `language` (string | null) — 본문의 언어 코드입니다 - `quoted_post` (object | null) — 인용한 게시물입니다. username, text, like_count, posted_at, url이 있습니다. 인용 게시물이 아니면 null입니다 - `assets` (object[]) — 게시물의 미디어 파일입니다. 순서대로 오고, 각각 asset_url, media_type, video_duration이 있습니다 - `assets[].asset_url` (string | null) — 원본 크기 이미지나 영상을 바로 받을 수 있는 링크입니다. 저장된 파일이 없으면 null입니다 #### 예시 ```console $ solari fetch threads post search query="Meta AI" limit=1 ``` _읽기 편하도록 긴 문자열과 반복되는 배열 항목을 줄였습니다._ ```json { "query": "Meta AI", "items": [ { "post_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d64", "code": "Dd008mwipTJ", "url": "https://www.threads.com/@meta.ai/post/Dd008mwipTJ", "account_id": "019f3a5c-2b7e-7c41-9d0e-5a1f2c3b4d7b", "username": "meta.ai", "text": "Từng tháng âm:\n\n1. Tháng Giêng - Cung Phu Thê (Sửu): Có Hồng Loan, Thanh Long. Tháng khởi duyên, dễ có người mai mối, gặp gỡ nơi đông người. Tài chính hao nhẹ do Đầu Quân.\n\n2. Tháng 2 - Cung Huynh Đệ (Tý): Liêm Trinh Thi…", "posted_at": "2026-09-28T09:08:17.000Z", "like_count": 0, "reply_count": 2, "repost_count": 0, "quote_count": 0, "reshare_count": 0, "counts_hidden": false, "hashtags": [], "mentions": [], "link_urls": [], "is_reply": true, "reply_to_username": "meta.ai", "is_paid_partnership": false, "topic": null, "language": null, "quoted_post": null, "assets": [] } ], "total": 1, "fetched_on_demand": true, "note": null, "next": "solari fetch threads post url=https://www.threads.com/@meta.ai/post/Dd008mwipTJ" } ``` #### MCP 호출 ```json { "name": "solari_fetch_threads_post_search", "arguments": { "query": "Meta AI", "limit": 1 } } ``` #### 주의사항 - Threads의 top 탭만 됩니다. 한 페이지뿐이고 recent 탭도, 다음 페이지도 없습니다. 같은 키워드로 다시 호출하면 같은 페이지가 옵니다. - 결과는 Threads의 관련도 랭킹이라 느슨하게만 관련된 게시물이나 답글이 섞일 수 있습니다. 쓰기 전에 text와 username을 확인하세요. - 맞는 게시물은 저장됩니다. fetch threads post로 어느 것이든 답글과 함께 열고, fetch threads account로 작성자를 읽을 수 있습니다. - 호출마다 Threads에 라이브로 물어봅니다. 몇 초 걸리고, cache하지 않습니다. items가 비어 있고 note가 있으면 맞는 공개 게시물이 없다는 뜻입니다. #### 관련 도구 - [`solari_fetch_threads_post`](https://clip-pub.bzine.co/docs/tools/fetch-threads-post.md?lang=ko) - [`solari_fetch_threads_account`](https://clip-pub.bzine.co/docs/tools/fetch-threads-account.md?lang=ko) - [`solari_fetch_threads_account_search`](https://clip-pub.bzine.co/docs/tools/fetch-threads-account-search.md?lang=ko) ### solari instagram download content > 인스타그램 콘텐츠 다운로드. - **CLI**: `solari instagram download content` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 콘텐츠 당 1 인스타그램 콘텐츠를 다운로드합니다. 동시에 여러 콘텐츠를 받을 수 있습니다. 최고 화질의 영상/이미지를 다운로드 받습니다. #### 파라미터 - `slugs` (string[], 선택) — shortcode나 게시물 URL. 쉼표로 구분합니다. - `urls` (string[], 선택) — 게시물 URL. 쉼표로 구분합니다. - `dir` (string, 선택) — 저장할 폴더. 기본은 현재 폴더입니다. - `output` (string, 선택) — 게시물 하나를 저장할 때의 파일 경로. - `parallel` (integer, 선택, 기본값 4, 1–16) — 동시에 내려받는 개수. - `overwrite` (boolean, 선택, 기본값 true) — false면 이미 있는 파일을 그대로 둡니다. #### 예시 ```console $ solari instagram download content slugs=DcyMAmUh6FZ,DdJ7IRyE6Pu dir=~/Downloads ``` #### 관련 도구 - [`solari_fetch_instagram_post_assets`](https://clip-pub.bzine.co/docs/tools/fetch-instagram-post-assets.md?lang=ko) - [`solari tiktok download content`](https://clip-pub.bzine.co/docs/tools/tiktok-download-content.md?lang=ko) ### solari tiktok download content > 틱톡 콘텐츠 다운로드. - **CLI**: `solari tiktok download content` - **권한**: `solari:read` - **이용 가능 플랜**: 무료 체험 · Plus · Pro · Enterprise - **크레딧**: 콘텐츠 당 1 틱톡 콘텐츠를 다운로드합니다. 동시에 여러 콘텐츠를 받을 수 있습니다. 최고 화질의 영상/이미지를 다운로드 받습니다. #### 파라미터 - `urls` (string[], 선택) — 게시물 URL. 쉼표로 구분합니다. 단축 링크도 됩니다. - `video_ids` (string[], 선택) — 숫자 video id. 쉼표로 구분합니다. 이미 카탈로그에 있는 게시물만 됩니다. - `dir` (string, 선택) — 저장할 폴더. 기본은 현재 폴더입니다. - `output` (string, 선택) — 게시물 하나를 저장할 때의 파일 경로. - `parallel` (integer, 선택, 기본값 4, 1–16) — 동시에 내려받는 개수. - `overwrite` (boolean, 선택, 기본값 true) — false면 이미 있는 파일을 그대로 둡니다. #### 예시 ```console $ solari tiktok download content urls=https://www.tiktok.com/@innisfree_official/video/7680375687139642645 dir=~/Downloads ``` #### 관련 도구 - [`solari_fetch_tiktok_post_assets`](https://clip-pub.bzine.co/docs/tools/fetch-tiktok-post-assets.md?lang=ko) - [`solari instagram download content`](https://clip-pub.bzine.co/docs/tools/instagram-download-content.md?lang=ko)