# solari catalog tiktok account history

> A TikTok account's follower and video counts over time.

- **CLI**: `solari catalog tiktok account history`
- **MCP tool**: `solari_catalog_tiktok_account_history`
- **Access**: `solari:read`
- **Plans**: Free Trial · Plus · Pro · Enterprise
- **Credit**: 1

Follower, following, like, and video counts of a TikTok account over time, as SOLARI recorded them. Use it to chart growth or compare accounts.

**When to use it** — When you need follower growth or a trend, not just today's numbers.

**What comes back** — Recorded values, oldest first, plus the account's current values.

## Parameters

- `account_id` (string, optional, uuid, pattern ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$) — Pass account_id or username.
- `username` (string, optional, ≤ 64 chars) — TikTok username. Ignored when account_id is set.
- `since` (string, optional, pattern ^\d{4}-\d{2}-\d{2}$) — First UTC date to include (YYYY-MM-DD).
- `until` (string, optional, pattern ^\d{4}-\d{2}-\d{2}$) — Last UTC date to include (YYYY-MM-DD).
- `granularity` (enum, optional, default "day") — day keeps one point per UTC day. all keeps every point. Values: `day`, `all`.

## Response

### `Response`

- `found` (boolean) — false if the account is not in the catalog.
- `account_id / username` (string) — The resolved account.
- `granularity` (string) — day or all, as applied.
- `since / until` (date) — The UTC date range covered.
- `current` (object | null) — The catalog's current values, whatever the date range.
- `points` (object[]) — Recorded values, oldest first.
- `truncated` (boolean) — true if older points were dropped. Narrow since to see them.

### `current`

- `follower_count / following_count / heart_count / video_count` (integer | null) — Current counts in the catalog. heart_count is total likes received.
- `is_verified / is_private` (boolean | null) — Verification badge and private flag.
- `collected_at` (timestamp | null) — When the profile was last collected from TikTok.

### `points[]`

- `captured_at` (timestamp) — When SOLARI recorded these values (UTC).
- `follower_count / following_count / heart_count / video_count` (integer | null) — Counts at that moment.
- `is_verified / is_private` (boolean | null) — Verification badge and private flag at that moment.

## Example

```console
$ solari catalog tiktok account history username=innisfree_official since=2026-09-20 until=2026-09-30
```

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

```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
}
```

## As an MCP call

```json
{
  "name": "solari_catalog_tiktok_account_history",
  "arguments": {
    "username": "innisfree_official",
    "since": "2026-09-20",
    "until": "2026-09-30"
  }
}
```

## Notes

- since and until are UTC dates, and both ends are included. Without them you get the last 90 days.
- A point exists only when SOLARI collected the account, so gaps between points are normal.
- No points exist before 2025-12-15.
- TikTok rounds counts of 10,000 and above, so small changes between points do not show.
- Check current.collected_at before treating current as today's numbers.
- This reads the catalog only. If the account is missing, call solari fetch tiktok account username=… first. Recording starts from then; past values cannot be filled in.

## Related tools

- [`solari_catalog_tiktok_account_profile`](https://solari.sh/docs/tools/catalog-tiktok-account-profile.md)
- [`solari_catalog_tiktok_account_posts`](https://solari.sh/docs/tools/catalog-tiktok-account-posts.md)
- [`solari_fetch_tiktok_account`](https://solari.sh/docs/tools/fetch-tiktok-account.md)
- [`solari_catalog_instagram_account_history`](https://solari.sh/docs/tools/catalog-instagram-account-history.md)
