TikTok profile followers API
Walk the inbound follower graph for a TikTok handle: paginated public follower rows with handles, avatars, verification, and light metrics in the shared Social Fetch envelope.
GET /v1/tiktok/profiles/{handle}/followers1 credit Failed requests are free
About this endpoint
GET /v1/tiktok/profiles/{handle}/followers is the inbound list. Pass the TikTok username (with or without a leading @) and read data.followers plus data.page (hasMore, nextCursor). When TikTok exposes it, data.totalFollowers is the aggregate count for the seed — useful as a progress check while you page. Each follower row can include handle, displayName, avatarUrl, optional avatarUrls (large, medium, thumb), optional platformUserId and secUid, bio, verified, privateAccount, and metrics (followers, following). Optional query params: cursor for the next page, userId when you already store the numeric id (faster resolve on later pages), and trim for a smaller payload.
Branch on data.lookupStatus before you write edges. found means this page of the list could be returned. hidden means TikTok is not exposing the follower list even when the profile card may still resolve on GET /v1/tiktok/profiles/{handle}. private and not_found are explicit too — an empty followers array with found is not the same as hidden. When hasMore is true, pass nextCursor unchanged on the next call and keep the same handle (and optional userId). TikTok exposes only roughly the most recent ~10,000 followers (newest first), so data.totalFollowers can be far larger than the number of rows you can page; an empty followers page means the end of the list even if the previous page said hasMore: true, and totalFollowers is null when TikTok does not return a count. Each page is a separate billed request; trust the credit amount shown on this page and confirm with meta.creditsCharged. Country-level audience mix without named accounts is GET /v1/tiktok/profiles/{handle}/audience. The outbound list (accounts this handle follows) is the sibling route below.
TikTok profile followers API FAQ
How do I page TikTok followers for a handle via API?
Call GET /v1/tiktok/profiles/{handle}/followers with your Social Fetch API key (x-api-key). Pass the TikTok username as the path parameter, with or without a leading @. Read data.lookupStatus first, then data.followers and data.page. On later pages, send cursor from data.page.nextCursor and reuse optional userId when you have it.
How much does the TikTok profile followers API cost?
Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.
What fields does each inbound follower row include?
handle, displayName, avatarUrl, optional avatarUrls (large, medium, thumb), optional platformUserId and secUid, bio, verified, privateAccount, and metrics (followers, following). With trim=true, some optional identity fields may be omitted. Exact nullability lives in the OpenAPI schema for this route.
How should I paginate large TikTok follower lists?
Treat data.page.nextCursor as opaque. When hasMore is true, pass that cursor as the cursor query param on the next request. Keep the same handle across pages; if you resolved userId on an earlier call, pass it again to speed up subsequent pages. Stop when hasMore is false or nextCursor is null. Do not invent or parse the cursor string. TikTok exposes only roughly the most recent ~10,000 followers of an account, newest first, so very large accounts end well short of data.totalFollowers. An empty followers page means you have reached the end of the list, even if the previous page reported hasMore: true. Empty pages are billed like any other page, so stop as soon as you receive one.
Why is a follower list hidden or empty for a public TikTok profile?
lookupStatus: hidden means TikTok is not exposing the follower list for that handle — common when the list is restricted even though the profile card still exists. private means the account is private. found with an empty followers array can mean zero public followers on that page, not a hidden list. Always branch on lookupStatus before treating emptiness as "no audience."
How is this different from the following list or audience demographics?
This route pages the inbound follower graph under data.followers (who follows the seed). Accounts the seed follows are GET /v1/tiktok/profiles/{handle}/following under data.accounts. Country-level audience mix without named accounts is GET /v1/tiktok/profiles/{handle}/audience. Aggregate follower counts without any list live on GET /v1/tiktok/profiles/{handle} under data.metrics.
Do I need TikTok OAuth to list a profile's followers?
No. You authenticate to Social Fetch with an API key. The route reads publicly available follower-list data when TikTok exposes it; it does not act on behalf of a logged-in TikTok user.
Can I use this for TikTok audience research or outreach queues?
Yes. Teams page followers for a seed handle, upsert each row by handle or platformUserId, filter on verified / privateAccount / metrics, then fan out selected accounts to the profile or videos routes. Keep meta.requestId if you need support on a failed page.
Other TikTok endpoints
- ProfileGET /v1/tiktok/profiles/{handle}
- Profile videosGET /v1/tiktok/profiles/{handle}/videos
- Profile followingGET /v1/tiktok/profiles/{handle}/following
- Profile regionGET /v1/tiktok/profiles/{handle}/region
- Profile audienceGET /v1/tiktok/profiles/{handle}/audience
- Profile engagementGET /v1/tiktok/profiles/{handle}/engagement
- Live streamGET /v1/tiktok/profiles/{handle}/live
- Live infoGET /v1/tiktok/live