TikTok APITikTok

TikTok followers API

Call GET /v1/tiktok/profiles/{identifier}/followers with a username or a user ID. Each request returns one page of follower profiles and a cursor for the next page.

You do not need a TikTok login or Research API access.

GET /v1/tiktok/profiles/{identifier}/followers
curl "https://api.openhandle.dev/v1/tiktok/profiles/@motion_foundry_tt_test/followers" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
TypeScript SDK
import { OpenHandle } from '@openhandle/sdk';

const openhandle = new OpenHandle({ apiKey: process.env.OPENHANDLE_API_KEY! });
let page = await openhandle.tiktok.profile('@motion_foundry_tt_test').followers.list();

while (page) {
    for (const follower of page.data) console.log(follower.handle, follower.metrics.followers);
    page = await page.next();
}
200 OK
{
  "platform": "tiktok",
  "resource": "profile",
  "capturedAt": "2026-10-27T09:16:40Z",
  "source": "live",
  "data": [
    {
      "id": "920000000001",
      "handle": "pixel_orchard_tt_test",
      "displayName": "Pixel Orchard",
      "url": "https://www.tiktok.com/@pixel_orchard_tt_test",
      "isPrivate": false,
      "isVerified": true,
      "metrics": { "followers": 75120, "following": 411, "posts": 4 }
    }
  ],
  "meta": { "cursors": { "next": "b3BhcXVlLWN1cnNvcg" } }
}

Trimmed to one follower and the fields most apps need. Each follower is a full profile. The example is a Test account, so you can run it on a free Test key.

What you get

  • —Follower profiles. Each follower comes back as a profile with id, handle, displayName, url, and verification.
  • —Counts. Each follower has its own follower, following, and post counts in metrics.
  • —One page per request. Pass meta.cursors.next back as cursor to get the next page. When it is null, there are no more pages.
  • —Following. Call GET /v1/tiktok/profiles/{identifier}/following for the accounts this account follows.

Price

  • —Per request. $0.0025 per live request. $0.002 per request after 100,000 requests in a month. One page of results is one request.
  • —Older data costs less. Set freshness to say how old the data may be. Data up to 24 hours old: $0.0005. Data up to 7 days old: $0.0001. Data up to 30 days old: free.
  • —Failed means free. Errors and invalid requests are never billed. You pay for answers, and a confirmed not-found is an answer.
  • —Free to start. Every new workspace starts with 100 free live requests, no card needed. Test keys are never charged.

When this does not work

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

SituationStatusCode
The account is private403PROFILE_PRIVATE
The account is deleted, banned, or never existed404PROFILE_NOT_FOUND
The username is malformed400INVALID_IDENTIFIER
404 Not Found
{
  "error": {
    "code": "PROFILE_NOT_FOUND",
    "message": "This profile was not found.",
    "requestId": "req_01j8…",
    "retryable": false
  }
}

Regional and age limits can make an otherwise public account unavailable.

Read next

More TikTok data

Send your agent ahead.

Paste the prompt into your agent and it sets everything up. Or come yourself, it takes five minutes.

For agents

100 free requests. No card needed.