TikTok Profile Mention Scraper avatar

TikTok Profile Mention Scraper

Pricing

from $9.15 / 1,000 mention videos

Go to Apify Store
TikTok Profile Mention Scraper

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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

48

Total users

19

Monthly active users

4 days ago

Last modified

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:

📦 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

  1. Add one or more TikTok handles, @handles, profile URLs, or pasted values in TikTok profiles.
  2. Choose Strict account-confirmed matching or Broader caption and search matching.
  3. For a shorter first run, keep Videos per profile at 25.
  4. 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.
  5. Start the Actor and open the dataset.
  6. 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

FieldTypeWhat it does
targetsarray of stringsRequired. Enter TikTok handles, @handles, profile URLs, or a pasted list of values. Up to 500 values are accepted.
matchScopestringChoose strict for account-confirmed matches or broad for caption and search matches. Each saved row keeps its match basis.
resultsPerTargetintegerOptional 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.
maxResultsintegerOptional 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

FieldTypeWhat it does
resultsstringOpens the dataset of public TikTok videos found for the requested profiles.

Dataset row fields

FieldTypeWhat it does
targetHandlestringNormalized TikTok handle used for this search.
matchTypestringHow the video matched the target: explicit_mention, caption_text, or search_result.
matchEvidencestringText or search value that supports the match.
videoIdstringStable TikTok video ID for joins and checks.
videoUrlstringPublic TikTok page for the matching video.
captionnullable stringCaption shown with the public video, when available.
createdAtnullable stringTime when the video was published, when TikTok provides it.
playCountnullable integerVisible number of video plays, when TikTok provides it.
likeCountnullable integerVisible number of video likes, when TikTok provides it.
commentCountnullable integerVisible number of video comments, when TikTok provides it.
shareCountnullable integerVisible number of video shares, when TikTok provides it.
saveCountnullable integerVisible number of video saves, when TikTok provides it.
authornullable objectPublic details for the account that posted the video, when available.
author.idnullable stringStable TikTok author ID for joining public records.
author.handlenullable stringTikTok handle of the account that posted the video.
author.displayNamenullable stringDisplay name shown on the author profile.
author.verifiednullable booleanWhether TikTok marks the author account as verified.
author.bionullable stringBio text shown on the author profile.
author.avatarUrlnullable stringPublic URL for the author's profile image, when available.
author.profileUrlnullable stringPublic TikTok profile page for the author, when available.
author.followerCountnullable integerVisible number of author followers, when available.
author.followingCountnullable integerVisible number of accounts followed by the author, when available.
author.heartCountnullable integerVisible total likes on the author's videos, when available.
author.videoCountnullable integerVisible number of videos posted by the author, when available.
musicnullable objectPublic sound or music details linked to the video, when available.
music.idnullable stringStable TikTok music ID for joining sound records.
music.titlenullable stringTitle shown for the sound or music.
music.authorNamenullable stringName shown for the sound or music author.
music.originalnullable booleanWhether TikTok marks the sound as an original sound.
music.durationSecondsnullable numberLength of the sound in seconds, when available.
music.playUrlnullable stringDirect public URL for the sound, when available.
music.coverUrlnullable stringPublic URL for the music cover image, when available.
videonullable objectPublic media details for the video, when available.
video.widthnullable integerVideo width in pixels, when available.
video.heightnullable integerVideo height in pixels, when available.
video.durationSecondsnullable numberLength of the video in seconds, when available.
video.coverUrlnullable stringPublic URL for the video cover image, when available.
video.definitionnullable stringVideo quality label shown by TikTok, when available.
video.formatnullable stringVideo file format shown by TikTok, when available.
video.mediaUrlnullable stringDirect public URL for the video media, when TikTok provides one.
mentionsarray of stringsTikTok handles found in the caption or mention data.
hashtagsarray of stringsHashtags found in the caption or tag data.
isAdnullable booleanWhether TikTok marks the post as an advertisement.
resultPositionintegerPosition of the video in the collected search results for this target.
searchUrlstringPublic 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 null when TikTok does not provide author, music, or video details.
  • Remove targetProfileUrl and collectedAt from dataset rows.

v2.0 (07-09-2026)

  • Add strict account-confirmed matching and an optional broader caption and search mode.
  • Remove the legacy matchedTarget and rawSourceIds fields 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 🫡

Made with ❤️ by Maxime Dupré