TikTok Following API
List the accounts a TikTok user follows (handle, display name, follower count, bio) by username.
$0.80/1k req, pay per request, no subscription.
{"id": "6812093482910238721","handle": "barleyandbones","displayName": "Barley & Bones BBQ","followers": 452000,"videos": 318,"region": "US","bio": "Smoked low and slow since 2016","following": 214,... 7 more fields}
Pricing and providers
TikTok Following API pricing: one API, 3 interchangeable providers
The cheapest provider serves first. If it fails, the next one takes over in the same call.
Try it
Get TikTok following in one request
This sample shows 16 of 20 fields. See every field
{
"found": true,
"data": {
"nextCursor": "eyJvZmZzZXQiOjIwfQ==",
"following": [
{
"id": "6812093482910238721",
"handle": "barleyandbones",
"displayName": "Barley & Bones BBQ",
"followers": 452000,
"videos": 318,
"region": "US",
"bio": "Smoked low and slow since 2016",
"following": 214,
"likes": 8900000,
"avatarUrl": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/barleyandbones~c5_100x100.jpeg?x-expires=1759104000&x-signature=mno345",
"private": false,
"createdUtc": 1465862400
},
{
"id": "6890128374102938412",
"handle": "lena.does.things",
"displayName": "Lena",
"followers": 68400,
"videos": 94,
"region": "GB",
"bio": "comedy + chaos",
"following": 890,
"likes": 1240000,
"avatarUrl": "https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/lena.does.things~c5_100x100.jpeg?x-expires=1759104000&x-signature=pqr678",
"private": false,
"createdUtc": 1592179200
}
]
}
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
One request, one response shape.
Every field you send and every field you get back, each with a real example.
Last verified 2026-10-31 · uptime and latency measured over 30d
Request body
JSON, posted to this endpoint.
- handlestring
stoolpresidente
TikTok username without the leading @ (e.g. "stoolpresidente").
- cursorstring
Pagination cursor from a previous response.
- requireCursorboolean
Deprecated; send `requireFields: ["nextCursor"]` instead, which does exactly the same thing. Set true if you intend to page through results, so the request is only served by a source that can return a nextCursor. Omit it and routing is unchanged, with the cheapest source serving. This can raise your price: when the cheapest source cannot page, a source that can serves, and you are quoted and charged its price. It stays accepted so callers that already send it keep working.
- requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `secUid` or `instagramUrl`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a profile that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge. On a paginated walk it applies to the first page only; later pages stay with the source that page chose, at the price it was quoted.
Response
JSON, one example value per field.
- avatarUrlstring
https://p16-sign-va.tiktokcdn.com/tos-maliva-avt-0068/barleyandbones~c5_100x100.jpeg?x-expires=1759104000&x-signature=mno345
Account avatar image URL. Signed and short-lived, so the query string is load-bearing and kept intact.
- biostring
Smoked low and slow since 2016
- createdUtcnumber
1465862400
UTC epoch timestamp in seconds (Unix time) the account was created. Multiply by 1000 for a JS Date in milliseconds.
- displayNamestring
Barley & Bones BBQ
Populated whenever the provider has data for the entity.
- followersinteger
452000
- followinginteger
214
Number of accounts this account follows.
- handlestring
barleyandbones
Populated whenever the provider has data for the entity.
- idstring
6812093482910238721
Populated whenever the provider has data for the entity.
- instagramUrlstringcan require
Instagram profile the account links on TikTok. Null when it links none or the serving source does not report it.
- likesinteger
8900000
Total likes the account has received.
- privateboolean
false
Whether the account is private.
- regionstring
US
Populated whenever the provider has data for the entity.
- secUidstringcan require
TikTok's sec_uid for the account. Pass it to tiktok.profile_reposts or tiktok.profile_playlists. Null when the serving source does not report it.
- videosinteger
318
- youtubeUrlstringcan require
YouTube channel the account links on TikTok. Null when it links none or the serving source does not report it.
- nextCursorstringcan require
eyJvZmZzZXQiOjIwfQ==
Opaque cursor for the next page of followed accounts, or null when this lane has no more. Pass it back as cursor to continue.
- foundboolean
true
- reason"not_found"
Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
FAQ
About the TikTok Following API
The AnyAPI TikTok Following API returns TikTok following data as normalized JSON from one POST call to /v1/run/tiktok.following. List the accounts a TikTok user follows (handle, display name, follower count, bio) by username. AnyAPI routes each request across 3 sources and falls back automatically when one fails. It costs from $0.80 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 99.9% of TikTok following calls through AnyAPI succeeded, with a median response time of 2.1 seconds across 3,097 measured calls.