# TikTok account analytics

> A TikTok account's profile and lifetime counters.

Canonical: <https://www.tryadeli.com/docs/api/analytics/tiktok-account-analytics>

`GET https://app.tryadeli.com/api/v1/analytics/tiktok/account-analytics`

Authorization: `Bearer <API key>` — see [Authentication](https://www.tryadeli.com/docs/authentication)

Returns the TikTok account's profile and lifetime counters, read from TikTok
API for Business. For daily figures and audience demographics use
[TikTok account insights](https://www.tryadeli.com/docs/api/analytics/tiktok-account-insights).

**Query parameters**

| Name        | Type   | Required | Description                                                                       |
| ----------- | ------ | -------- | --------------------------------------------------------------------------------- |
| `accountId` | `uuid` | Yes      | A connected TikTok account.                                                       |
| `profileId` | `uuid` |          | Optional, because accountId names its profile. If you pass both, they must agree. |

`openId` is TikTok's app-scoped id for the account. `isBusinessAccount` tells a
TikTok Business Account from a personal one; some insight fields in
[TikTok account insights](https://www.tryadeli.com/docs/api/analytics/tiktok-account-insights) exist
only for business accounts.

**Errors** — `401 unauthorized`, `400 invalid_request`, `404 account_not_found`,
`404 profile_not_found`, `422 connection_expired`,
`422 provider_not_configured`, `429 rate_limited`, `502 provider_error`.

## Request examples

**cURL**

```bash
curl --fail-with-body "https://app.tryadeli.com/api/v1/analytics/tiktok/account-analytics?accountId=00000000-0000-4000-8000-000000000003" \
  -H "Authorization: Bearer $ADELI_API_KEY"
```

**JavaScript**

```javascript
const response = await fetch("https://app.tryadeli.com/api/v1/analytics/tiktok/account-analytics?accountId=00000000-0000-4000-8000-000000000003", {
  headers: {
    Authorization: `Bearer ${process.env.ADELI_API_KEY}`,
  },
});
console.log(await response.json());
```

**Python**

```python
import os

import requests

response = requests.get(
    "https://app.tryadeli.com/api/v1/analytics/tiktok/account-analytics",
    headers={"Authorization": f"Bearer {os.environ['ADELI_API_KEY']}"},
    params={
        "accountId": "00000000-0000-4000-8000-000000000003",
    },
)
print(response.json())
```

## Responses

### 200

```json
{
  "platform": "tiktok",
  "accountId": "00000000-0000-4000-8000-000000000003",
  "profileId": "00000000-0000-4000-8000-000000000001",
  "profile": {
    "openId": "app-scoped-open-id",
    "username": "creator",
    "displayName": "Creator",
    "avatarUrl": "https://example.com/avatar.jpg",
    "profileDeepLink": "https://www.tiktok.com/@creator",
    "bioDescription": "Profile bio",
    "isVerified": false,
    "isBusinessAccount": true
  },
  "analytics": { "followers": 1200, "following": 80, "likes": 5400, "videos": 42 },
  "fetchedAt": "2026-04-01T12:00:00.000Z"
}
```

### 404

```json
{
  "error": {
    "code": "account_not_found",
    "message": "TikTok account not found"
  }
}
```

### 429

```json
{
  "error": {
    "code": "rate_limited",
    "message": "TikTok rate limit reached; retry later"
  }
}
```
