TikTok Profile Mention Scraper
Pricing
from $9.15 / 1,000 mention videos
TikTok Profile Mention Scraper
Find public TikTok videos for submitted profiles and label how each result matched. Export captions, match evidence, engagement counts, author and music details, plus media and source links when available.
Pricing
from $9.15 / 1,000 mention videos
Rating
5.0
(1)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
48
Total users
19
Monthly active users
4 days ago
Last modified
Categories
Share
🔎 Find TikTok videos for your profiles
For brands, creators, agencies, and social media teams, TikTok Profile Mention Scraper finds public videos for the profiles you submit. Each dataset row includes the target handle, match evidence, caption, engagement counts, author and music details, and public video and source links when TikTok provides them. This gives you a clear list to review and share.
Use it to:
- Send matching posts to a sheet with TikTok Mention Videos to Spreadsheets.
- Review creator and campaign tags with TikTok Campaign Shoutouts.
- Build a caption and engagement table with TikTok Social Listening Dataset.
- Collect public posts for TikTok User-Generated Content.
- Track brand profile mentions with TikTok Brand Mentions.
📦 TikTok profile match data
Each saved row represents one eligible public TikTok video returned for one requested profile. The row records the target, match type and evidence, the video, counts, author, music, media, caption entities, and source details. Some values can be null, and arrays can be empty, when TikTok does not expose them.
🚀 Search public TikTok profile matches
- Add one or more TikTok handles,
@handles, profile URLs, or pasted values in TikTok profiles. - Choose Strict account-confirmed matching or Broader caption and search matching.
- For a shorter first run, keep Videos per profile at
25. - Set Total video limit if you want a cap across the run. Leave either limit empty to return all available results until the source is exhausted.
- Start the Actor and open the dataset.
- Export the rows or connect the dataset to your workflow with the Apify API, schedules, webhooks, or integrations.
Rows label the match with matchType and keep the supporting matchEvidence. The match type can be explicit_mention, caption_text, or search_result.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
targets | array of strings | Required. Enter TikTok handles, @handles, profile URLs, or a pasted list of values. Up to 500 values are accepted. |
matchScope | string | Choose strict for account-confirmed matches or broad for caption and search matches. Each saved row keeps its match basis. |
resultsPerTarget | integer | Optional cap on matching public videos saved for each profile. The default is 25. Leave it empty to return all available results until the source is exhausted. |
maxResults | integer | Optional cap on videos saved across the run. The default is 100. Leave it empty to return all available results until the source is exhausted. |
Default input
This is the public input from a successful current-beta default-input run:
{"targets": ["tiktok","nike","netflix","duolingo"],"matchScope": "strict","resultsPerTarget": 25,"maxResults": 100}
🧾 Output
The Output panel provides a link to the default dataset. Each dataset row uses the same shape, with null values or empty arrays when TikTok does not expose a field.
Output link
| Field | Type | What it does |
|---|---|---|
results | string | Opens the dataset of public TikTok videos found for the requested profiles. |
Dataset row fields
| Field | Type | What it does |
|---|---|---|
targetHandle | string | Normalized TikTok handle used for this search. |
matchType | string | How the video matched the target: explicit_mention, caption_text, or search_result. |
matchEvidence | string | Text or search value that supports the match. |
videoId | string | Stable TikTok video ID for joins and checks. |
videoUrl | string | Public TikTok page for the matching video. |
caption | nullable string | Caption shown with the public video, when available. |
createdAt | nullable string | Time when the video was published, when TikTok provides it. |
playCount | nullable integer | Visible number of video plays, when TikTok provides it. |
likeCount | nullable integer | Visible number of video likes, when TikTok provides it. |
commentCount | nullable integer | Visible number of video comments, when TikTok provides it. |
shareCount | nullable integer | Visible number of video shares, when TikTok provides it. |
saveCount | nullable integer | Visible number of video saves, when TikTok provides it. |
author | nullable object | Public details for the account that posted the video, when available. |
author.id | nullable string | Stable TikTok author ID for joining public records. |
author.handle | nullable string | TikTok handle of the account that posted the video. |
author.displayName | nullable string | Display name shown on the author profile. |
author.verified | nullable boolean | Whether TikTok marks the author account as verified. |
author.bio | nullable string | Bio text shown on the author profile. |
author.avatarUrl | nullable string | Public URL for the author's profile image, when available. |
author.profileUrl | nullable string | Public TikTok profile page for the author, when available. |
author.followerCount | nullable integer | Visible number of author followers, when available. |
author.followingCount | nullable integer | Visible number of accounts followed by the author, when available. |
author.heartCount | nullable integer | Visible total likes on the author's videos, when available. |
author.videoCount | nullable integer | Visible number of videos posted by the author, when available. |
music | nullable object | Public sound or music details linked to the video, when available. |
music.id | nullable string | Stable TikTok music ID for joining sound records. |
music.title | nullable string | Title shown for the sound or music. |
music.authorName | nullable string | Name shown for the sound or music author. |
music.original | nullable boolean | Whether TikTok marks the sound as an original sound. |
music.durationSeconds | nullable number | Length of the sound in seconds, when available. |
music.playUrl | nullable string | Direct public URL for the sound, when available. |
music.coverUrl | nullable string | Public URL for the music cover image, when available. |
video | nullable object | Public media details for the video, when available. |
video.width | nullable integer | Video width in pixels, when available. |
video.height | nullable integer | Video height in pixels, when available. |
video.durationSeconds | nullable number | Length of the video in seconds, when available. |
video.coverUrl | nullable string | Public URL for the video cover image, when available. |
video.definition | nullable string | Video quality label shown by TikTok, when available. |
video.format | nullable string | Video file format shown by TikTok, when available. |
video.mediaUrl | nullable string | Direct public URL for the video media, when TikTok provides one. |
mentions | array of strings | TikTok handles found in the caption or mention data. |
hashtags | array of strings | Hashtags found in the caption or tag data. |
isAd | nullable boolean | Whether TikTok marks the post as an advertisement. |
resultPosition | integer | Position of the video in the collected search results for this target. |
searchUrl | string | Public TikTok search page used for this target. |
Example row from the current beta run
This genuine row came from a successful run of the current beta build. The source values are shown as returned.
{"targetHandle": "nike","matchType": "explicit_mention","matchEvidence": "@nike","videoId": "7682417729567034646","videoUrl": "https://www.tiktok.com/@h0ls.aesthetic/video/7682417729567034646","caption": "Which is you favourite #nike #nikepro #nikeproshorts #nikeproleggings @Nike ","createdAt": "2026-09-06T13:44:33.000Z","playCount": 2972,"likeCount": 108,"commentCount": 7,"shareCount": 16,"saveCount": 19,"author": {"id": "7317230177259308064","handle": "h0ls.aesthetic","displayName": "🪸🦜🌊M3G🥥☀️🌺","verified": false,"bio": "💗🌸Goal for 2026🌸💗\n🧴🌺2300followers 🌺🧴\n🎀🌊65k likes 🌊🎀","avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/e7802aa751e00a77688f70780645dbfd~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=3c5e2894&x-expires=1788994800&x-signature=SRJ837O3VX5p4PHR%2BXXWY2d9dXI%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5","profileUrl": "https://www.tiktok.com/@h0ls.aesthetic","followerCount": 2268,"followingCount": 1113,"heartCount": 54600,"videoCount": 355},"music": {"id": "7667643320251861773","title": "original sound","authorName": "Ocho","original": true,"durationSeconds": 26,"playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/tos-useast5-v-27dcd7-tx/oUqBEoqUCDEtwgAAj8LBfFPfDDSj7E3PJPatJA/?a=1988&bti=ODszNWYuMDE6&&bt=125&ft=GcAInInz7ThLar~GXq8Zmo&mime_type=audio_mpeg&rc=amRxd3k5cnhpPDMzZzU8NEBpamRxd3k5cnhpPDMzZzU8NEBlLnE0MmRzLmhhLS1kMS9zYSNlLnE0MmRzLmhhLS1kMS9zcw%3D%3D&expire=1788847049&l=2026090723570210EF35E2ACDC2D6B9287&ply_type=3&policy=3&signature=65844d0730d1753ed8d7881c062b7e33&tk=0&btag=e00078000","coverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/9711bff84a041735cb3b61f630ef1d1a~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=cf75aec3&x-expires=1788994800&x-signature=XKv8ydBrjWMHAhfUaHL%2B0K8WIZk%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5"},"video": {"width": 576,"height": 1024,"durationSeconds": 7,"coverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-no1a-p-0037-no/oUII6eLOmIG7rQEAwEjAefINVdQCjt3LILktbD~tplv-tiktokx-origin.image?dr=9636&x-expires=1788994800&x-signature=J1dhJUsIg90CQh%2BiZ7RgOLR5eDw%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast5","definition": "540p","format": "mp4","mediaUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/no1a/tos-no1a-ve-0068-no/ocKF4kDqFBTVnbdqERACAB9EGo7IEkQfgqWf7E/?a=1988&bti=ODszNWYuMDE6&&bt=1118&ft=aEeq8qT0mIoPD12zq7KI3wUEu4AbMeF~O5&mime_type=video_mp4&rc=M2Q7OWUzZDxkOjo2N2c2N0BpM21pcW45cjhwZDMzbzczNUBgNDEvXzUxNWAxXzNgMWE2YSMubnMuMmRjcGJhLS1kMTFzcw%3D%3D&expire=1788998230&l=2026090723570210EF35E2ACDC2D6B9287&ply_type=2&policy=2&signature=f40c9b2f4013da3eb72acaa7cea196b2&tk=tt_chain_token&btag=e000b0000"},"mentions": ["nike","Nike"],"hashtags": ["nike","nikepro","nikeproshorts","nikeproleggings"],"isAd": false,"resultPosition": 2,"searchUrl": "https://www.tiktok.com/search/video?q=nike"}
💳 Pricing
How charges work
This Actor uses pay-per-event pricing. You are charged for each matching video saved to the dataset. The event is for a saved video, not for an input target by itself.
Use Videos per profile and Total video limit to keep a run smaller when you need fewer rows to review.
🔌 Integrations
Use it with
- Export the dataset as JSON, CSV, Excel, XML, RSS, or HTML.
- Call the Actor through the Apify API from an app or script.
- Schedule runs to check the same profiles over time.
- Send finished datasets to webhooks, databases, dashboards, spreadsheets, or AI review tools.
❓ FAQ
What does matchType tell me?
It tells you how the video matched the target. The values are explicit_mention, caption_text, and search_result. Use matchEvidence to see the text or search value that supports the match.
What happens when the same video appears more than once?
The first eligible occurrence is saved. If the same source video appears later through another submitted value or search, that later match is ignored. The saved row keeps the first match evidence.
What if I leave a video limit empty?
The Actor returns all available results until the source is exhausted. Set resultsPerTarget or maxResults when you want fewer rows.
What happens if TikTok search becomes unstable during a run?
If recovery is exhausted before a profile search is complete, the run reports an incomplete or failed outcome instead of ordinary success. Rows saved before the interruption stay in the dataset, and charges apply only to saved videos.
Can I use a handle and a profile URL?
Yes. You can enter nike, @nike, or https://www.tiktok.com/@nike. These values identify the same requested profile target.
Does this scrape comments that mention a profile?
No. It finds public videos returned by TikTok video search. It does not collect video comments or replies.
Does this return every historical mention of a TikTok profile?
No. Results reflect what public TikTok video search exposes during the run. TikTok may return different results by region, time, or source availability.
Do I need a TikTok account or API key?
No. This Actor uses public TikTok data and does not ask for a TikTok login, cookies, or a TikTok API key.
What if I already have TikTok video URLs?
Use TikTok Video Downloader for direct media links, or TikTok Transcript Scraper when you need public captions and transcripts from known videos.
📝 Changelog
v3.0 (08-09-2026)
- Report incomplete TikTok searches as failed runs while keeping saved rows and their charges.
- Return
nullwhen TikTok does not provide author, music, or video details. - Remove
targetProfileUrlandcollectedAtfrom dataset rows.
v2.0 (07-09-2026)
- Add strict account-confirmed matching and an optional broader caption and search mode.
- Remove the legacy
matchedTargetandrawSourceIdsfields from dataset rows. - Improve result collection when TikTok returns incomplete pages or slow responses.
v1.0
- Return structured match evidence, creator, music, media, and source details for each matching video.
- Accept profile handles, profile URLs, and pasted target lists with optional result limits.
v0.1
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- TikTok Search Scraper - Search public TikTok videos or creator profiles by keyword.
- TikTok Creator Analytics Scraper - Compare public creator profiles and recent post metrics.
- TikTok Video Downloader - Refresh direct media links when you already know video URLs.
- TikTok Transcript Scraper - Extract public captions and transcript text from known video URLs.
- TikTok Hashtag Search Scraper - Find public hashtag ideas and metrics from keywords or tag URLs.
Made with ❤️ by Maxime Dupré