Silkline Data / TikTok API / Search profiles by keyword
Real run · 2026-11-09 · 10 recordsTikTok Search profiles by keyword API
Search profiles by keyword from TikTok, returned as JSON rows you can save to CSV.
Resultready
JSON
10records in this run
15fields per record
7srun time, start to finish
$0.003per record, Bronze tier
What it returns
TikTok creator profile search (mode userSearch)
| Field | What it is |
|---|---|
handle |
Public @handle, without @ |
name |
Display name |
userId |
Numeric TikTok ID of the profile |
url |
Link to the profile |
followerCount |
Followers |
followingCount |
Accounts the profile follows |
videoCount |
Videos posted |
totalLikeCount |
Likes all the profile's videos received |
verified |
True for a verified account |
isPrivate |
True for a private account |
secUid |
Secure user ID (secUid) of the profile |
avatarUrl |
Profile picture link (temporary) |
bio |
Profile bio as published; often empty in profile search results |
keyword |
The keyword that found the profile |
type |
Record type: user |
Request
The input that produced this run
Mode userSearch. Parameters as sent, with what each one does.
| Parameter | Value | What it does |
|---|---|---|
mode | "userSearch" | What to get: videos by keyword, hashtag, profile, sound, repost list, playlist, photo search or explore category; profiles by keyword or similar to a profile; sounds or places by keyword; the sounds a profile has made;... |
userKeywords | ["skincare"] | Search keywords; each keyword is a separate profile search. Falls back to "skincare" when empty. |
maxResults | 10 | Maximum items for each keyword, hashtag, profile, sound, video or category (up to 1000). Video details, profile details and analytics return one record per input, so the limit rarely matters there. A search inside... |
Response fields
15 fields in every user
From the first record of the run above. Identity fields of ordinary users are masked on this site.
| Field | Type | Example |
|---|---|---|
type | str | user |
userId | str | <masked> |
handle | str | <masked> |
url | str | <masked> |
name | str | <masked> |
secUid | str | <masked> |
avatarUrl | str | <masked> |
bio | null | null |
followerCount | int | 120021 |
followingCount | int | 121 |
videoCount | int | 1223 |
totalLikeCount | int | 995232 |
verified | bool | false |
isPrivate | bool | false |
keyword | str | skincare |
Sample output
A real run, 15 fields per record
Run on 2026-11-09 with input {"mode": "userSearch", "userKeywords": ["skincare"], "maxResults": 10}. Personal fields of ordinary users are masked here.
| keyword | followerCount | followingCount | videoCount | totalLikeCount |
|---|---|---|---|---|
| skincare | 120021 | 121 | 1223 | 995232 |
| skincare | 96822 | 1 | 305 | 1868737 |
| skincare | 499730 | 1476 | 519 | 7692480 |
| skincare | 628426 | 72 | 644 | 9591331 |
| skincare | 170900 | 444 | 1268 | 1718161 |
| skincare | 162475 | 234 | 11 | 1164471 |
All 15 fields in one record
typeuseruserIdhandleurlnamesecUidavatarUrlbiofollowerCount120021followingCount121videoCount1223totalLikeCount995232verifiedisPrivatekeywordskincare
Limits
Good to know before you run it
- Often-empty fields: in search,
authorBiois empty because search results don't carry it; user-post results include it. InuserSearch,biois usually empty and there is no country code; useuserPostson a handle for the bio.videoUrlmay be empty, anddownloadCountandisAdare filled only when TikTok shows them.
Pricing
What one user costs
Result (result) · $0.003 · For each video or profile-search record returned (search, hashtag, userPosts, userSearch, music, userReposts, userPlaylists, similarUsers, soundSearch, photoSearch, userSounds) and each videoAnalytics record.
Developers
Run this request yourself
The same input as above, three ways.
Request
Response · 200application/json