TikTok Comments Scraper (Cheap)
Pricing
from $3.99 / 1,000 results
TikTok Comments Scraper (Cheap)
TikTok comment scraper that pulls comments and replies from any public post, so researchers and marketers get usable data without copying a single comment by hand.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Data API
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
TikTok Comments Scraper

Reading a TikTok comment section by hand is slow, and there is no export button. If you want to know what people actually say under a video — the praise, the questions, the complaints, who is replying to whom — you end up scrolling and copy-pasting forever. This scraper does the scrolling for you. Paste one or more TikTok links and it pulls every comment as a clean row: the text, the author handle, the like count, the language, the post time, and the reply threads tucked underneath. Hand it a single video or a whole list, and export the lot to a spreadsheet.
What you get
Each comment comes back as one row with a steady shape, so your columns line up when you load the data into a sheet or database. Three kinds of data per comment:
- Who and where —
videoUrl,videoId,commentRef,authorHandle,authorName - The comment itself —
commentBody,likesTotal,repliesTotal,languageCode,pinnedByCreator,postedAt - Threads and timing —
replyList(the nested replies) andcollectedAt
Quick start
- Hit Try for free and open the input form.
- Paste one or more TikTok links into TikTok video URLs — video, photo, or short vm.tiktok.com links all work.
- Set Comments per video to cap the run, and leave Collect reply threads on if you want the replies too.
- Press Start, then export the results as JSON, CSV, Excel, or XML when it finishes.

Use cases
- Audience research — read what your followers ask for and react to, in their own words
- Brand and sentiment monitoring — track how people respond to a campaign or a mention across many videos
- Creator and competitor analysis — see which comments get pinned and which ones pull the most likes
- Community management — pull questions and complaints into one list so nothing slips by
- Trend spotting — catch the slang, links, and recurring asks bubbling up in a niche
- Translation and language work — filter by
languageCodeto gather comments in a specific language
Input
| Field | Type | Required | Description |
|---|---|---|---|
videoUrls | array of strings | Yes | Public TikTok post links to scrape comments from. Video, photo, and short vm.tiktok.com links all work; each is scraped on its own. |
commentsLimit | integer | No | Top-level comments to pull per link. Default 50; set up to 100000 for the full thread. |
fetchReplies | boolean | No | Also collect the replies nested under each comment. Default true. |
repliesLimit | integer | No | Maximum replies to grab per comment. Default 30; only used when fetchReplies is on. |
requestTimeoutSeconds | integer | No | Seconds to wait on each request to TikTok. Default 45; raise it if timeouts appear. |
proxyConfiguration | object | No | Proxies used for requests. Datacenter is the default; switch to Residential if TikTok blocks datacenter IPs. |
Example input
{"videoUrls": ["https://www.tiktok.com/@khaby.lame/video/7137423965982997765","https://www.tiktok.com/@zachking/video/7195741739927440683"],"commentsLimit": 50,"fetchReplies": true,"repliesLimit": 30,"requestTimeoutSeconds": 45,"proxyConfiguration": {"useApifyProxy": true}}
Output
Every comment becomes one row, with its replies embedded as an array on that same row. If a link cannot be processed, the scraper still writes a row carrying the videoUrl and an errorMessage so nothing is lost silently.
Example output
{"videoUrl": "https://www.tiktok.com/@khaby.lame/video/7137423965982997765","videoId": "7137423965982997765","commentRef": "7137580012345678901","authorHandle": "marco.vlogs","authorName": "Marco","commentBody": "This had me laughing way harder than it should have 😂","likesTotal": 1843,"repliesTotal": 2,"languageCode": "en","pinnedByCreator": false,"postedAt": "2026-06-21T14:32:07+00:00","replyList": [{"commentId": "7137590098765432109","username": "lena_k","nickname": "Lena","commentText": "same, replayed it five times","likeCount": 37,"commentLanguage": "en","createdAt": "2026-06-21T15:01:44+00:00","scrapedAt": "2026-06-30T12:00:00.000000+00:00"}],"collectedAt": "2026-06-30T12:00:00.000000+00:00","errorMessage": null}
Output fields
| Field | Type | Description |
|---|---|---|
videoUrl | string | The TikTok post link this row was pulled from |
videoId | string | TikTok's numeric post ID, read out of the URL |
commentRef | string | Unique identifier TikTok assigns to the comment |
authorHandle | string | The @username of the commenter |
authorName | string | Display name shown next to the comment |
commentBody | string | Full text of the comment |
likesTotal | integer | How many likes the comment has collected |
repliesTotal | integer | Number of replies sitting under this comment |
languageCode | string | Language tag TikTok detected, such as en, es, or fr |
pinnedByCreator | boolean | True when the post author pinned this comment |
postedAt | string | ISO 8601 timestamp of when the comment was written |
replyList | array | Replies nested under the comment, each with commentId, username, nickname, commentText, likeCount, commentLanguage, createdAt, and scrapedAt |
collectedAt | string | ISO 8601 timestamp of when the row was captured |
errorMessage | string | Reason a link failed; null on success |
Tips for best results
- Start small. Run one or two links with a low
commentsLimitfirst to confirm the output fits your pipeline, then open it up. - Turn off
fetchRepliesfor speed. Replies mean an extra call per comment thread. If you only need top-level comments, switch it off and the run finishes faster and cheaper. - Switch to Residential if you get blocked. Datacenter proxies clear most videos; residential helps when you see repeated errors or empty responses.
- Raise
requestTimeoutSecondsto around 60 on residential proxies or when pulling very large threads. - Big threads take time. A high
commentsLimitpaired with replies on a viral video is a lot of pages — cap it while testing, then raise it for the full pull.
How can I use TikTok comments data?
How can I use the TikTok Comments Scraper to gauge how an audience reacted to a video?
Paste the video link, leave fetchReplies on, and run it. Each row gives you the commentBody, likesTotal, and postedAt, so you can read the top reactions, sort by likes to find what resonated, and see how the conversation built over time.
How can I monitor TikTok comments across several videos at once?
Drop a list of links into videoUrls and the scraper works through them one by one, tagging every row with its videoUrl and videoId. Export to CSV or Excel and you have one combined sheet of comments to filter, search, and chart however you like.
How can I pull TikTok reply threads for community research?
Keep fetchReplies on and set repliesLimit to the depth you need. Every comment row carries a replyList of the responses underneath it, so you can follow a back-and-forth, find unanswered questions, and spot the comments that sparked the most discussion.
How can I collect TikTok comments in a specific language?
Run the scrape, then filter the rows by languageCode. TikTok tags each comment with a detected language, so you can isolate, say, only the Spanish or French comments for translation, support, or regional analysis.
Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
Support
Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.