TikTok Mention Scraper: Verified @Tags by Account ID
Pricing
from $2.00 / 1,000 mentions
TikTok Mention Scraper: Verified @Tags by Account ID
Find every TikTok video that tags an account. Each mention is confirmed against that account's real TikTok ID, not a caption text match, so lookalikes like @nikeshoes and renamed handles stay out of your results. You pay only for confirmed mentions. No login, no cookies.
Pricing
from $2.00 / 1,000 mentions
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
27 minutes ago
Last modified
Categories
Share
TikTok Mention Scraper

Find every TikTok video that tags a given account, and know that it really tagged them.
Give it a handle. It resolves that handle to the account's own TikTok ID, then confirms each result against TikTok's structured caption data. Lookalike handles, renamed accounts and plain text coincidences do not get through.
Why Use This Scraper?
Mention tracking is easy to do badly, because the obvious approach — search for "@brand" and keep whatever comes back — is wrong in ways you cannot see from the output.
- The visible @handle is not an identity. On a real post we captured, the caption read
@@funnypets1while the account actually linked in TikTok's data was ID7616541516102747150— but that handle resolves today to a different account,6792680128733971461. Handles get renamed and recycled. Text matching silently mixes the two. - Substring matching over-collects. A naive search for
@nikealso returns@nikeshoes,@nike.officialand anything else that starts the same way. - TikTok's mention entities carry no username. They give you
user_idandsec_uidonly, so any scraper that reports "who was mentioned" from the caption text is guessing.
This Actor resolves your handle to its sec_uid and user_id once, then counts a post as a mention only when TikTok's own caption entity carries those exact IDs. Every row tells you which check passed, in a matchType field.
You are only charged for confirmed mentions. Guesses are not billable results.
Overview
One row per post that mentions your account, with engagement, author details and the match type. Accounts with no mentions return a single explanatory row rather than an empty dataset. No login, no cookies.
Supported Inputs
| Input | Example |
|---|---|
| Bare handle | nike |
| With the @ | @nike |
| Profile URL | https://www.tiktok.com/@nike |
Several accounts can be tracked in one run.
Use Cases
- Brand monitoring — every video tagging your brand, without lookalike noise
- Influencer verification — confirm a creator actually tagged you before paying out
- Campaign tracking — count genuine tags across a launch window
- Competitor watching — see who is tagging a rival account
- UGC sourcing — find real customer posts that credited you
- Partnership audits — check contractual tagging was honoured
How It Works

- Each handle is normalized and resolved to its account IDs (
uid,sec_uid), one lookup per handle. - TikTok search is walked page by page for that handle.
- For each result, the caption's structured entities are checked for a
type: 5mention carrying the exact resolved IDs. - Confirmed matches are written as
verified_account. Caption-text-only hits are excluded by default, or included ascaption_textif you ask for them. - Results are deduplicated by post ID across pages.
Input Configuration
| Field | Type | Default | Description |
|---|---|---|---|
handles | array | — | Required. Usernames or profile URLs to find mentions of. |
maxResultsPerHandle | integer | 100 | Stop after this many mentions per account. |
onlyVerifiedMentions | boolean | true | Only return ID-confirmed mentions. Off also returns caption-text hits, labelled. |
includeAuthorStats | boolean | true | Add follower/following counts for the posting account. |
Minimal input
{"handles": ["@nike"]}
Wider brand monitoring
{"handles": ["@nike", "@adidas"],"maxResultsPerHandle": 500,"onlyVerifiedMentions": false}
Output Overview
One row per mention. matchType records how the match was established, so verified tags and text coincidences are never silently mixed.
Output Samples
A confirmed mention
{"mentionedHandle": "nike","mentionedUserId": "6569595380449902597","matchType": "verified_account","captionAlsoMatches": true,"postId": "7624849269362625806","postUrl": "https://www.tiktok.com/@runnerdaily/video/7624849269362625806","caption": "new pair from @nike 🔥 #running","createdAt": "2026-07-11T14:02:19.000Z","durationSeconds": 27,"playCount": 14439226,"likeCount": 3304612,"commentCount": 11114,"shareCount": 869705,"saveCount": 248872,"authorId": "7644302491875001351","authorUsername": "runnerdaily","authorNickname": "Runner Daily","authorVerified": false,"authorFollowerCount": 63795,"authorFollowingCount": 412,"musicId": "7132920769062897666","musicTitle": "cats in the cold","scrapedAt": "2026-08-18T09:40:11.402Z"}
No mentions found
{"handle": "@someaccount","error": "no_mentions_found","message": "No verified mentions of @someaccount found in 96 search result(s)."}
Key Output Fields
| Field | Description |
|---|---|
matchType | verified_account (TikTok's data links that exact account) or caption_text (handle appears in the caption, unconfirmed). |
captionAlsoMatches | Whether the caption text also contains the handle — corroboration, not proof. |
mentionedUserId | The resolved account ID the match was checked against. |
postUrl / postId | The post doing the mentioning. |
authorUsername / authorFollowerCount | Who posted it, and their reach. |
playCount, likeCount, commentCount, shareCount, saveCount | Engagement on the mentioning post. |
error / message | Present only on rows for handles that returned nothing. |
About result depth
TikTok's search is shallow. It commonly returns 18 to 20 results for a query and then reports nothing further, which for a mention hunt means finding tagged posts largely by luck.
This Actor continues on a second source when the first runs dry, scanning several times deeper. On @nike that is the difference between 0 mentions and 10, because the tags exist past the point TikTok's search stops.
The deeper source is reached only when the primary has genuinely run out and you asked for more than it found, so a small run never pays for it. Posts are deduplicated by ID across both sources, and maxSearchPages caps how far the walk goes.
FAQ
How is this different from searching "@brand" myself?
Search returns anything textually similar. This confirms each hit against the account's own TikTok ID, so @nikeshoes and renamed handles do not count as @nike.
What does caption_text mean?
The caption contains your handle, but no structured entity confirms the account was tagged. Often it is a genuine mention typed as plain text — but it can also be a different account that once used that name. Off by default.
Will it find mentions in comments? No — captions only. Comments are a separate dataset.
Does it need a login or cookies? No.
Why did I get a row saying no mentions were found? So a run never returns an empty dataset with no explanation. It tells you how many results were scanned.
How many mentions should I expect to find? It varies by handle, because TikTok has no "who tagged me" index. Mentions have to be discovered through search, and search matches the handle as an ordinary word, so a distinctive handle yields far more per page than one that is also a common word.
The Actor works around this by continuing on a second, deeper source when TikTok's own search runs dry, which it does after roughly 18 to 20 results. Measured 2026-08-19:
| Handle | Primary source alone | With the deeper source |
|---|---|---|
@nike | 0 mentions in 18 results | 10 mentions from 133 scanned |
@sephora | 5 mentions in 19 results | 30 mentions from 87 scanned |
@gymshark | 12 mentions in 15 results | 40 mentions from 50 scanned |
@sephora and @gymshark stopped at the limit that was set, not because they ran out.
A common word like nike still yields less per page than a distinctive one like gymshark, since search buries real tags under keyword matches. The depth is what makes a low-yield handle workable rather than empty. maxSearchPages bounds how hard the Actor looks, and you are never billed for the non-mentions it discards.
What does it cost? Pay per result: one charge per mention returned, plus a small per-run start fee. Unconfirmed guesses are excluded by default, so you are not paying for rows you would have thrown away. No subscription.
Support
Found a bug or need a field added? Open an issue on the Actor's Issues tab in Apify Console, or email muhamed.didovic@gmail.com.
Additional Services
Need a custom TikTok or social-media scraper, enrichment pipeline, or a private version of this Actor? Custom builds available — reach out at muhamed.didovic@gmail.com.
Explore More Scrapers
- TikTok Video Downloader — watermark-free MP4, cover and audio on stable links
- TikTok Post Scraper — full metadata and engagement for any post
- TikTok Comments Scraper — every comment on any video, with commenter profiles
- TikTok Profile Scraper — profile details and stats for any account
- TikTok Search Scraper — TikTok's ranked search results for any keyword
Browse the full portfolio: muhamed-didovic.github.io
🤖 For AI Agents & LLM Apps
Purpose: Return public TikTok posts that tag a given account, with each match confirmed against that account's TikTok ID rather than caption text.
Minimal tested input:
{ "handles": ["@tiktok"] }
Output: array of flat objects, one per mention. Core fields: mentionedHandle, mentionedUserId, matchType, captionAlsoMatches, postId, postUrl, caption, createdAt, durationSeconds, playCount, likeCount, commentCount, shareCount, saveCount, authorId, authorUsername, authorNickname, authorVerified, musicId, musicTitle, scrapedAt. With includeAuthorStats: authorFollowerCount, authorFollowingCount.
Critical for agents: branch on matchType. Only verified_account proves the account was tagged — caption_text means the handle appeared in the caption with nothing linking it, and a caption's visible handle can point at a different account than the one it resolves to today. Do not infer the mentioned account from caption.
Behavior & billing: Pay-per-event — one charge per mention returned. Unconfirmed matches are excluded unless onlyVerifiedMentions is false. Unknown handles and handles with no mentions yield one error item each (error, message) instead of failing the run. No login or cookies required.
⚠️ Disclaimer
This Actor accesses publicly available data on TikTok for legitimate research, brand-monitoring, and business-analysis purposes. It does not log in, bypass authentication, or access private content. Use of this Actor must comply with TikTok's Terms of Service and all applicable laws, including data-protection regulations (GDPR, CCPA, etc.). The authors are not responsible for any misuse. Users must:
- Respect rate limits and avoid overloading TikTok's infrastructure
- Not use scraped data to violate user privacy or platform terms
- Process any personal data only with a lawful basis and in compliance with their jurisdiction
- Not republish scraped content in violation of copyright
We do not store scraped data; the Actor returns it directly to your Apify dataset for your authorized use. TikTok is a trademark of ByteDance Ltd.; this Actor is not affiliated with or endorsed by TikTok or ByteDance.
SEO Keywords
tiktok mention scraper, tiktok brand mentions, track tiktok mentions, tiktok tag scraper, who mentioned me on tiktok, tiktok brand monitoring, tiktok social listening, tiktok influencer verification, tiktok ugc finder, tiktok campaign tracking, find tiktok posts mentioning, tiktok @mention api, tiktok mention monitoring, tiktok competitor mentions, tiktok tagged videos, tiktok brand tracking tool, tiktok mention export, apify tiktok mention scraper