# How do I get a TikTok follower count for any username?

TikTok. Checked September 2026.

Call the Openhandle profile endpoint with `@username`. The response has `metrics.followers`, plus following, total likes, and video count, as integers. You need an API key, not a TikTok login or a Research API application.

The number is exact, not the "75.1K" the app shows. A private account returns `PROFILE_PRIVATE` with no count.

## GET /v1/tiktok/profiles/@username

```bash
curl "https://api.openhandle.dev/v1/tiktok/profiles/@pixel_orchard_tt_test" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
```

```ts
import { OpenHandle } from '@openhandle/sdk';

const openhandle = new OpenHandle({ apiKey: process.env.OPENHANDLE_API_KEY! });
const { data } = await openhandle.tiktok.profile('pixel_orchard_tt_test').get();

console.log(data.metrics.followers); // 75120
```

200 OK:

```json
{
  "platform": "tiktok",
  "resource": "profile",
  "capturedAt": "2026-09-18T11:58:33Z",
  "source": "live",
  "data": {
    "id": "920000000001",
    "handle": "pixel_orchard_tt_test",
    "displayName": "Pixel Orchard",
    "isVerified": true,
    "isPrivate": false,
    "metrics": { "followers": 75120, "following": 411, "likes": 9814220, "posts": 4 }
  }
}
```

Trimmed to the fields this question needs. The full profile has bio, links, avatar, region, and more. The example is a Test account, so you can run it on a free Test key.

## What each metric means

| Field | Meaning |
|---|---|
| `metrics.followers` | Accounts following this one |
| `metrics.following` | Accounts this one follows |
| `metrics.likes` | Total likes across all videos, the heart count on the profile |
| `metrics.posts` | Public videos on the profile |

## Usernames, IDs, and URLs

- **Username.** Pass `@username`. The `@` marks it as a handle.
- **ID.** The response carries `data.id`. Store it. A renamed account still resolves by ID.
- **URL.** Pass a tiktok.com profile URL to `POST /v1/urls/fetch`. Short links from the app are expanded.

## Bulk checks

One profile per request, up to 10 requests per second per key. A thousand creators is a few minutes. Use `freshness=24h` when a day-old number is fine and the batch runs more than once a day. Use `freshness=live` for payouts and contracts.

## When this does not work

These answers are definitive. Store them, do not retry them.

| Situation | Status | Code |
|---|---|---|
| The account is private | 403 | `PROFILE_PRIVATE` |
| The account is deleted, banned, or never existed | 404 | `PROFILE_NOT_FOUND` |
| The username is malformed | 400 | `INVALID_IDENTIFIER` |

```json
{
  "error": {
    "code": "PROFILE_PRIVATE",
    "message": "This profile is private.",
    "requestId": "req_01j8…",
    "retryable": false
  }
}
```

A metric TikTok hides is `null`, never `0`. A measured zero, a new account with no followers, is `0`.

## Related

- [Does TikTok have a public API?](https://openhandle.dev/questions/does-tiktok-have-a-public-api): What the official APIs cover and who they are for.
- [How do I track a competitor’s follower growth?](https://openhandle.dev/questions/how-do-i-track-a-competitors-follower-growth): Turn one read into a series.
- [TikTok API](https://openhandle.dev/apis/tiktok): Every TikTok endpoint with examples.
