TikTok Comments & Replies Scraper avatar

TikTok Comments & Replies Scraper

Pricing

from $0.70 / 1,000 results

Go to Apify Store
TikTok Comments & Replies Scraper

TikTok Comments & Replies Scraper

Extract TikTok comments and replies from videos, photo posts and whole profiles. Get text, likes, reply counts, dates, mentions and commenter details (bio, verified badge) as structured JSON. Bulk URLs, live output, no account or cookies needed.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Insights Data

Insights Data

Maintained by Community

Actor stats

0

Bookmarked

28

Total users

7

Monthly active users

13 days ago

Last modified

Categories

Security

Limited permissions

Share

💬 What is TikTok Comments & Replies Scraper?

TikTok Comments & Replies Scraper shows you what people really say about your brand, your products and your competitors on TikTok, so you can run TikTok social listening and act on TikTok customer feedback without reading comments by hand. It's a TikTok comments scraper made for marketers, brand and social media managers, researchers and developers who track campaigns, creators or a whole niche.

It lets you extract TikTok comments and their replies from public videos, photo posts and whole profiles, one row per comment or reply. Paste video links or usernames, click Start, and get comment text, likes, dates, mentions and commenter details with no TikTok account, cookies or coding. There is no run-wide row cap: you decide how much you get with the per-post and per-profile limits and an optional maximum cost per run.

What you can use it for:

  • Brand monitoring: collect the comments that mention your brand or product on your own and campaign videos, and check the reactions week by week.
  • Competitor analysis: read what the audience praises, asks or complains about under your competitors' videos.
  • Customer feedback: gather product questions, complaints and feature requests from the people who watch your videos or your creators' videos.
  • Sentiment research: send the rows to a spreadsheet, BI tool or LLM for TikTok comment sentiment analysis. The Actor collects the data; it doesn't score sentiment itself.
  • Influencer and audience research: check how engaged a creator's audience is, who comments (usernames, bios, verified badges, languages), which comments get the most likes and whether the creator replies to, likes or pins comments.
  • AI and data pipelines: build a TikTok comments dataset in structured JSON for LLMs, AI agents or analytics pipelines.

What can TikTok Comments & Replies Scraper do?

It's a TikTok video comments scraper that also covers photo posts and whole profiles. It reads the public comments of every post you add and saves them to your dataset while the run is still working.

  • 💬 Comments from videos and photo posts: video URLs, photo URLs, short share links and video IDs in one list, so you get TikTok photo comments as well as video comments.
  • 🧵 Collect TikTok comment replies: each reply is its own row, linked to its parent comment with repliesToId, and saved right after that comment.
  • 👤 Profile mode: add usernames or profile URLs and get the comments of each profile's videos. You choose which videos are picked: the latest, the most popular or the oldest, within a date range, with or without pinned videos.
  • 🔢 Your own limits: set the maximum rows per post, the maximum top-level comments per post and the maximum replies per comment.
  • 📇 Commenter and creator details: each commenter's bio, verified badge and language (optional, on by default), plus the video creator's profile on every row.
  • ⚡ Live output: rows are saved page by page, so the Output tab fills during the run and saved rows stay if the run stops early.
  • 📦 Export and automate: download JSON, CSV, Excel, XML or HTML, call it through the Apify API, schedule runs, and connect Make, Zapier, Google Sheets and more.
  • 🛡️ Proxy handled for you: the run starts without a proxy and switches to Apify Proxy automatically when TikTok blocks or limits requests; you can also choose your own proxy settings. Apify Proxy traffic is part of your platform usage (see the pricing section).

📊 What data can TikTok Comments & Replies Scraper extract?

Every row is structured TikTok comments data about one comment or one reply. Field names below are the exact names in the dataset. Pairs marked "same as" hold the same value under two names (see Spreadsheet tips).

🧵 Row type: comment or reply type📝 Comment text text
🆔 Comment ID cid (same as id)🔗 Link that opens the video at this comment commentUrl
📅 Created at createTimeISO (same as createdAt), Unix time createTime🌐 Comment language commentLanguage
⭐ TikTok comment likes diggCount (same as likeCount)💬 Reply count shown by TikTok replyCommentTotal (same as replyCount)
❤️ Liked by the creator isAuthorLiked (same as likedByAuthor)📌 Pinned by the creator pinnedByAuthor
🧵 Is a reply isReply🧵 Parent comment ID repliesToId
🧵 Reply it answers replyToReplyId, thread marker threadId👤 Commenter ID, username, name, avatar uid, uniqueId, nickname, avatarThumbnail
👤 Commenter profile user: id, secUid, username, displayName, nickname, url, bio, avatarUrl, verified, region, language, hasEmail, hasPhone, coverImage🎥 Video creator videoAuthor: id, secUid, username, nickname, url, bio, bioLink, avatarUrl, verified, privateAccount, isOrganization, isSeller, language, region, accountCreatedAt, followerCount, followingCount, likeCount, videoCount, friendCount
🏷️ Mentioned users mentions, detailedMentions📸 Attached images or stickers images
🎬 Video reply videoReply🔗 Video URL, video ID, post ID (same as video ID), creator username videoWebUrl, videoId, awemeId, videoAuthorUniqueId
🔗 Input that led to this row input, inputSource, submittedVideoUrl

Note: Every row has all of these keys, but some values can be empty. text is null for sticker, image or video-only comments. repliesToId is null for top-level comments. user.verified is null when commenter profile details are off or a commenter's profile couldn't be loaded in time. user.region, user.hasEmail, user.hasPhone and user.coverImage are usually null because TikTok doesn't show them for commenters. videoAuthor is null when the creator's profile couldn't be loaded. For videos found through a profile, input is the username and submittedVideoUrl is the profile URL. A custom map function changes the row shape.

What data can't TikTok Comments & Replies Scraper extract?

  • Comments that a user wrote on other people's videos (the Actor collects the comments on videos)
  • Comments of private, deleted or region-blocked videos
  • Replies that TikTok hides, deletes or filters, so a thread can return fewer replies than replyCommentTotal
  • TikTok LIVE comments
  • Video statistics such as views, shares or the video description (you get the creator's profile stats in videoAuthor)
  • Video files, transcripts or media downloads
  • Commenter emails or phone numbers
  • A choice of comment order: comments come in the order TikTok returns them (Profile video sorting only decides which profile videos are picked)
  • Reposts of profiles that keep their reposts hidden from visitors
  • Other platforms: it isn't a general social media comments scraper and works with TikTok only

For video statistics, transcripts and media downloads, see TikTok Profile Scraper.


🔍 How to scrape TikTok comments and replies

You don't need to write code: the TikTok comment scraper runs in Apify Console, and the input form has a field for every setting. To get TikTok comments from your own videos or from a creator's profile:

  1. Create a free Apify account using your email.
  2. Open TikTok Comments & Replies Scraper.
  3. In TikTok URLs, replace the prefilled example link with your own video links, or keep it for a first test. If you keep it, it's scraped like any other link and its rows count toward your limits. To add a creator, open Profile options and type the username in TikTok usernames. You can use video links and usernames in the same run.
  4. Check Maximum comments per post (default 10 rows per post, replies included) and, for profiles, Videos per profile (default 1). Then click Start.
  5. Watch the rows appear in the Output tab while the run is working, then download them as JSON, CSV, Excel, XML or HTML.

Recommended first run: keep the prefilled input and click Start. It reads one public Gordon Ramsay video with Maximum comments per post set to 10 and Maximum replies per comment set to 2, so it saves at most 10 rows and the results cost at most $0.01, plus the start fee and platform usage (see the next section). Then switch to your own links.

Recipe: your videos plus one creator's profile

This input reads the comments of the video links you paste plus the 3 videos picked from one creator's profile. Replace the link and the username with your own, and add more links one per line:

{
"urls": [
"https://www.tiktok.com/@gordonramsayofficial/video/7229884545150061851"
],
"profiles": ["gordonramsayofficial"],
"resultsPerPage": 3,
"commentsPerPost": 100,
"maxRepliesPerComment": 2
}

Two defaults decide how much you get here:

  • Maximum comments per post (commentsPerPost) is 10 by default and counts replies too. Left at the default, you get at most 10 rows per video, so it's raised to 100 above.
  • Videos per profile (resultsPerPage) is 1 by default. Left at the default, you get the comments of only one video from the profile, so it's raised to 3 above. Profile video sorting (Latest by default) decides which videos are picked.

With this input, a run saves at most 400 rows (1 linked video plus 3 profile videos, up to 100 rows each), so the results cost at most $0.36 on Starter, $0.32 on Scale or $0.28 on Business. To cap your spend, set a maximum cost per run before you click Start (see the next section).

To extract TikTok video comments from a longer list of posts, add one link per line or use Bulk edit to paste a whole list. Each post is read once per run, even if it's in your list twice or also shows up in a profile.

Don't have the video links yet? TikTok Hashtag Scraper collects the videos posted under a hashtag, including their video links. Paste those links into TikTok URLs here to read what viewers say about a trend or a campaign hashtag.


💲 How much does it cost to scrape TikTok comments?

TikTok Comments & Replies Scraper uses pay-per-event pricing: a fixed price for each saved row and for each run start, plus Apify's platform usage. Your bill for a run has three parts:

PartPrice
💲 Results: every comment or reply row saved to the dataset$1.00 per 1,000 results ($0.001 per row) on the Free plan (lower on paid plans, see below)
🚀 Actor start$0.00005 per run with the default settings. The fee is $0.00005 per GB of run memory (the amount of computer memory the run gets), and runs use 1 GB by default.
⚙️ Apify platform usageApify's charge for the resources your run uses: compute time, data storage and, if the run switches to Apify Proxy, proxy traffic. It isn't fixed in advance; after a test run, you see it on the run's page in Apify Console.
Apify planPrice per row (comment or reply)Price per 1,000 rows
Free$0.001$1.00
Starter$0.0009$0.90
Scale$0.0008$0.80
Business and higher$0.0007$0.70

The plan discount applies to the result price only. The start fee is the same on every plan, and platform usage is billed at your Apify plan's own rates.

If you raise the memory in Run options, the start fee grows with it, for example $0.0002 per run at 4 GB.

What is and isn't charged as a result:

  • A top-level comment and a reply are each one result. Replies count like comments.
  • Rows are charged even when some fields are empty.
  • Videos whose comments can't be loaded at all, and videos with no comments, produce no rows and add no result charges. If loading stops partway through a video, the rows saved before that are charged.
  • Rows removed by your custom map function and rows that fail to save are not charged.

Example result costs at Free plan prices (the start fee and platform usage come on top):

Rows saved (comments + replies)Result cost
10 (the prefilled input)$0.01
100$0.10
1,000$1.00
10,000$10.00

Start with a small test run, check the real total (including platform usage) on the run's page, then scale up. To cap your spend, set a maximum cost per run in Run options under the input form: when it's reached, the run stops cleanly, keeps the rows already saved, and the status message says the spend limit was reached. See the pricing tab for the current events.

Is scraping TikTok comments free?

You can try it on the Apify Free plan, which includes $5 of monthly platform credit. Free-plan runs work the same as paid runs. The credit is used up by the result and start charges plus the platform usage of your runs, so set a maximum cost per run when you start a run and do a small test run first.

The Actor has no run-wide row cap on any Apify plan: a run stops only at your own per-post, per-comment and per-profile limits, when TikTok has no more data, at a built-in page safety limit, or at your maximum cost per run.


⬇️ TikTok comments scraper input

To run TikTok Comments & Replies Scraper, you need at least one link in TikTok URLs or one username in TikTok usernames. You can fill in both. If both are empty, the run fails with a message asking you to add one. All other fields are optional.

Here's the prefilled example: it reads one public video, saves up to 10 rows from it and up to 2 replies under each comment, with no proxy at the start:

{
"urls": [
"https://www.tiktok.com/@gordonramsayofficial/video/7229884545150061851"
],
"commentsPerPost": 10,
"maxRepliesPerComment": 2,
"proxyConfiguration": {
"useApifyProxy": false
}
}

See the input tab for a full description of all fields. The first column is the label you see in the form; the second is the name used in JSON and the API.

Field in the formAPI nameWhat it doesDefault
TikTok URLsurlsVideo URLs, photo URLs, short share links (vm.tiktok.com, vt.tiktok.com, tiktok.com/t/), video IDs, profile URLs or @usernames, one per linenone
Maximum comments per post (replies included)commentsPerPostMaximum rows per post, top-level comments and replies together10
Maximum top-level comments per posttopLevelCommentsPerPostMaximum top-level comments per post. Replies don't count toward this limit, but they do count toward Maximum comments per postno limit
Include repliesincludeRepliesCollect the replies under each commenttrue
Maximum replies per commentmaxRepliesPerCommentMaximum replies per comment (0 = none)2
TikTok usernames (in Profile options)profilesUsernames (with or without @) or profile URLsnone
Videos per profileresultsPerPageHow many videos to take from each profile, counted separately for each profile section1
Profile sectionsprofileScrapeSectionsTake videos from Videos and/or RepostsVideos
Profile video sortingprofileSortingWhich videos are picked: Latest, Popular or Oldest (Videos section only)Latest
Videos published on or afteroldestPostDateUnifiedProfile videos published on or after a date or within a periodnone
Videos published on or beforenewestPostDateProfile videos published before a date (see the note below)none
Exclude pinned postsexcludePinnedPostsSkip videos the creator pinned to the profileoff
Add commenter profile detailsscrapeUserProfilesAdd each commenter's bio, verified badge and languageon
Custom map function (Python)customMapFunctionPython expression or function that reshapes each rownone
Proxy configurationproxyConfigurationOptional proxy to start the run withno proxy

Maximum comments per post (commentsPerPost)

This limit counts top-level comments and replies together. It's 10 by default, and if you leave the field empty, the platform still fills in 10. So a run with the defaults returns at most 10 rows per post, even when the video has thousands of comments. Set a higher number to get more.

How the limits work together for each post: comments are saved in the order TikTok returns them, each one followed by its replies (up to Maximum replies per comment). Collection for the post stops as soon as Maximum top-level comments per post (if set) or Maximum comments per post is reached, whichever comes first. If the row limit is reached in the middle of a thread, the rest of that thread is left out.

So to get a set number of top-level comments with their replies, set Maximum top-level comments per post and raise Maximum comments per post high enough to hold the replies too. For example, 20 top-level comments with up to 5 replies each need up to 120 rows.

  • ✅ Good: "topLevelCommentsPerPost": 20, "maxRepliesPerComment": 5, "commentsPerPost": 120
  • ✅ Good: "commentsPerPost": 200, "maxRepliesPerComment": 5
  • ❌ Bad: leaving commentsPerPost empty and expecting more than 10 rows per post

⚠️ Every saved row is charged, replies included. Use these limits to control your spend.

Replies (Include replies, Maximum replies per comment)

Replies are only requested for comments whose reply counter is above 0. Each comment is saved first, followed by its replies. TikTok can return fewer replies than its counter shows, for example when replies were hidden, deleted or filtered.

  • ✅ Good: "maxRepliesPerComment": 0 or "includeReplies": false when you only want top-level comments
  • ❌ Bad: expecting every comment to come with exactly maxRepliesPerComment replies

TikTok comment scraper by username (profiles, resultsPerPage)

For TikTok influencer research, add the creator's username to TikTok usernames (profiles), or paste profile URLs or @usernames into TikTok URLs. The Actor first picks the profile's videos and then reads their comments. Profiles that can't be opened (for example private, banned or not found) are skipped with a line in the log.

Videos per profile (resultsPerPage) is 1 by default, so you get the comments of only one video per profile unless you raise it. With both Videos and Reposts selected in Profile sections, you get up to this many videos from each section. Reposts only work when TikTok shows them to visitors; otherwise the reposts section gives 0 videos. Profile video sorting decides which videos are picked (Latest, Popular or Oldest) and applies to the Videos section only. It doesn't change the order of the comments.

  • ✅ Good: "profiles": ["gordonramsayofficial"], "resultsPerPage": 5
  • ❌ Bad: "profiles": ["gordonramsayofficial"] and expecting comments from many videos (you get 1 video)

⚠️ Videos per profile, Profile sections, Profile video sorting, the date filters and Exclude pinned posts only affect profile inputs, not direct video links.

Date filters (Videos published on or after / on or before)

Both filters (oldestPostDateUnified, newestPostDate) work on profile videos only, and dates are in UTC.

  • Videos published on or after accepts a date (YYYY-MM-DD), a period such as 7 days, 2 weeks, 3 months or 1 year (a month counts as 30 days and a year as 365 days), or a plain number of days. 1 day means today only, from 00:00 UTC, and 2 days means yesterday and today.

  • Videos published on or before is compared with 00:00 UTC of the date you pick, so videos posted later that same day are left out. To include a whole day, pick the next day.

  • ✅ Good: to include all of 31 January 2026, set "newestPostDate": "2026-02-01"

  • ❌ Bad: setting "newestPostDate": "2026-01-31" and expecting videos from the afternoon of 31 January

Commenter details and the custom map function

Add commenter profile details (scrapeUserProfiles) is useful for TikTok audience research. It looks up each unique commenter once per run and fills bio, verified and language in user (and region when TikTok shows it). Turn it off for faster runs; user.verified is then null.

Custom map function (Python) (customMapFunction) runs on every row before it's saved. Use a Python expression over record, such as {'id': record['cid'], 'likes': record['diggCount']}, or a full def map_function(record): .... Return None to drop a row: dropped rows aren't saved or charged. If the function fails on a row, the original row is kept. If it can't be compiled, it's ignored for the run.

Proxy configuration (proxyConfiguration)

You don't need a proxy to start. The run starts without a proxy and switches to Apify Proxy automatically when TikTok blocks or limits requests. You can also choose your own proxy settings, and the run then starts with them.


⬆️ TikTok comments scraper output

Results are stored in a dataset in the Output or Storage tab. You can view them as a table or JSON and download them in JSON, CSV, Excel, XML or HTML. In the JSON view or through the API, each row is a TikTok comments JSON object with the keys shown below. Seven ready-made views in the Output tab show different sets of columns: Overview, Comments & replies, Commenters, Engagement, Mentions & media, Video creator and Video & source. All rows of a run are also saved as one JSON file in the run's key-value store under the OUTPUT key.

Spreadsheet tips (CSV and Excel)

  • Pick your columns. A full export has many columns. To export TikTok comments to Excel or save TikTok comments to CSV with only what you need, pick the fields in the export dialog. For TikTok comment analysis, a good set is type, text, diggCount, createTimeISO, uniqueId, isReply, repliesToId and videoWebUrl. To look before you export, the Comments & replies view shows the thread columns (type, isReply, cid, repliesToId, text, diggCount, createTimeISO and more), and Overview shows text, likes, reply count, date, commenter and video link.
  • Pairs with the same value. Some fields are aliases: cid = id, diggCount = likeCount, createTimeISO = createdAt, replyCommentTotal = replyCount, isAuthorLiked = likedByAuthor and videoId = awemeId. Each pair holds the same value under two names, so you only need one of each.
  • Nested fields. user (the commenter's profile) and videoAuthor (the video creator) are groups of fields. In CSV and Excel they become separate columns named like user/nickname, user/verified or videoAuthor/followerCount, and lists such as mentions become numbered columns (mentions/0, mentions/1).
  • Threads. Filter on isReply and group by repliesToId to rebuild each thread.

JSON example

Results for the input example above. This is a real top-level comment row from a test run (long URLs and IDs are shortened with "…"; follower numbers are a snapshot and change over time):

{
"type": "comment",
"input": "https://www.tiktok.com/@gordonramsayofficial/video/7229884545150061851",
"inputSource": "https://www.tiktok.com/@gordonramsayofficial/video/7229884545150061851",
"submittedVideoUrl": "https://www.tiktok.com/@gordonramsayofficial/video/7229884545150061851",
"videoWebUrl": "https://www.tiktok.com/@gordonramsayofficial/video/7229884545150061851",
"videoId": "7229884545150061851",
"awemeId": "7229884545150061851",
"videoAuthorUniqueId": "gordonramsayofficial",
"cid": "7230306662946161414",
"id": "7230306662946161414",
"commentUrl": "https://m.tiktok.com/…",
"text": "Bro I think u forgot to add butter 💀",
"createTime": 1683436964,
"createTimeISO": "2023-05-07T05:22:44.000Z",
"createdAt": "2023-05-07T05:22:44.000Z",
"commentLanguage": "en",
"diggCount": 28088,
"likeCount": 28088,
"replyCommentTotal": 74,
"replyCount": 74,
"isAuthorLiked": false,
"likedByAuthor": false,
"pinnedByAuthor": false,
"isReply": false,
"repliesToId": null,
"replyToReplyId": null,
"threadId": null,
"uid": "317145745193930752",
"uniqueId": "goldens_nine",
"nickname": "SouSou 🖤",
"avatarThumbnail": "https://p16-common-sign.tiktokcdn.com/…/e002d9231f2850b029bb1ea4cf05972e.jpg",
"mentions": [],
"detailedMentions": [],
"images": [],
"videoReply": null,
"user": {
"id": "317145745193930752",
"secUid": "MS4wLjABAAAASx5KBuftdWwDBsVvR2cwFhFKobgFWhVQfz9tVqa9fN7JvntQ1JQSasy9S9qyDrqG",
"username": "goldens_nine",
"displayName": "SouSou 🖤",
"nickname": "SouSou 🖤",
"url": "https://www.tiktok.com/@goldens_nine",
"bio": "",
"avatarUrl": "https://p16-common-sign.tiktokcdn.com/…/e002d9231f2850b029bb1ea4cf05972e.jpg",
"verified": false,
"region": null,
"language": "en",
"hasEmail": null,
"hasPhone": null,
"coverImage": null
},
"videoAuthor": {
"id": "6747935906352907269",
"secUid": "…",
"username": "gordonramsayofficial",
"nickname": "Gordon Ramsay",
"url": "https://www.tiktok.com/@gordonramsayofficial",
"bio": "I cook sometimes too.....",
"bioLink": "GordonRamsay.com/",
"avatarUrl": "https://p16-common-sign.tiktokcdn.com/…/7310612651137040390.jpeg",
"verified": true,
"privateAccount": false,
"isOrganization": false,
"isSeller": false,
"language": "en",
"region": null,
"accountCreatedAt": "2019-10-18T17:42:11.000Z",
"followerCount": 40687561,
"followingCount": 572,
"likeCount": 729973028,
"videoCount": 712,
"friendCount": 302
}
}

Reply row example (illustrative)

This comment shows 74 replies, so with maxRepliesPerComment set to 2, up to 2 of its replies follow it in the dataset. The example below is illustrative, not real data: the field names are exact, but the values are made up, and the row is trimmed to the reply-related fields. A real reply row has the same keys as the comment row above.

{
"type": "reply",
"videoId": "7229884545150061851",
"cid": "7230000000000000001",
"text": "Example reply text",
"createTimeISO": "2023-05-07T06:00:00.000Z",
"diggCount": 120,
"isReply": true,
"repliesToId": "7230306662946161414",
"replyToReplyId": null,
"uniqueId": "example_user"
}

💡 TikTok comments scraper tips and advanced usage

How many comments can you scrape?

There is no run-wide row cap. Instead, every post, reply thread and profile has its own limits. Collection for a post stops at the first of these:

  • Maximum comments per post is reached (default 10 rows, replies included)
  • Maximum top-level comments per post is reached, if you set it
  • TikTok has no more comments for the post
  • a page of comments can't be loaded (rows already saved stay; if the first page fails, the video counts as failed in the run summary and has no rows)
  • a built-in safety limit on the number of comment pages per post

Replies under a comment stop at Maximum replies per comment (default 2), when TikTok returns no more replies or a reply page can't be loaded, at a built-in page safety limit, or when the post reaches Maximum comments per post. Profile videos stop at Videos per profile for each section, when the profile has no more videos or its video list can't be loaded, or at a built-in page safety limit.

On top of that, the whole run stops at your maximum cost per run. A quick test run shows what you'll get for your videos.

How to get faster or cheaper results

  • Start with the prefilled input, then raise Maximum comments per post step by step.
  • Set Maximum replies per comment to 0 (or turn off Include replies) if you only need top-level comments.
  • Turn off Add commenter profile details if you don't need commenter bios and verified badges; runs get faster.
  • In profile mode, keep Videos per profile low and use the date filters so comments are read only from the videos you need.
  • Set a maximum cost per run in Run options to cap your spend.

Run it on a schedule: weekly TikTok comment monitoring

The Actor has no built-in history or change tracking: each run is a snapshot of the comments TikTok shows at that moment. For ongoing TikTok social listening on your brand's account (or for TikTok competitor analysis on a rival's account), set up one recurring run:

  1. Fill in the input once: your brand's or a competitor's username in TikTok usernames, Videos per profile set to 5, Videos published on or after set to 7 days, and Maximum comments per post set to 200.
  2. Save the input as a task in Apify Console, so the same input is reused on every run.
  3. Open Schedules, create a schedule that runs weekly, and add your task to it.
  4. Compare the runs: comments with a cid that wasn't in last week's dataset are new, and createTimeISO tells you when they were written. A higher diggCount on the same cid shows which comments keep getting likes.

The relative date filter makes each weekly run read only the videos from the last 7 days instead of the whole profile.

Known issues

  • Reply threads can return fewer replies than replyCommentTotal, for example when TikTok hides deleted or filtered replies. The run summary in the log shows how many threads this affected.
  • Top-level comments aren't de-duplicated across pages (replies are de-duplicated within each thread). If TikTok repeats a comment on a later page, it's saved and charged twice.
  • If a commenter's profile can't be loaded in time, the row is saved without the extra details (user.verified is null).
  • If the video creator's profile can't be loaded, videoAuthor is null.
  • With a bare video ID as input, videoWebUrl contains the video ID where the creator's username would be. Paste the full video URL if you need the standard link.
  • Lines in TikTok URLs that aren't a recognized TikTok link, ID or username are skipped with a line in the log.

🔌 Integrations and API

Can I use TikTok Comments & Replies Scraper as a TikTok comments API?

Yes. The Apify API gives you a TikTok comment data API without building your own: you send the input as JSON, start a run, and read the rows back from the dataset in JSON, CSV or Excel. Use the apify-client NPM package for Node.js or the apify-client PyPI package for Python, and see the API tab for ready-to-use code. API callers can also send links in postURLs or startUrls; they're added to urls.

Get TikTok comments API example in Python

This short TikTok comment scraper Python script runs the input example above and prints a few fields of each row:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run_input = {
"urls": ["https://www.tiktok.com/@gordonramsayofficial/video/7229884545150061851"],
"commentsPerPost": 10,
"maxRepliesPerComment": 2,
"proxyConfiguration": {"useApifyProxy": False},
}
run = client.actor("insights_data/tiktok-comments-replies-scraper").call(run_input=run_input)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["type"], row["uniqueId"], row["diggCount"], row["text"])

Can I integrate TikTok Comments & Replies Scraper with other apps?

Yes. Connect it with other apps through Apify integrations: Make, Zapier, n8n, Slack, Google Sheets, Google Drive, Airbyte, GitHub, LangChain and more. Use webhooks to trigger actions when a run finishes. Three workflows that fit comment data:

  • Google Sheets for TikTok brand monitoring: add the Google Sheets integration to the weekly task from the schedule recipe above. Each finished run sends its rows to a sheet, where your team filters by text, sorts by diggCount and reads the feedback.
  • Slack alert for your team: add the Slack integration to the same task, so a channel gets a message with the run link every time new comments are ready.
  • Webhook to Make, Zapier or n8n: send a webhook when the run succeeds, read the dataset items in your scenario, keep the rows whose text mentions your product name and pass them to your help desk, CRM or a sentiment model.

Can I use TikTok Comments & Replies Scraper with AI agents (MCP)?

Yes. Through the Apify MCP server, Claude and other AI assistants can call the Actor as a TikTok comments MCP tool: the agent fills in the input, runs the Actor and reads the comments back as JSON. Open the MCP tab for setup steps.


🎵 Other TikTok scrapers and more from the same developer

TikTok Profile Scraper is our TikTok scraper for profiles and video stats, and the right pick if you also need views, shares or transcripts. TikTok Hashtag Scraper finds videos by hashtag. The other four collect posts and their engagement on other social and short-video platforms (comments with replies on Facebook and Bilibili), for the same kind of social listening.

ActorWhat it does
🎵 TikTok Profile ScraperA TikTok data scraper for profiles: videos, reposts, stories and playlists with views, likes, comments, shares, music, hashtags and author stats; optional followers, comments, transcripts and media downloads
#️⃣ TikTok Hashtag ScraperScrapes any TikTok hashtag in bulk: videos with captions, views, likes, comments, shares, saves, author stats, music, covers and video links, plus optional transcripts
📘 Facebook Post ScraperScrapes public Facebook posts from pages, profiles, groups and post links, with reactions by type, comments with replies, shares, photos, videos and views
🗨️ Search Threads By KeywordsSearches Threads by keyword, #hashtag, phrase or @username and returns post text, author, like, reply, repost and quote counts, and author followers
📺 Bilibili Scraper — Videos, Comments, Danmaku & Creator UploadsScrapes Bilibili videos, comments with replies, danmaku (bullet comments), creator uploads, profiles, rankings and trending searches
🎞️ Facebook Post and Reel ScraperScrapes Facebook posts, reels and videos from links, pages, profiles and groups, with views, reactions, comments, shares, caption, transcript and author

❓ TikTok comments scraper FAQ

TikTok Comments & Replies Scraper only reads public comments that anyone can see without logging in. Comments contain personal data such as usernames and profile details, so you need a legitimate reason to collect them and should follow rules such as GDPR and CCPA. Also take TikTok's Terms of Service into account. This is not legal advice; if you're unsure, ask a lawyer.

How does TikTok Comments & Replies Scraper work?

Think of it as a TikTok comments crawler for public pages: it doesn't log in and needs no cookies. You add links or usernames. For profile inputs, it first picks the profile's videos with your sorting and filters. Then it opens each public post, reads its comments page by page, and for comments that have replies it reads the replies up to your limit. It looks up each commenter's public profile once (optional) and each video creator's profile once, and saves every comment and reply as its own row as soon as a page is ready.

How is this TikTok comments extractor different from copying comments by hand?

TikTok Comments & Replies ScraperCopying comments by hand
Many videos or whole profiles✅ One run for a list of links or usernames❌ One video at a time
Replies linked to their parent✅ repliesToId on every reply❌ Manual
Likes, dates, commenter details✅ Structured fields❌ Retyped by hand
Scheduling and API✅ Apify schedules, API, integrations❌
Price$1.00 per 1,000 rows on the Free plan, down to $0.70 on Business, + start fee + platform usageYour time

Is there a TikTok comment extractor for whole profiles?

Yes. Add usernames to TikTok usernames or paste profile URLs into TikTok URLs, then raise Videos per profile (default 1). You can choose the Videos and Reposts sections, pick videos by Latest, Popular or Oldest, filter by date and skip pinned videos.

Can I use it as a TikTok replies scraper only?

Not directly. Replies are collected under their parent comments, so each reply row comes after its comment row. If you only want the replies, filter on isReply = true after you export. If you only want top-level comments, set Maximum replies per comment to 0 or turn off Include replies.

Can I download TikTok comments?

Yes. Every comment and reply is saved to a dataset you can download in JSON, CSV, Excel, XML or HTML from the Output tab, during or after the run. Note that it isn't a TikTok comments downloader for media: it saves comment text and details, not video files.

How do I export TikTok comments?

Open the Output tab, click Export, pick a format and, if you like, only the fields you need (see Spreadsheet tips). You can also read the dataset through the API. You don't need a separate TikTok comment exporter or browser extension.

Why am I getting fewer results than expected?

Check these common causes first:

  • Maximum comments per post is 10 by default and counts replies too.
  • In profile mode, Videos per profile is 1 by default. Also check the date filters and Exclude pinned posts, and remember that Videos published on or before leaves out videos posted later on the chosen day.
  • Check Maximum replies per comment (default 2) and whether Include replies is on.
  • Check whether the run hit your maximum cost per run.
  • TikTok can return fewer replies than the reply counter shows.

If a run finishes with "no TikTok videos found", no video could be taken from your input: the links weren't recognized, short links didn't lead to a video, profiles couldn't be opened (for example private, banned or not found), the profiles had no videos, no profile video matched your settings (date filters, pinned exclusion, hidden reposts), or the run stopped early because of an error (the log shows it). If it finishes with "no comments found", videos were found but no rows were saved: the videos have no public comments, their comments couldn't be loaded (counted as failed in the run summary), your custom map function dropped every row, rows failed to save, or the run stopped early because of an error. Both runs still finish as succeeded with 0 rows. A run fails with a status message when the input is invalid or has no link or username.


📧 Support and feedback

Found a bug or have a feature request? Please create an issue on the Issues tab and include your run link.

Need a custom solution, another field or help with a social media data project? Contact us at hello.insights.data@gmail.com.

Built and maintained by Insights Data.