TikTok Comments Scraper: Comments and Replies from Videos
Pricing
from $0.04 / 1,000 comments
TikTok Comments Scraper: Comments and Replies from Videos
Export TikTok comments and replies from public videos for sentiment and audience research: text, likes, reply count, date, commenter username and ID, pinned and creator-liked flags. No login.
Pricing
from $0.04 / 1,000 comments
Rating
0.0
(0)
Developer
Detroit Web Agent - Open Data
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Features
Share
TikTok Comments Scraper: comments, replies, likes and commenters
Use this to export comments and replies from public TikTok videos for sentiment and audience research.

| Price per 1,000 comments | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
| This Actor | $0.87 | $0.70 | $0.52 | $0.15 |
| Most-used alternative | $1.25 | $1.00 | $0.75 | $0.50 |

Turn any public TikTok video into a clean table of its comments: comment text, likes, number of replies, date, commenter username, display name, user ID, avatar, pinned and liked-by-creator flags, and optionally the replies under each comment, threaded by parent ID. Paste video URLs. Plain HTTP, no browser, no login, no cookies.
- In short: TikTok Comments Scraper (Apify actor
transparent_meteorite/tiktok-comments-scraper) reads the public comments and replies of TikTok videos and returns one row per comment. - Who it is for: brand and community managers, social listening and sentiment analysis, agencies reporting on campaigns, creators finding their most engaged fans, researchers.
- Input: video URLs (short links and bare IDs too); comments per video; replies per comment; skip pinned; date and minimum-likes filters; max rows; monitor mode; proxy.
- Output: 20+ fields per comment: cid, text, diggCount, replyCommentTotal, createTimeISO, uniqueId, nickname, uid, avatarThumbnail, repliesToId, isPinned, authorLiked, videoWebUrl, commentUrl. JSON, CSV or Excel.
- Pricing: pay per event. Per comment delivered: $0.00087 free plan, $0.0007 Bronze, $0.00052 Silver, $0.00015 Gold, Platinum and Diamond.
- Limits: only what TikTok shows logged-out visitors; comments the creator hid or TikTok filtered are not returned.
Paste a video URL, press Start, get its comments as a table in about 5 seconds.
Run in 30 seconds
- Open the actor in Apify Console (a free Apify account is enough).
- Press Start with the prefilled input: 50 comments of a TikTok video, about $0.06 on the free plan.
- Open the Output tab: the Comments view is a table. Download as CSV, Excel or JSON.
{"postURLs": ["https://www.tiktok.com/@tiktok/video/7106594312292453675"],"commentsPerPost": 50,"maxRepliesPerComment": 0}
An empty input {} also works: it reads 100 comments of an example video.
Why choose this over alternatives
| This actor | Typical TikTok comment scrapers | |
|---|---|---|
| Price per comment (free plan) | $0.00087 | $0.00125 |
| Price per comment (Gold, Platinum, Diamond) | $0.00015 | $0.0005 / $0.0003 / $0.00015 |
| Replies, threaded by parent ID | Yes | Yes |
| Pinned and liked-by-creator flags | Yes | Partly |
| Skip pinned, date and minimum-likes filters | Yes, combined | Rarely |
| Monitor mode (only new comments) | Yes | No |
| Link straight to each comment | Yes (commentUrl) | No |
| Videos that cannot be read, filtered comments | Not charged | Varies |
| Memory | 256 MB, no browser | Often a browser |
What you get: output fields
| Field | Meaning |
|---|---|
cid | Comment ID |
text | Comment text |
diggCount | Likes on the comment |
replyCommentTotal | Number of replies (top-level comments) |
createTime, createTimeISO | When it was posted |
uniqueId, nickname, uid, secUid | Commenter username, display name and IDs |
avatarThumbnail, profileUrl | Commenter avatar and profile link |
isReply, repliesToId, replyToReplyId | Reply threading |
isPinned, authorLiked | Pinned by the creator, liked by the creator |
commentLanguage, mentions | Detected language, @mentions in the text |
awemeId, videoWebUrl, commentUrl | Video ID, video link, link that opens the video at this comment |
input, scrapedAt | The input URL, read time |
Sample row:
{"cid": "7106606555949433646","text": "15?","diggCount": 156,"replyCommentTotal": 4,"createTimeISO": "2022-06-07T21:03:06.000Z","uniqueId": "0_.preppy._.vids._0","isReply": false,"repliesToId": null,"isPinned": false,"authorLiked": false,"awemeId": "7106594312292453675","videoWebUrl": "https://www.tiktok.com/@tiktok/video/7106594312292453675"}
Input options
postURLs: video URLs, vm.tiktok.com short links or bare video IDs.commentsPerPost(default 100): top-level comments per video. Replies come on top.maxRepliesPerComment(default 0): replies to read under each comment.excludePinned,oldestCommentDate(date or "7 days"),minCommentLikes: filters; skipped comments are not charged.maxItems: hard cap on rows across all videos. A run also stops at your Max cost per run setting.monitorMode+monitorStoreName: only comments not delivered before.
Pricing
Pay per event. No subscription, no rental fee.
| Event | Free | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
| Comment (one comment or reply delivered) | $0.00087 | $0.0007 | $0.00052 | $0.00015 | $0.00015 | $0.00015 |
| Comments | Free | Bronze | Silver | Gold+ |
|---|---|---|---|---|
| 1,000 | $0.87 | $0.70 | $0.52 | $0.15 |
| 10,000 | $8.70 | $7 | $5.20 | $1.50 |
| 100,000 | $87 | $70 | $52 | $15 |
Not charged: videos that cannot be read after retries, comments removed by a filter, and comments already delivered in monitor mode.
How to run it
- Console: fill the form, press Start.
- API:
POST https://api.apify.com/v2/acts/transparent_meteorite~tiktok-comments-scraper/run-sync-get-dataset-items?token=<TOKEN>with the input JSON as the body. - Python:
ApifyClient(token).actor("transparent_meteorite/tiktok-comments-scraper").call(run_input={"postURLs": ["https://www.tiktok.com/@tiktok/video/7106594312292453675"]}) - Schedules and integrations: run hourly with monitor mode on and send new comments to Google Sheets, Slack, Make, Zapier or n8n.
Limits and honest caveats
- Comments come in TikTok's own order (relevance first), not strictly by date. Use
oldestCommentDateto cut old ones. - TikTok hides some comments from logged-out visitors (filtered or restricted). Those are not returned, so the count can be a little below the number shown in the app.
- Comments on private, deleted or age-restricted videos cannot be read; those videos are reported in the log and not charged.
Common workflows and use cases
-
Community management and moderation. Pull every comment under a campaign video, sort by
diggCount, and answer the most-liked questions first. WithexcludePinnedon you skip the creator's own pinned message, and withauthorLikedyou can see which comments the creator already acknowledged. Schedule the actor hourly with monitor mode so your team only sees comments that arrived since the last run. -
Brand and sentiment research. Collect a few thousand comments under videos that mention your product or a competitor's, export to CSV and feed
textinto any sentiment or topic model. ThecommentLanguagefield lets you split results by language without running a separate detector, andmentionsshows which accounts people tag in the thread. -
Creator vetting. Before paying an influencer, read the comments under their last ten sponsored posts. A healthy audience asks real questions, replies to each other and uses varied wording. A bought audience posts the same emoji or a single generic phrase.
replyCommentTotaland the threading fields (isReply,repliesToId) make this easy to measure in a spreadsheet. -
Giveaway and contest picking. Set
commentsPerPosthigh, export uniqueuniqueIdvalues and draw winners. Because every row carriescommentUrl, you can prove each entry by opening the video at that exact comment. -
Lead and question mining. Search your niche for videos, run this actor on the top ones and filter
textfor words such as "price", "where", "how much" or "link". Those commenters are people raising their hand, andprofileUrltakes you to their account. -
Research and archiving.
createTimeISOandscrapedAtgive you a clean timeline for academic or journalistic work. UseoldestCommentDatewith a value like "30 days" to keep each export focused on a single window.
Tips for cleaner, cheaper runs
- Start small. A first run with
commentsPerPostat 20 shows you the exact row shape and costs a fraction of a cent, so you can wire up your pipeline before scaling to thousands. - Use
minCommentLikesto keep only comments with real engagement. Filtered comments are skipped before delivery and are never charged, so a filter lowers cost as well as noise. - Replies cost the same as comments. If you only need top-level opinions, leave
maxRepliesPerCommentat 0. If you want whole conversations, set it to 5 or 10 and rebuild the thread withrepliesToId. - Set Max cost per run in the run options. The actor stops cleanly when the cap is reached and keeps everything already delivered.
- Mix video URL formats freely. Full links,
vm.tiktok.comshort links and bare numeric video IDs can sit in the samepostURLslist. - For recurring jobs, give each task its own
monitorStoreName. Two schedules that share a store would hide each other's new comments.
Output and integrations
Results land in the default dataset and can be downloaded as JSON, CSV, Excel, XML or HTML, or streamed through the API while the run is still going. The overview table in the Output tab shows the commenter, the text, likes, reply count and the link to the comment. From there you can connect the dataset to Google Sheets, Airtable, Slack, Make, Zapier or n8n with a webhook on run success, or call the run-sync endpoint from your own code and receive rows in the HTTP response.
A typical automation: a schedule runs every hour on your ten latest videos with monitor mode on, a webhook fires when the run succeeds, and a workflow posts new comments with more than five likes into a team Slack channel along with the commentUrl. Another popular setup stores every run in a warehouse table keyed on cid, so you can track how a comment's like count grows over time.
Data quality notes
Every row is a real, publicly visible comment. Text is delivered as written, including emoji, line breaks and non-Latin scripts, encoded as UTF-8. Duplicate comments are not returned within one run. Like counts and reply counts are a snapshot at scrapedAt, so compare two runs if you need growth. Commenter display names can change at any time; uid and secUid are the stable identifiers to join on.
Who uses this actor
Social media managers use it to keep a weekly record of audience questions across every video they publish. Agencies run it for client reports, pairing comment counts and top comments with view data from a profile scraper. Researchers use it to study how conversations form and spread under viral videos, and e-commerce teams use it to find purchase-intent comments and recurring product complaints that never reach support. Because the input accepts any number of video links, one scheduled task can cover a whole content calendar, and because filtered or unreadable comments are not charged, you only ever pay for rows you actually receive.
FAQ
Do I need a TikTok account or cookies? No.
Does it get replies? Yes: set maxRepliesPerComment. Each reply is its own row with isReply: true and repliesToId pointing at the parent comment.
How fast is it? About 50 comments per request; 100 comments usually take a few seconds, and three videos are read in parallel.
Can I watch a video for new comments? Yes: turn on monitor mode and schedule the actor. Each run returns only comments it has not delivered before.
What does a failed video cost? Nothing. Only delivered comments are charged.
Use it from AI assistants (MCP)
TikTok Comments Scraper works as a tool for AI assistants through the official Apify MCP server. Add this URL to any MCP client (Claude Desktop, Claude Code, Cursor, ChatGPT connectors, VS Code):
https://mcp.apify.com/?actors=transparent_meteorite/tiktok-comments-scraper
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?actors=transparent_meteorite/tiktok-comments-scraper","headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }}}}
Then ask, for example: "Get the top 200 comments of this TikTok video and summarise what people like and dislike."
Terms and responsible use
The actor reads only comments TikTok shows publicly to logged-out visitors. You are responsible for using the data lawfully (GDPR, CCPA, TikTok's terms). Do not use it for spam or harassment.
Changelog
-
0.2 (2026-10-28): listing refresh (title, description, README sections, console prefills). No change to output fields.
-
0.1 (2026-10-13): first release. Comments, replies, pinned and creator-liked flags, filters, monitor mode.
Support
Found a bug or need a field? Open an issue on the Issues tab with the run URL. We reply there.
Related actors
Other public-data actors from the same publisher that pair well with this one:
- TikTok Scraper: Hashtags, Search, Sounds, Places, Profiles
- TikTok Profile Scraper: Followers, Videos, Bio Email
- YouTube Comments Scraper: Comments & Replies Export
Example input
A small run that finishes quickly (this is also the prefilled input in the Apify Console). Values come from the input schema:
{"postURLs": ["https://www.tiktok.com/@tiktok/video/7106594312292453675"],"commentsPerPost": 50,"maxRepliesPerComment": 0,"excludePinned": false,"maxItems": 20,"monitorMode": false,"monitorStoreName": "tiktok-comments-monitor","proxyConfiguration": {"useApifyProxy": true}}
Output sample
Each result is one dataset item (JSON, CSV, Excel or via API). Shape taken from the actor's dataset schema; field names and meanings below, not live data:
| Field | Meaning |
|---|---|
avatarThumbnail | Commenter avatar (100x100) |
uniqueId | Commenter username |
text | Comment text |
diggCount | Likes on the comment |
replyCommentTotal | Number of replies (top-level comments) |
createTimeISO | Posted at, ISO 8601 |
isReply | True for replies |
repliesToId | For replies: ID of the parent comment |
isPinned | Pinned by the video creator |
authorLiked | Liked by the video creator |
videoWebUrl | Video URL |
Alternatives to TikTok Comments Scraper
Other ways to get similar data, so you can choose what fits:
- TikTok Research API: official, restricted to approved researchers
- Apify's TikTok Scraper (clockworks/tiktok-scraper): another Apify Store actor
This actor's edge is pay-per-result pricing, no login and ready-to-use structured output. Compare on a small test run before you commit.
