# solari tiktok account profile

> SOLARI가 아는 TikTok 계정 하나의 모든 정보.

- **CLI**: `solari tiktok account profile`
- **MCP 도구**: `solari_tiktok_account_profile`
- **권한**: `solari:read` — 로그인한 SOLARI 계정이면 쓸 수 있어요.

TikTok 계정 하나의 전체 SOLARI 프로필: username(핸들), nickname, bio, 팔로워/팔로잉/좋아요/영상 수, region, verified/private/commerce 플래그, profile_url, 그리고 최근 포스트 미리보기(recent_posts)가 함께 담겨요. 계정은 account_id(solari_tiktok_account_search 가 반환하는 TikTok 계정 UUID) 또는 username(TikTok 핸들)으로 지정해요. 아직 추적 중이 아닌 핸들은 첫 요청 때 실시간으로 수집해요(10~40초 소요, 응답의 fetched_on_demand=true, 백그라운드 크롤이 도착하기 전까지는 가장 최근 포스트만 조회할 수 있어요). 그 뒤에도 not-found 에러가 나면 해당 핸들은 TikTok에 존재하지 않아요. 로그인된 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)$) — TikTok 계정의 account_id(SOLARI 계정 UUID). 이 값 또는 username 중 하나를 넘기세요.
- `username` (string, 선택, ≤ 64 chars) — TikTok 핸들. 앞의 @는 있어도 없어도 돼요. account_id가 설정되면 무시돼요.

## 응답

### `Response`

- `account_id` (uuid) — TikTok account_id.
- `username / nickname / bio` (string) — 핸들, 표시 이름, bio 텍스트.
- `bio_links` (string[]) — bio 안의 링크.
- `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) — SOLARI post id. Instagram post id와는 다른 네임스페이스예요.
- `video_id` (string) — 공개된 TikTok 숫자 id — /video/ 또는 /photo/ 뒤의 숫자.
- `url` (string) — 공개 TikTok 퍼머링크.
- `account_id` (uuid) — 작성자의 TikTok account_id.
- `username` (string) — 작성자 핸들.
- `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) — TikTok이 붙인 경우의 AI 생성 콘텐츠 라벨.
- `original_language_code` (string | null) — 원본 언어 코드.
- `cover_url` (string) — 커버 이미지 URL.
- `video_url` (string) — 영상 파일 URL.
- `images` (string[]) — 캐러셀 슬라이드. video 포스트에서는 비어 있어요.
- `hashtags` (string[]) — 캡션에서 파싱한 해시태그.
- `mentions` (string[]) — 캡션에 멘션된 핸들.
- `transcript` (string | null) — 음성 전사문. include_transcript=true일 때만 채워져요.

## 예시

```console
$ solari 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_tiktok_account_profile",
  "arguments": {
    "username": "innisfree_official"
  }
}
```

## 주의사항

- 추적 중이 아닌 핸들은 첫 요청 때 실시간으로 수집해요. 10~40초가 걸리고, fetched_on_demand=true로 표시되며, 백그라운드 크롤이 도착하기 전까지는 가장 최근 포스트만 존재해요.
- 그 뒤에도 not-found 에러가 나면 해당 핸들은 TikTok에 존재하지 않아요.

## 관련 도구

- [`solari_tiktok_account_posts`](https://solari.sh/docs/tools/tiktok-account-posts.md?lang=ko)
- [`solari_tiktok_account_search`](https://solari.sh/docs/tools/tiktok-account-search.md?lang=ko)
- [`solari_instagram_account_profile`](https://solari.sh/docs/tools/instagram-account-profile.md?lang=ko)
