TikTok Comments Scraper avatar

TikTok Comments Scraper

Pricing

from $0.40 / 1,000 comment scrapeds

Go to Apify Store
TikTok Comments Scraper

TikTok Comments Scraper

Every comment under a TikTok video with likes, reply count, date and the commenter profile. Replies optional. No login needed. Export CSV, Excel, JSON, XML.

Pricing

from $0.40 / 1,000 comment scrapeds

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge Banner

๐Ÿ’ฌ TikTok Comments Scraper

๐Ÿš€ Export every comment under a TikTok video in seconds. Paste the video links and each comment comes back as a flat row: the text, its likes, how many replies it drew, when it was posted, whether the creator liked it, and who wrote it and whether their account is verified. Replies come too, on request.

No account, no cookie, no session token. The Actor opens the same page a viewer opens and asks TikTok for the comments the way the site asks for them itself.

๐ŸŽฏ Target Audience๐Ÿ’ก Primary Use Cases
Brand and social teamsRead what an audience actually says under a campaign video
Creators and agenciesPull the comment thread of a post for reporting or moderation
ResearchersCollect public discussion around a topic, with timestamps
Lead and outreach teamsFind engaged accounts, with follower counts, under relevant videos

๐Ÿ“‹ What the TikTok Comments Scraper does

๐Ÿ’ก Why it matters: TikTok stopped answering comment requests made from outside its own pages. A plain HTTP call to the comment endpoint returns an empty body, and the mobile API refuses it outright. This Actor gets the full thread anyway, and at a fraction of a cent per hundred comments.

  • ๐Ÿ’ฌ Top-level comments in bulk, eight pages at a time: a measured run collected 2,183 rows from two videos in 139 seconds.
  • โ†ฉ๏ธ Replies on request, each returned as its own row and marked with the comment it answers.
  • ๐Ÿ‘ค The commenter, not just a name: username, display name, user ID, profile link, verified flag and a link to their profile.
  • ๐Ÿ“Œ Signals that matter: pinned comments and comments the video's creator liked are flagged.
  • โ†•๏ธ Order as you need it: most liked, most replied, newest or oldest, with pinned comments kept on top.
  • ๐ŸŽž๏ธ Video details on every row: caption, author, like count, comment count and upload date, so the export stands on its own.
  • ๐Ÿ”— Any link shape works: a share link, a browser link, a photo post, or just the numeric video ID.
  • ๐Ÿ’ธ Nothing is charged for a video that returns nothing. A private, removed or comments-off video costs you nothing.
  • ๐Ÿ” Clean data: one row per comment, the same 25 columns every time, N/A instead of blank cells, and error reserved for failures.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

A short walkthrough video is in production.

๐Ÿ“Š Output

FieldTypeDescription
๐Ÿ–ผ imageUrlstringThe commenter's profile picture
๐Ÿ†” commentIdstringTikTok's own comment ID
๐Ÿ’ฌ textstringThe comment itself
โค๏ธ likeCountintegerLikes on the comment
โ†ฉ๏ธ replyCountintegerReplies under the comment
๐Ÿ•’ createdAtstringWhen it was posted, ISO timestamp
โ†ช๏ธ isReplystringYes when the row is a reply
๐Ÿ”— parentCommentIdstringThe comment this one answers
๐Ÿ“Œ isPinnedstringYes when the creator pinned it
๐Ÿ’š likedByCreatorstringYes when the video's author liked it
๐Ÿ‘ค authorUniqueIdstringThe commenter's @username
๐Ÿท authorNicknamestringTheir display name
๐Ÿ†” authorIdstringTheir numeric user ID
๐Ÿ”— authorUrlstringLink to their profile
โœ… authorVerifiedstringYes when the account is verified
๐Ÿ” authorSecUidstringTikTok's stable secure user ID, for matching across runs
๐ŸŽฌ videoIdstringThe video's numeric ID
๐Ÿ”— videoUrlstringLink to the video
๐ŸŽฅ videoAuthorstringThe video's creator
๐Ÿ“ videoTitlestringThe video's caption
โค๏ธ videoLikeCountintegerLikes on the video
๐Ÿ’ฌ videoCommentCountintegerComments TikTok reports on the video
๐Ÿ“… videoCreatedAtstringWhen the video was posted
๐Ÿ•’ scrapedAtstringISO timestamp of the run
โš ๏ธ errorstringnull on a normal row

Example rows

{
"imageUrl": "https://p16-sign-va.tiktokcdn.com/example-avatar.jpeg",
"commentId": "7259870000000000000",
"text": "This shot of the nebula is unreal",
"likeCount": 1840,
"replyCount": 12,
"createdAt": "2026-08-14T19:22:41.000Z",
"isReply": "No",
"parentCommentId": "N/A",
"isPinned": "No",
"likedByCreator": "Yes",
"authorUniqueId": "stargazer",
"authorNickname": "Stargazer",
"authorId": "6800000000000000000",
"authorUrl": "https://www.tiktok.com/@stargazer",
"authorVerified": "No",
"videoId": "7259860470834007342",
"videoUrl": "https://www.tiktok.com/@nasa/video/7259860470834007342",
"videoAuthor": "nasa",
"videoTitle": "A look at the Ring Nebula",
"videoLikeCount": 982000,
"videoCommentCount": 5120,
"videoCreatedAt": "2026-08-14T15:00:03.000Z",
"scrapedAt": "2026-09-18T02:14:55.221Z",
"error": null
}
{
"imageUrl": "https://p16-sign-va.tiktokcdn.com/example-avatar-2.jpeg",
"commentId": "7259880000000000000",
"text": "Agreed, the colours are wild",
"likeCount": 43,
"replyCount": 0,
"createdAt": "2026-08-14T20:05:12.000Z",
"isReply": "Yes",
"parentCommentId": "7259870000000000000",
"isPinned": "No",
"likedByCreator": "No",
"authorUniqueId": "nightsky",
"authorNickname": "Night Sky",
"authorId": "6800000000000000001",
"authorUrl": "https://www.tiktok.com/@nightsky",
"authorVerified": "No",
"videoId": "7259860470834007342",
"videoUrl": "https://www.tiktok.com/@nasa/video/7259860470834007342",
"videoAuthor": "nasa",
"videoTitle": "A look at the Ring Nebula",
"videoLikeCount": 982000,
"videoCommentCount": 5120,
"videoCreatedAt": "2026-08-14T15:00:03.000Z",
"scrapedAt": "2026-09-18T02:14:56.004Z",
"error": null
}
{
"imageUrl": "https://p16-sign-va.tiktokcdn.com/example-avatar-3.jpeg",
"commentId": "7259890000000000000",
"text": "Pinned: full resolution image is on our site",
"likeCount": 7600,
"replyCount": 88,
"createdAt": "2026-08-14T15:31:00.000Z",
"isReply": "No",
"parentCommentId": "N/A",
"isPinned": "Yes",
"likedByCreator": "Yes",
"authorUniqueId": "nasa",
"authorNickname": "NASA",
"authorId": "6800000000000000002",
"authorUrl": "https://www.tiktok.com/@nasa",
"authorVerified": "Yes",
"videoId": "7259860470834007342",
"videoUrl": "https://www.tiktok.com/@nasa/video/7259860470834007342",
"videoAuthor": "nasa",
"videoTitle": "A look at the Ring Nebula",
"videoLikeCount": 982000,
"videoCommentCount": 5120,
"videoCreatedAt": "2026-08-14T15:00:03.000Z",
"scrapedAt": "2026-09-18T02:14:56.740Z",
"error": null
}

โœจ Why choose this Actor

  • ๐Ÿ”“ No login and no cookie. You never hand over an account, and nothing in your run can get an account restricted.
  • ๐Ÿ‘ฅ Richer commenters. Display name, user ID, verification and a profile link on every row, not just a username.
  • โ†ฉ๏ธ Replies as first-class rows, so a thread exports flat into a spreadsheet.
  • ๐Ÿ’ธ A video that returns nothing is not charged, and there is no start fee.
  • ๐Ÿงพ Charged per row, not per batch, so what you are billed matches what you can count in the dataset.

๐Ÿ“ˆ How it compares to alternatives

This ActorTypical alternative
LoginNeverSome ask for a session cookie
RepliesOptional, as their own rowsOften missing or nested
Commenter detailDisplay name, user ID, verified, profile linkUsername only
Video contextOn every rowUsually a separate run
Minimum chargeNoneUp to $3.00 per query on some

๐Ÿš€ How to use

  1. Create a free Apify account with $5 in credit, then open the TikTok Comments Scraper and paste your video links, one per line.
  2. Choose how many comments to take per video, and the maximum for the run.
  3. Turn on replies if you need whole threads.
  4. Run it, then download CSV, Excel, JSON or XML, or pull the dataset over the API.

Free-plan runs return up to 10 comments as a preview. Upgrade your Apify plan to collect up to 1,000,000 rows per run.

๐Ÿ’ผ Business use cases

  • Measure sentiment under a campaign video, with the exact wording customers used.
  • Moderate or archive the thread of your own posts.
  • Find engaged accounts under a competitor's video and see how large their following is.
  • Track how a comment section grows by running the same video on a schedule.

๐Ÿ”Œ Automating TikTok Comments Scraper

Schedule it from the Apify Console and it reruns on its own. Point a webhook at your warehouse and every finished run lands there. Comment IDs are stable, so repeated runs deduplicate cleanly.

๐ŸŒŸ Beyond business use cases

  • Keep the comments on a video you care about before it disappears.
  • Collect the replies to a public announcement for a class or a paper.
  • Settle an argument about what people actually said under a viral clip.

๐Ÿค– Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant with web access:

I want to export the comments of several TikTok videos. Look at https://apify.com/parseforge/tiktok-comments-scraper and tell me how to configure a run over 20 videos with replies included, what each of the 25 output fields means, and exactly when each event is charged.

โ“ Frequently Asked Questions

A share link, the link in your browser's address bar, a photo post link, or the bare numeric video ID. All of them resolve to the same video.

No. Nothing is logged in at any point, so no account of yours is exposed.

โ†ฉ๏ธ How do replies come back?

As their own rows, with isReply set to Yes and parentCommentId pointing at the comment they answer. Turn them off to keep the export to top-level comments only.

๐Ÿ’ฌ How many comments can I get from one video?

You can ask for up to 5,000 per video. How many actually come back is TikTok's decision: measured on a video with 2,702 comments, it served 1,557 before it stopped answering. The Actor pages eight requests at a time and keeps going through refusals, so it takes what the platform will give.

๐Ÿ’ธ When am I charged?

Per comment row delivered, per reply row when replies are on, and once per video for the video details when they come back. A video that returns no comments is never charged, and there is no start fee.

๐Ÿšซ Why did a video return nothing?

It is private, it was removed, or its owner turned comments off. The run logs which video it was and moves on without charging.

๐Ÿ‘ฅ What do I get about the commenter?

Every row carries the commenter's profile link, display name and verification flag, so the account is one click away.

๐Ÿ•’ Are the timestamps real?

Yes, they are TikTok's own creation times, converted to ISO format in UTC.

โš ๏ธ What do N/A values mean?

The field genuinely was not published. Blank cells are never used, so a spreadsheet column stays readable.

๐Ÿ“„ What output formats are supported?

CSV, Excel, JSON, XML, JSONL and RSS, from the dataset or the API.

โฐ Can I run this on a schedule?

Yes. Schedule it in the Apify Console and compare runs by comment ID to see what is new.

๐Ÿ”Œ Integrate with any app

The dataset is available through the Apify API the moment the run finishes. Use the run-sync-get-dataset-items endpoint for one-shot calls, webhooks to trigger downstream jobs, or the Make, Zapier, Airbyte and LangChain integrations listed on the Actor page.


๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form with your run ID, your input and what you expected.

โš ๏ธ Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by TikTok or ByteDance. It collects only publicly available data. You are responsible for using the collected data in compliance with applicable law, including GDPR and other privacy rules in your jurisdiction.