TikTok Comments Scraper
Pricing
from $0.50 / 1,000 tiktok comment or replies
TikTok Comments Scraper
A simple, fast TikTok comment scraper for public video and photo posts. Collect comments and replies in clean JSON or CSV with text, likes, language, timestamps, authors, and thread IDs. Built for brand monitoring, sentiment analysis, creator research, and AI. Pay only for saved results.
Pricing
from $0.50 / 1,000 tiktok comment or replies
Rating
0.0
(0)
Developer
Chronometrica
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
๐ฌ What does TikTok Comments Scraper do?
TikTok Comments Scraper is a simple, fast way to collect public TikTok comments and replies from known video and photo posts. Paste full post URLs or numeric post IDs and get clean, structured JSON or CSV with one analysis-ready row for every saved comment or reply.
Use it to collect large comment datasets for brand monitoring, social listening, creator research, thesis data collection, sentiment analysis, AI, spreadsheets, warehouses, and automated monitoring. The structured output is easy to analyze and includes stable post and comment IDs, comment text, public author details, timestamps, likes, language, reply links, and visible creator signals.
The Actor uses logged-out public TikTok data. It does not need your TikTok account, cookies, API key, or copied browser session. It does not access private posts or bypass access controls.
With TikTok Comments Scraper, you can:
- ๐ฃ Study public reactions to brands, products, campaigns, and creators.
- ๐ Find the words, questions, and topics audiences use in real comments.
- ๐ง Build datasets for sentiment analysis, topic modeling, and AI workflows.
- ๐งโ๐ฌ Collect structured public comments for academic and market research.
- ๐ฌ Preserve reply threads with stable parent and reply IDs.
- ๐ผ๏ธ Collect comments from both TikTok video and photo/carousel posts.
- ๐ Export results as JSON, JSONL, CSV, Excel, XML, RSS, or HTML.
- ๐ Run scheduled jobs through the Apify API, SDKs, webhooks, and integrations.
๐ฆ What TikTok comment data can I extract?
Each default-dataset row represents one real public TikTok comment or reply. Replies are separate rows, which keeps CSV, SQL, and per-row billing simple.
| Data group | Main fields |
|---|---|
| ๐ Post identity | inputUrl, postUrl, postId |
| ๐ฌ Comment | commentId, text, language, createdAt, likesCount |
| ๐งต Reply thread | parentCommentId, replyToCommentId, isReply, replyDepth, replyCount |
| ๐ค Public author | authorId, authorHandle, authorDisplayName, authorUrl, authorAvatarUrl, authorVerified |
| โค๏ธ Creator signals | isPinned, isHeartedByCreator |
| ๐ Collection | commentIndex, replyIndex, status, scrapedAt |
Public values that TikTok does not expose stay null. Missing values are not
guessed or replaced with fake zeroes.
โจ Why use this Actor?
- โ Analysis-ready rows: one stable shape for both comments and replies.
- ๐ช Simple setup: paste post URLs, choose a limit, and start the run. No code is required.
- ๐ Strict post identity: every saved row is checked against the requested TikTok post ID.
- ๐งน Run-wide deduplication: equivalent post inputs and repeated comment IDs are collected once.
- ๐งต Valid reply links: replies carry their top-level parent ID so you can rebuild each thread.
- ๐ผ๏ธ Video and carousel support: use full
/video/and/photo/URLs. - ๐ฆ Honest empty results: invalid, unsupported, unavailable, and no-public-comment inputs appear in the run summary instead of becoming charged fake rows.
- ๐๏ธ Clear limits: caps apply per post, replies have their own cap, and the summary explains whether the Actor reached a cap or exhausted public rows.
- ๐ธ Clear billing: one saved comment or reply is one result. Platform usage is included.
- ๐ Public-data boundary: no user login, cookies, or private TikTok data.
In a fixed July 2026 production test, the Actor saved 1,000 unique comments from 10 public posts in 46.9 seconds. The test produced no wrong-post rows and no output duplicates. Live speed and available comment volume can vary by post and over time.
โ๏ธ Can I use this Actor through an API?
Yes. Run TikTok Comments Scraper manually in Apify Console or connect it to:
- Apify API
- Python SDK
- JavaScript SDK
- Webhooks
- Scheduled runs
- Make, Zapier, n8n, Google Sheets, and other Apify integrations
This makes the Actor useful for repeatable research, dashboards, data warehouses, AI pipelines, and monitoring jobs.
๐ API example
Start a run with the Apify API. Keep your token in an environment variable or secret store; do not commit it to source code.
curl -X POST \"https://api.apify.com/v2/acts/chronometrica~tiktok-comments-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": ["https://www.tiktok.com/@zachking/video/7631200623693729038"],"maxCommentsPerVideo": 100,"includeReplies": false,"maxRepliesPerComment": 10}'
Use the returned run ID to check status, download dataset items, or connect a webhook. The same input works with the Apify JavaScript and Python clients.
๐ฏ Why scrape TikTok comments?
| Use case | How the data helps |
|---|---|
| ๐ฃ Brand monitoring | Learn how audiences react to campaigns and products. |
| ๐ต๏ธ Competitor research | See what people praise, dislike, and ask competitors. |
| ๐ค Creator research | Review audience quality and public reactions before a partnership. |
| ๐ง Sentiment datasets | Supply clean text for your own sentiment or topic model. |
| ๐งโ๐ฌ Academic research | Collect structured public discussion for reproducible analysis. |
| ๐ Ongoing monitoring | Schedule the same known posts and compare public reactions over time. |
The Actor supplies public source data. It does not add automatic sentiment labels or make claims about a person's intent.
๐ต Pricing
TikTok Comments Scraper uses pay-per-result pricing. One result means one successful public comment or reply written to the default dataset.
| Apify plan | Price per 1,000 comments or replies |
|---|---|
| Free | $1.00 |
| Starter | $0.80 |
| Scale | $0.60 |
| Business | $0.50 |
Platform usage is included. There is no start fee and no minimum run charge. Invalid inputs, unsupported URLs, unavailable posts, empty public results, and duplicate inputs do not create result rows and are not charged as results.
Use maxCommentsPerVideo, includeReplies, and maxRepliesPerComment to
control result volume before a run. Replies are additional result rows.
Example result charges:
| Saved rows | Free | Business |
|---|---|---|
| 100 | $0.10 | $0.05 |
| 1,000 | $1.00 | $0.50 |
| 10,000 | $10.00 | $5.00 |
๐ How do I use TikTok Comments Scraper?
- Open TikTok Comments Scraper in Apify Console.
- Paste one or more full TikTok video or photo post URLs, or numeric post IDs.
- Choose the maximum number of top-level comments per post.
- Turn on replies only if you need them, then set the reply cap.
- Click Start.
- Open Output to inspect the dataset and run summary.
- Download the data or send it to another tool through an integration.
โฌ๏ธ Input
{"startUrls": ["https://www.tiktok.com/@zachking/video/7631200623693729038"],"maxCommentsPerVideo": 100,"includeReplies": false,"maxRepliesPerComment": 10}
๐ Supported post inputs
- Full
https://www.tiktok.com/@user/video/POST_IDURLs - Full
https://www.tiktok.com/@user/photo/POST_IDURLs httporhttpswww, non-www, and mobile TikTok hosts- Full URLs copied without
http://orhttps:// - Full URLs with query parameters
- Numeric TikTok post IDs
Equivalent inputs for the same post are collected once. TikTok short links
such as vm.tiktok.com and vt.tiktok.com are not supported yet. Resolve them
to a full post URL before running the Actor.
๐๏ธ Input settings
| Setting | What it controls |
|---|---|
startUrls | Add 1โ100 public TikTok video or photo URLs, or numeric post IDs. |
maxCommentsPerVideo | Save 1โ1,000 unique top-level comments for each post. Default: 100. Replies do not count toward this cap. |
includeReplies | Save public replies as separate rows. Default: off. Turning it on can increase runtime and cost. |
maxRepliesPerComment | Save 1โ100 replies under each saved top-level comment when replies are enabled. Default: 10. |
โฌ๏ธ Output sample
{"inputIndex": 0,"inputUrl": "https://www.tiktok.com/@example/video/7631200623693729038","platform": "tiktok","postUrl": "https://www.tiktok.com/@example/video/7631200623693729038","postId": "7631200623693729038","commentId": "7600000000000000001","parentCommentId": null,"replyToCommentId": null,"isReply": false,"replyDepth": 0,"commentIndex": 0,"replyIndex": null,"text": "Example public comment","language": "en","createdAt": "2026-07-12T18:30:00.000Z","createTime": 1783881000,"likesCount": 42,"replyCount": 3,"authorId": "7000000000000000001","authorHandle": "example_user","authorDisplayName": "Example User","authorUrl": "https://www.tiktok.com/@example_user","authorAvatarUrl": "https://example.com/avatar.jpeg","authorVerified": false,"isPinned": false,"isHeartedByCreator": false,"status": "ok","scrapedAt": "2026-07-12T22:00:00.000Z"}
Every dataset row has status: "ok". Inputs that do not produce a real public
comment row are explained in the OUTPUT run summary instead.
๐งต Comment and reply fields
commentIdis the stable row identity used for deduplication.parentCommentIdisnullfor a top-level comment. For a reply, it points to the saved top-level parent row.replyToCommentIdidentifies the directly replied-to comment when TikTok exposes it.commentIndexandreplyIndexare zero-based saved positions, not TikTok relevance scores.replyCountis the public reply total for a top-level comment. It isnullon reply rows because it is not applicable there.createdAtandcreateTimedescribe when TikTok says the comment was created.scrapedAtdescribes when this Actor collected the row.isPinned,isHeartedByCreator, andauthorVerifiedstaynullif TikTok does not expose the public flag. They are not guessed asfalse.
๐งพ Run summary
The OUTPUT record helps you check the whole run. It includes:
- inputs received and unique posts planned;
- duplicate post inputs skipped;
- posts attempted and posts with rows;
- top-level comments and replies written;
- candidates seen and duplicate comments skipped;
- public outcome and stop-reason counts;
- safe details for inputs that did not produce rows;
- request, retry, and pagination totals.
| Input outcome | Meaning | Result charge |
|---|---|---|
ok | One or more public comment rows were saved. | One charge per saved row |
no_public_comments | The public post resolved, but TikTok returned no public comments. | None |
deleted_or_unavailable | The post could not be validated as publicly available. | None |
private | The post was not available to logged-out public viewers. | None |
blocked_or_challenged | TikTok did not expose public comments for that request. | None |
invalid_input | The input was not a TikTok post URL or numeric post ID. | None |
unsupported_url | The URL was TikTok-related but outside the supported post formats. | None |
failed or partial | A temporary request stopped all or part of the post collection. | Saved rows only |
If a post produces no rows, check failedInputDetails in OUTPUT. It keeps the
input, post ID when available, outcome, plain-language reason, and whether a
retry may help. The Actor does not hide an empty result behind a successful
dataset row.
๐ Public-data boundary
TikTok Comments Scraper uses logged-out public TikTok surfaces only.
It does not:
- request your TikTok username or password;
- use your account, cookies, or copied browser session;
- collect private or followers-only posts;
- solve access challenges or bypass login controls;
- discover posts from profiles, keywords, or hashtags;
- download TikTok videos or photos;
- promise every comment shown by TikTok's displayed total.
โ ๏ธ Limits and interpretation
- TikTok decides which comments and replies are visible to logged-out public viewers.
- Deleted, hidden, filtered, region-limited, or moderated comments may not be available.
- A displayed TikTok comment total can be higher than the rows available from the public continuation source.
maxCommentsPerVideoandmaxRepliesPerCommentare hard saved-row caps, not promises that every post has that much public inventory.- Comment order follows the public source order. It is not a custom relevance, sentiment, or most-liked ranking.
- Likes, replies, author details, pins, hearts, and public availability can change between runs.
- Short TikTok share links are not supported yet.
โ FAQ
Does this Actor need a TikTok API key or login?
No. It uses logged-out public TikTok data and does not need your account, cookies, or API key.
Does it support TikTok photo and carousel posts?
Yes. Paste the full /photo/POST_ID URL. Comments and replies use the same
dataset shape as video-post comments.
Are replies charged?
Yes. Each successfully saved reply is its own dataset row and result. Leave
includeReplies off when you only need top-level comments.
Why did I receive fewer comments than the displayed TikTok total?
TikTok's displayed total and its logged-out public continuation inventory can differ. The run summary reports whether the Actor reached your cap or exhausted the available public source.
How does deduplication work?
Equivalent URLs and IDs for the same post are collected once per run. Saved rows are deduplicated by TikTok's stable comment ID.
Can it collect private posts or comments that require login?
No. Private, account-only, and otherwise unavailable data is outside the Actor's public-data boundary.
๐ Best practices
- ๐ฏ Start with 50โ100 comments while testing a new workflow.
- ๐ฌ Turn on replies only when conversation threads matter to your analysis.
- ๐ Use full video or photo URLs instead of TikTok short links.
- ๐งพ Check
OUTPUTbefore treating a small dataset as a failure. - ๐ Join and deduplicate downstream work with
postIdandcommentId. - ๐ Schedule repeated runs when you need to observe public comment changes over time.
๐ Support
For help, include the Apify run ID, one example input URL or post ID, what you
expected, and the status shown in OUTPUT. Do not send TikTok passwords,
cookies, session data, or private links.
โ๏ธ Responsible use
This Actor collects data that TikTok exposes to logged-out public viewers at run time. You are responsible for using the data lawfully and for following applicable privacy, data-protection, research, and platform rules. Avoid using public comments to harass people, infer sensitive traits, or make automated high-impact decisions about individuals.
๐ Related social media scrapers
Combine this Actor with our other social media scrapers for discovery, performance tracking, comment research, and transcript collection.
TikTok
- TikTok Search Scraper โ find public TikTok videos, creators, and metrics by keyword.
- TikTok Metrics Scraper โ collect public video, profile, engagement, hashtag, and music data.
- TikTok Transcript Scraper โ extract public caption text and timestamped segments from TikTok videos.
- Facebook Metrics Scraper โ collect public post, Reel, video, and profile/page metrics.
- Facebook Comments Scraper โ collect public comments, replies, authors, dates, and reactions from known Facebook content.
- Instagram Metrics Scraper โ collect public post, Reel, carousel, profile, and collaboration metrics.
- Instagram Comments Scraper โ collect public comments, authors, dates, likes, and reply counts from posts and Reels.
YouTube
- YouTube Search Scraper โ find public videos, Shorts, channels, and metrics by keyword.
- YouTube Metrics Scraper โ collect public video, Short, channel, and engagement metrics.
- YouTube Comments Scraper โ collect public comments, replies, authors, likes, pins, and creator hearts.
- YouTube Transcript Scraper โ extract public captions as clean text, timestamps, SRT, VTT, or LLM-ready output.