TikTok Comments Scraper - Replies, Likes & Commenters avatar

TikTok Comments Scraper - Replies, Likes & Commenters

Pricing

from $0.20 / 1,000 comment scrapeds

Go to Apify Store
TikTok Comments Scraper - Replies, Likes & Commenters

TikTok Comments Scraper - Replies, Likes & Commenters

Scrape TikTok comments and replies from video URLs, short links or profiles: text, likes, reply count, date, language, liked-by-creator and pinned flags, mentions, and the commenter's username and IDs. No login, no browser. Pay per comment; failed videos are free.

Pricing

from $0.20 / 1,000 comment scrapeds

Rating

0.0

(0)

Developer

Eimantas V

Eimantas V

Maintained by Community

Actor stats

0

Bookmarked

30

Total users

5

Monthly active users

12 days ago

Last modified

Categories

Features

Limited permissions

Share

TikTok Comments Scraper extracts comments and replies from TikTok videos: the comment text, likes, reply count, date, language, whether the creator liked or pinned it, mentions, hashtags, images, and the commenter's username, name and IDs. Paste video URLs, short links, video IDs or profiles, and get one row per comment. No login, no API key, no browser, from $0.20 per 1,000 comments.

{
"text": "no but seriously, where the hell have you been, loca?!?",
"likeCount": 238445,
"replyCount": 910,
"createdAt": "2022-01-07T21:24:00.000Z",
"authorUsername": "lionsgate",
"authorVerified": true,
"language": "en",
"videoUrl": "https://www.tiktok.com/@billieeilish/video/7050551461734042926",
"videoCommentCount": 196967
}

Measured on Apify: 100 comments from one video in 2.6 seconds; 20,371 comments and replies from 8 videos in under 3 minutes.

What does TikTok Comments Scraper do?

It reads TikTok's public comment lists the way TikTok's own web player does, one page of 50 comments at a time, and turns every comment into a clean row. Turn on replies and each comment's thread follows it, with the parent's ID on every reply, so whole conversations can be rebuilt from one flat table.

  • Every input you have. Video URLs (/video/ and /photo/ posts), vm.tiktok.com and vt.tiktok.com short links, bare video IDs, and profiles (@username or the profile URL) for comments on their latest videos.
  • Comments and replies. Up to the number you choose per video and per comment; replies carry parentCommentId, and a reply to a reply also names the reply it answers.
  • Creator signals. likedByCreator, pinned and isByCreator show which comments the creator engaged with or wrote.
  • Commenter identity. Username, display name, numeric user ID, secUid, profile link, avatar and verified badge on every row.
  • Only pay for results. Videos that are deleted or private, profiles that do not exist, duplicates and comments your date filter leaves out are never charged.
  • Built for automation. Run it on a schedule, call it from the API, or connect it to Make, Zapier, n8n, Google Sheets or an AI agent through Apify's MCP server.

Why it is fast and cheap

There is no browser and no login. Each request is one small JSON call to TikTok's public comment endpoint that returns 50 comments, so 1,000 comments take about 20 requests and a few seconds. That is why the price can sit well below browser-based scrapers. If TikTok rate-limits the run's own address, the request is repeated from an Apify datacenter address at no extra cost to you.

What data can you extract from TikTok comments?

FieldExampleWhat it is
textno but seriously, where the hell have you beenThe comment as written, with emoji
likeCount238445Likes on the comment
replyCount910Replies under it (null on replies)
createdAt2022-01-07T21:24:00.000ZWhen it was posted, ISO 8601 UTC
languageenThe language TikTok detected
authorUsername / authorNicknamelionsgate / LionsgateThe commenter's handle and display name
authorId / authorSecUid106956873395757056The commenter's stable TikTok IDs
authorProfileUrl / authorAvatarUrlhttps://www.tiktok.com/@lionsgateProfile link and picture
authorVerifiedtrueTikTok's verified badge
isReply / parentCommentId / replyToCommentIdtrue / 7050578069283963694Thread structure
position41Rank in TikTok's order of the video's comments
likedByCreator / pinned / isByCreatortrue / false / falseWhat the creator did with it
labels["Liked by creator"]Badges TikTok shows on the comment
mentions / mentionedUserIds / hashtags["@nasa"]Mentions with user IDs, and hashtags
imageUrls["https://p16-comment-sign..."]Images posted in the comment
videoId / videoUrl / videoAuthorUsername / videoCaption7050551461734042926The video the comment is on
videoCommentCount196967All comments TikTok counts on the video
inputhttps://www.tiktok.com/@billieeilish/video/7050551461734042926What you entered, so rows join back to your list

How to scrape TikTok comments

  1. Click Try for free and paste video URLs, short links, video IDs or profiles into Videos or profiles, one per line.
  2. Set Comments per video, and Replies per comment if you want threads. Max comments in total is your cost cap.
  3. Click Start. A video's top 100 comments take about 2 seconds.
  4. Open the Output tab, or download the results as JSON, CSV, Excel or HTML.

How much does it cost to scrape TikTok comments?

You pay per comment or reply returned, and the price drops on higher Apify plans:

Apify planPer 1,000 comments
Free$0.40
Starter$0.30
Scale$0.25
Business$0.20
  • The top 100 comments of 10 videos (1,000 comments) cost $0.30 on Starter.
  • 20 popular videos with every comment TikTok shows (about 360 each) and up to 10 replies per comment came to about 23,000 rows in our tests: about $6.90 on Starter and $4.60 on Business.
  • A run also costs $0.00005 to start. A video or profile that fails costs nothing more.
  • The Free plan's $5 monthly credit covers about 12,500 comments.

Input

{
"targets": [
"https://www.tiktok.com/@billieeilish/video/7050551461734042926",
"https://vm.tiktok.com/ZMhvqjqjq/",
"@nasa"
],
"maxCommentsPerVideo": 100,
"maxRepliesPerComment": 10,
"videosPerProfile": 3,
"maxItems": 5000
}
FieldDefaultNotes
Videos or profiles(example video)Video URLs, short links, video IDs, @username or profile URLs, one per line
Start URLsemptyThe same, in the URL-list shape other Actors output
Max comments in total1,000Comments and replies across the run: your cost cap
Comments per video100Top-level comments per video, top comments first
Replies per comment00 = no replies
Only comments posted afteremptyA date (2026-01-31) or a period ("7 days"); older comments are skipped and not charged
Videos per profile3Latest videos per profile, newest first (at most ~12)
Profile videos posted after / beforeemptyDate range for the videos picked from profiles
ProxyoffNot needed; turn on Apify Proxy only if a run reports BLOCKED

Output

Each comment or reply is one row. The Overview view shows the key columns; Threads shows the reply structure; Commenters lists who commented; every export includes all fields.

{
"recordType": "comment",
"input": "https://www.tiktok.com/@billieeilish/video/7050551461734042926",
"commentId": "7050578069283963694",
"text": "no but seriously, where the hell have you been, loca?!?",
"likeCount": 238445,
"replyCount": 910,
"createdAt": "2022-01-07T21:24:00.000Z",
"authorUsername": "lionsgate",
"authorNickname": "Lionsgate",
"authorId": "106956873395757056",
"authorSecUid": "MS4wLjABAAAAw08PMPDgEvNH0P4Sncmei7N46SQY9ZqUP7kVxFJXoyWNcpC-peauxtjk0dfYQcfd",
"authorProfileUrl": "https://www.tiktok.com/@lionsgate",
"authorAvatarUrl": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/7311142789058674693~tplv-tiktokx-cropcenter:100:100.jpg",
"authorVerified": true,
"isReply": false,
"parentCommentId": null,
"replyToCommentId": null,
"position": 41,
"language": "en",
"likedByCreator": false,
"pinned": false,
"isByCreator": false,
"labels": [],
"mentions": [],
"mentionedUserIds": [],
"hashtags": [],
"imageUrls": [],
"videoId": "7050551461734042926",
"videoUrl": "https://www.tiktok.com/@billieeilish/video/7050551461734042926",
"videoAuthorUsername": "billieeilish",
"videoCaption": "can’t be good at everything",
"videoCommentCount": 196967,
"scrapedAt": "2026-10-29T06:30:56.593Z"
}

A video or profile that cannot be read becomes a row with "recordType": "error" and an errorCode instead of failing the whole run:

errorCodeMeaning
NOT_FOUNDThe video was deleted, is private, has comments turned off, or the link is wrong; or the profile does not exist
NO_VIDEOSThe profile has no public videos, or none in your date range
BLOCKED / RATE_LIMITEDTikTok refused the request; run again later, or enable the proxy

Error rows are never charged.

Tips and limits

  • About 400 comments per video. TikTok shows logged-out visitors roughly the top 330-470 comments of a video, however many it has. The Actor returns all of those, and the log says how many videos had more. Replies are not affected: a popular comment's thread pages normally.
  • Profiles give their latest ~12 videos. A profile's public video list is short; for older videos, paste their URLs.
  • Comment order is TikTok's. Comments come top-first, the way TikTok ranks them, not by date. "Only comments posted after" still reads every page of a video, so use it to keep only fresh comments, not to save time.
  • Need commenter bios, followers or emails? Feed this dataset's authorUsername column into TikTok Creator & Profile Scraper.
  • Hit your spending limit? The run stops cleanly at your maximum cost per run and keeps everything it collected. Raise the limit in the run options to get more.

FAQ

This Actor collects only data that TikTok shows publicly, without logging in. Comments and usernames are personal data, which laws such as the GDPR protect. Scrape personal data only for a legitimate purpose, and ask a lawyer if you are unsure. TikTok is a trademark of its owner; this Actor is not affiliated with or endorsed by TikTok.

Can I use it through the API or with Make, Zapier and n8n?

Yes. Every run can be started through the Apify API and returns the dataset as JSON, CSV or Excel. Schedules, webhooks and integrations for Make, Zapier, n8n and Google Sheets are on the Integrations tab.

Can AI agents use it?

Yes. Agents connected to Apify's MCP server can find and run this Actor as a tool, with the same per-comment pricing.

Why did I get fewer comments than I asked for?

The video has fewer comments than your limit, TikTok stopped showing comments (about 400 per video for logged-out visitors), TikTok hides some comments it filters, or the run reached your maximum cost per run. The log says which, and nothing collected before that is lost.

Can I monitor new comments on my videos?

Yes. Schedule a run with "Only comments posted after" set to "1 day" (or the gap between runs), and deduplicate on commentId.

Support

Missing a field, or found a video that does not work? Open an issue on the Issues tab with the input you used, and it will be looked at quickly.