TikTok profile API
One record describes a single TikTok account. To get these records, set mode to profile, which reads usernames and profileUrls.
- Record type
profile- Fields
- 23
- From
- $3.30 per 1,000 records
- Billed as
profile
Example request and record
The request below is the one this record answers, taken from a real run. The names, usernames, photos and contact details of people in it are fictional.
{ "source": "tiktok", "type": "profile", "username": "example_user_1", "userId": "9000000000000000001", "secUid": "MS4wLjABAAAAexample20000000000000000000000000000000000000000000000000… "url": "https://www.tiktok.com/@example_user_1", "nickname": "Jordan Example", "isVerified": true, "isPrivate": false, "signature": "Checkout My New Book!👇", "bioLink": "http://themostdangerousgames.com", "region": null, "language": "en", "followerCount": 141373579, "followingCount": 355, "heartCount": 1481174049, "videoCount": 475, "friendCount": 286, "diggCount": 0, "avatar": "https://example.com/avatars/1.jpg", "isCommerceUser": false, "isSeller": false, "nicknameModifiedAt": "2022-04-29T19:56:02.000Z", "openFavorite": false, "createdAt": "2018-10-20T19:26:16.000Z", "storyStatus": 0, "id": "example_user_1", "event": "profile", "collectedAt": "2026-09-20T19:44:46.754Z"}Each field name links to its row in the field table. Long values are shortened.
| Field | Type | What it holds |
|---|---|---|
createdAt | string | ISO 8601 timestamp the account was created, or null. |
username | string | Account's unique TikTok handle. |
userId | string | TikTok's internal numeric id for the account, or null. |
secUid | string | TikTok's internal secondary id for the account, or null. |
nickname | string | Account's display name, or null. |
isVerified | boolean | Whether the account has TikTok's verified badge. |
isPrivate | boolean | Whether the account is set to private. |
signature | string | Account's bio text, or null. |
bioLink | string | URL shown in the account's bio, or null. |
region | null | Two-letter region code TikTok assigns to the account, or null. |
language | string | Language code TikTok assigns to the account, or null. |
followerCount | integer | Exact number of followers. |
followingCount | integer | Exact number of accounts followed. |
heartCount | integer | Exact total likes received across all the account's videos. |
videoCount | integer | Exact number of public videos posted. |
friendCount | integer | Exact number of mutual follows (accounts that follow each other). |
diggCount | integer | Exact number of videos the account has liked. |
avatar | string | URL of the account's avatar image, largest size available. |
isCommerceUser | boolean | Whether the account is registered as a TikTok Shop or business account. |
isSeller | boolean | Whether the account is registered as a TikTok Shop seller. |
nicknameModifiedAt | string | ISO 8601 timestamp the account last changed its display name, or null. |
openFavorite | boolean | Whether the account's favorites tab is public. |
storyStatus | integer | Raw numeric story-status code TikTok reports for the account, or null. |
Fields
Every field of profile records, read from real TikTok records. Where a field does not apply to an item it is null or an empty list, not left out. Each record starts with the envelope: source, type, event, id, url, collectedAt.
| Field | Type | What it holds | Present on |
|---|---|---|---|
createdAt | string | ISO 8601 timestamp the account was created, or null. | All |
username | string | Account's unique TikTok handle. | All |
userId | string | TikTok's internal numeric id for the account, or null. | All |
secUid | string | TikTok's internal secondary id for the account, or null. | All |
nickname | string | Account's display name, or null. | All |
isVerified | boolean | Whether the account has TikTok's verified badge. | All |
isPrivate | boolean | Whether the account is set to private. | All |
signature | string | Account's bio text, or null. | All |
bioLink | string | URL shown in the account's bio, or null. | All |
region | null | Two-letter region code TikTok assigns to the account, or null. | All |
language | string | Language code TikTok assigns to the account, or null. | All |
followerCount | integer | Exact number of followers. | All |
followingCount | integer | Exact number of accounts followed. | All |
heartCount | integer | Exact total likes received across all the account's videos. | All |
videoCount | integer | Exact number of public videos posted. | All |
friendCount | integer | Exact number of mutual follows (accounts that follow each other). | All |
diggCount | integer | Exact number of videos the account has liked. | All |
avatar | string | URL of the account's avatar image, largest size available. | All |
isCommerceUser | boolean | Whether the account is registered as a TikTok Shop or business account. | All |
isSeller | boolean | Whether the account is registered as a TikTok Shop seller. | All |
nicknameModifiedAt | string | ISO 8601 timestamp the account last changed its display name, or null. | All |
openFavorite | boolean | Whether the account's favorites tab is public. | All |
storyStatus | integer | Raw numeric story-status code TikTok reports for the account, or null. | All |
Options
These inputs and switches change what comes back. Every request also takes maxItems and maxItemsPerInput.
| Option | Type | Default | What it does |
|---|---|---|---|
usernames | array | none | TikTok usernames or profile URLs, e.g. @example_user, https://www.tiktok.com/@tiktok. |
profileUrls | array | none | Full TikTok profile URLs (alternative to usernames). |
TikTok profiles pricing
You pay once for each record you receive, at the price of the event it carries. A request that returns nothing costs nothing.
| Event | Per 1,000 records | Per record |
|---|---|---|
profile | $3.30 | $0.00330 |
Edge cases
- A profile page that answers 404 or 410 comes back as a
not_foundrecord, billed asprofile. - A private account still comes back as a record, with
isPrivate: true. - A page that shows no profile data returns no record and costs nothing.