TikTok Profile Mention Scraper
Pricing
from $18.55 / 1,000 mention posts
TikTok Profile Mention Scraper
Find public TikTok videos and photo posts that tag or mention the profiles you enter. Each row shows how the post mentions the profile, plus the caption, views, likes, author, sound, tagged place, and a saved video file when available.
Pricing
from $18.55 / 1,000 mention posts
Rating
5.0
(1)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
77
Total users
12
Monthly active users
10 days ago
Last modified
Categories
Features
Share
🔎 See who tags your TikTok profiles
For brands, creators, agencies, and social media teams, TikTok Profile Mention Scraper finds public TikTok videos and photo posts by other accounts that mention the profiles you enter. Each dataset row shows how the post mentions the profile, plus the caption, views and other counts, author and sound details, the tagged place, and a saved copy of the video file when TikTok provides one. You get one clear list to review and share, without checking each post by hand.
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 mention data
Each saved row is one public TikTok post that mentions one requested profile. The row records the profile handle and TikTok account ID, the match type, the post link and type, the caption and its language, the counts, the author, the sound, media details, the tagged place, the country TikTok records for the post, and where the post appeared in TikTok search. Some values can be null, and arrays can be empty, when TikTok does not show them.
🚀 Find TikTok posts that mention a profile
- Add one or more TikTok handles,
@handles, profile URLs, or a pasted list in TikTok profiles. - Choose Strict: tagged account only or Broad: tagged or caption @handle in Match scope.
- For a shorter first run, keep Videos per profile at
10. - Set Total video limit if you want a cap across the run. Leave a limit empty or at
0to collect all available results until the source is exhausted. - Optionally set Posted on or after or Minimum views to keep only recent or popular posts.
- 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.
The Actor checks each mention against the requested profile's own TikTok account ID, so a lookalike or similar handle does not count. Strict mode saves posts that tag that account. Broad mode also saves posts whose caption types the profile's @handle without a tag. The profile's own posts are left out.
⚙️ 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. You can enter 1 to 500 values. Values that are not a TikTok handle or profile URL are skipped with a warning. |
matchScope | string | strict (default) saves only posts that tag the profile's own TikTok account. broad also saves posts whose caption types the profile's @handle without a tag. |
resultsPerTarget | integer | Optional cap on matching posts saved for each profile. The form starts at 10. Leave it empty or set it to 0 to collect all available results until the source is exhausted. |
maxResults | integer | Optional cap on posts saved across the whole run. The form starts at 10. Leave it empty or set it to 0 to collect all available results until the source is exhausted. |
postedAfter | string | Optional. Keeps only posts published on or after this date. Use a date such as 2026-01-31 or a period such as 7 days. Dates use UTC. Leave it empty to keep posts from any date. |
minViews | integer | Optional. Keeps only posts with at least this many views. Leave it empty or set it to 0 to keep posts with any view count. |
These 10 limits are form prefills, not schema defaults. If you call the Actor through the API and leave them out, the run has no limit.
Default input
This is the public input from a successful current-beta default-input run:
{"targets": ["nike"],"matchScope": "strict","resultsPerTarget": 10,"maxResults": 10}
🧾 Output
Output fields
Video posts and photo posts share one row shape. A photo post has video set to null.
| Field | Type | What it does |
|---|---|---|
targetHandle | string | Normalized TikTok handle of the requested profile. |
targetAccountId | string | TikTok account ID of the requested profile. Use it to confirm the account and join records. |
matchType | string | How the post mentions the profile: explicit_mention (tag of the account), caption_text (the @handle typed in the caption, broad mode only), or explicit_mention_and_caption_text (both). |
videoId | string | Stable TikTok post ID for joins and checks. |
videoUrl | string | Public TikTok page for the post. |
postType | string | video or photo for a photo slideshow. |
caption | nullable string | Caption shown with the post. |
captionLanguage | nullable string | Language code TikTok records for the caption, such as en or fr. un means TikTok could not tell. |
createdAt | nullable string | Time when the post was published. |
playCount | nullable integer | Visible number of views. |
likeCount | nullable integer | Visible number of likes. |
commentCount | nullable integer | Visible number of comments. |
shareCount | nullable integer | Visible number of shares. |
saveCount | nullable integer | Visible number of saves. |
author | nullable object | Public details for the account that published the post. |
author.id | nullable string | Stable TikTok author ID. |
author.handle | nullable string | TikTok handle of the author. |
author.displayName | nullable string | Display name shown on the author profile. |
author.verified | nullable boolean | Whether TikTok marks the author 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. |
author.followerCount | nullable integer | Visible number of author followers. |
author.followingCount | nullable integer | Visible number of accounts the author follows. |
author.heartCount | nullable integer | Visible total likes on the author's posts. |
author.videoCount | nullable integer | Visible number of videos posted by the author. |
music | nullable object | Sound or music used in the post. |
music.id | nullable string | Stable TikTok sound ID. |
music.title | nullable string | Title shown for the sound. |
music.authorName | nullable string | Name shown for the sound author. |
music.original | nullable boolean | Whether TikTok marks the sound as an original sound. |
music.durationSeconds | nullable number | Length of the sound in seconds. |
music.playUrl | nullable string | Link to a copy of the sound file saved in the run's key-value store, when TikTok provides the sound. |
music.coverUrl | nullable string | Public URL for the sound cover image. |
video | nullable object | Media details for a video post. null for photo posts and when TikTok gives no media details. |
video.width | nullable integer | Video width in pixels. |
video.height | nullable integer | Video height in pixels. |
video.durationSeconds | nullable number | Length of the video in seconds. |
video.coverUrl | nullable string | Public URL for the video cover image. |
video.definition | nullable string | Video quality label shown by TikTok. |
video.format | nullable string | Video file format shown by TikTok. |
video.mediaUrl | nullable string | Link to a copy of the video file saved in the run's key-value store, 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. |
location | nullable object | TikTok place the creator tagged on the post, when they added one. |
location.id | nullable string | TikTok ID of the tagged place. |
location.name | nullable string | Name of the tagged place. |
location.address | nullable string | Address of the tagged place, when TikTok shows one. |
country | nullable string | Country code TikTok records for the post, such as US. |
searchPosition | integer | Place of the post in the TikTok search results for the profile. 1 is the first result. |
searchUrl | string | TikTok search page where the Actor found the post. |
Example row from the current beta run
This genuine row came from a successful run of the current beta build. The values are shown as returned.
{"targetHandle": "nike","targetAccountId": "208464585232822272","matchType": "explicit_mention","videoId": "7488740959535025430","videoUrl": "https://www.tiktok.com/@infiniteunboxing/video/7488740959535025430","postType": "video","caption": "Nike Initiator Shoes #nike #initiator @Nike ","captionLanguage": "en","createdAt": "2025-04-02T15:39:42.000Z","playCount": 21800,"likeCount": 187,"commentCount": 3,"shareCount": 29,"saveCount": 43,"author": {"id": "6795665300123796485","handle": "infiniteunboxing","displayName": "⋆ I N F I N I T E ⋆","verified": false,"bio": "╔════༻ 👁 ༺════╗ \n I N F I N I T E \n ☠️\n Hell Is Empty,\n All The Devils Are Here","avatarUrl": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-avt-0068c001-no/bb67f25d6e89cbb5a969198ab639f8b6~tplv-tiktokx-cropcenter:100:100.jpeg?dr=10399&refresh_token=fae89462&x-expires=1793829600&x-signature=F4uQL6qEB4BSeMCyyjLWfIZ6ddg%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=no1a","followerCount": 2611,"followingCount": 64,"heartCount": 75500,"videoCount": 873},"music": {"id": "6421738769682008833","title": "Disco Inferno","authorName": "50 Cent","original": false,"durationSeconds": 23,"playUrl": "https://api.apify.com/v2/key-value-stores/5s1JdTbmw7Wqdguwy/records/music-6421738769682008833?signature=4DHhUOjKC8C0A5BSwrfs","coverUrl": "https://p77-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/okABQIAIDTSmqBU4gEfwCEAAUFkYAoBtjxoZeN.jpeg"},"video": {"width": 576,"height": 1024,"durationSeconds": 7,"coverUrl": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/o4eA9Bi1joBAIswYaKAoixtCP8SADzICWcEPNz~tplv-tiktokx-origin.image?dr=10395&x-expires=1793829600&x-signature=QigyRPDRttUSSm2cxMo5z29xFkI%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a","definition": "540p","format": "mp4","mediaUrl": "https://api.apify.com/v2/key-value-stores/5s1JdTbmw7Wqdguwy/records/video-7488740959535025430?signature=etGyESMpCf5v2ddpamvl"},"mentions": ["nike"],"hashtags": ["nike","initiator"],"isAd": false,"location": {"id": "21568226315199470","name": "Amsterdam","address": "Amsterdam, North Holland, Netherlands"},"country": "SE","searchPosition": 84,"searchUrl": "https://www.tiktok.com/search?q=nike"}
💳 Pricing
How charges work
This Actor uses pay-per-event pricing. You pay for each post that mentions a requested profile and is saved to the dataset. Video posts and photo posts cost the same. You are not charged for a profile by itself, for posts that do not match, or for a run that saves no posts.
Use Videos per profile, Total video limit, Posted on or after, and Minimum views 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 a strict no-match warning mean?
It means no account-confirmed mentions were found for that profile in the searched public results. It does not mean that no public posts exist for the profile. An empty dataset is valid, and nothing is charged when no posts are saved. Broad mode also saves posts whose caption types the profile's @handle.
What does matchType tell me?
It tells you how the post mentions the profile. explicit_mention means the post tags the profile's own TikTok account. caption_text means the caption types the @handle without a tag; only broad mode saves these. explicit_mention_and_caption_text means the post does both.
Are the profile's own posts included?
No. Posts published by the requested profile itself are left out, so you only see mentions by other accounts.
What happens when the same post appears more than once?
Each post is saved once per run. If the same post also mentions another profile you entered, the later match is skipped and the saved row keeps the first profile.
What if I leave a video limit empty?
The Actor collects all available results until the source is exhausted. Set resultsPerTarget or maxResults when you want fewer rows.
What happens if TikTok cannot be reached during a run?
The Actor retries with fresh sessions. If a profile still cannot be finished, the log shows a warning for that profile and the run continues with the other profiles. The run fails only when TikTok could not be reached for any profile. Rows saved before that stay in the dataset, and you pay only for saved posts.
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 posts returned by TikTok 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 search shows 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
v4.1 (02-11-2026)
- Add
searchPositionandsearchUrlto each row. They show where the post appeared in TikTok search results for the profile. - Reliability improvements.
v4.0 (02-11-2026)
- Add Posted on or after (
postedAfter) and Minimum views (minViews) filters. You can now also setresultsPerTargetandmaxResultsto0for no limit. - Find photo posts as well as videos. New
postTypefield shows which kind each row is. - Add
targetAccountId,captionLanguage,country, and the tagged place inlocationto each row. video.mediaUrlandmusic.playUrlnow link to copies of the files saved in the run's key-value store.- Broad mode now saves only posts that tag the profile or type its
@handlein the caption. A search result alone no longer counts, so thesearch_resultvalue ofmatchTypeis gone andexplicit_mention_and_caption_textis new. Tags are checked against the profile's own TikTok account ID, and a typed@handlemust match exactly, so lookalike handles do not count. - Remove
matchEvidence,searchUrl, andresultPositionfrom dataset rows, because matches no longer come from search results. UsematchTypeto see how a post mentions the profile.searchUrlandresultPositionhave no replacement. - Remove
author.profileUrlfrom dataset rows. There is no replacement field. - Reliability improvements.
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 Results 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é