TikTok Comments Scraper avatar

TikTok Comments Scraper

Pricing

Pay per event

Go to Apify Store
TikTok Comments Scraper

TikTok Comments Scraper

Extract comments from TikTok videos including text, author info, likes, timestamps, and reply threads. Supports pagination, short URLs, and bulk video processing. Filter by keyword or date range. Export to JSON, CSV, or Excel. Pay per comment extracted.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What does TikTok Comments Scraper do?

TikTok Comments Scraper extracts comments from any TikTok video — no TikTok API key, no login, and no coding required. Paste one or more video URLs, set your limits, and the scraper returns structured comment data including author details, like counts, timestamps, and optional reply threads.

The actor handles TikTok's anti-bot protections automatically using a headless Playwright browser with proxy rotation. Every comment is returned as a clean JSON record ready to export to CSV, Google Sheets, or any downstream system. Start scraping with the prefilled example in under a minute.

Unlike browser extensions that break with every TikTok update, this cloud-based scraper runs 24/7 with no local setup. All platform costs — compute, proxy, storage — are included in the pay-per-comment price.


Who is TikTok Comments Scraper for?

📣 Social media managers and brand teams

  • Monitor brand mentions and sentiment across viral TikTok videos
  • Track campaign hashtag performance and measure audience reactions in real time
  • Spot negative comments early and manage reputation before they spread

📊 Market researchers and data analysts

  • Collect large comment datasets for sentiment analysis and NLP models
  • Compare audience reactions across competitor content and creators
  • Build ground-truth datasets for social media research papers and academic studies

🎨 Content creators and influencers

  • Understand which video topics generate the most engagement and replies
  • Identify your most active community members by likes and reply activity
  • Benchmark your comment volume and quality against similar creators in your niche

🔬 Researchers and journalists

  • Study discourse patterns on short-form video platforms at scale
  • Archive public comments from newsworthy TikTok videos before they are deleted
  • Analyze trends in user language, sentiment shifts, and emerging cultural topics

Why use TikTok Comments Scraper?

  • No TikTok API key or login required — scrapes public data directly from TikTok pages
  • Playwright-powered — handles TikTok's JavaScript-heavy comment loading that simple HTTP scrapers miss
  • Proxy rotation built in — Apify's residential proxy network bypasses rate limits automatically
  • Reply thread support — optionally fetch nested replies with includeReplies enabled
  • Pay-per-event pricing — pay only for comments actually extracted, not idle compute time
  • Runs in the cloud — no local setup, no browser management, no maintenance required
  • Schedule and automate — set recurring runs to monitor the same videos over time
  • Export anywhere — JSON, CSV, Excel, Google Sheets, or push via API and webhook
  • Batch processing — scrape multiple videos in a single run with one dataset output

What data can you extract?

💬 Comment dataFieldDescription
Comment texttextThe full comment body
Unique comment IDidTikTok's internal comment identifier
Like countlikesNumber of likes the comment received
Reply countrepliesNumber of replies under the comment
Posted timestampcreatedAtISO 8601 datetime when the comment was posted
Reply flagisReplytrue if this is a reply to another comment
Parent comment IDparentCommentIdLinks replies to their parent comment
👤 Author dataFieldDescription
Display nameauthorThe author's TikTok display name
Unique author IDauthorIdThe author's unique TikTok user ID
Avatar image URLauthorAvatarUrlDirect link to the author's profile avatar
🎬 Video contextFieldDescription
Video IDvideoIdTikTok's internal video identifier
Source video URLvideoUrlThe original URL you passed as input
Scrape timestampscrapedAtISO 8601 datetime when the data was collected

13 fields total per comment record.


How much does it cost to scrape TikTok comments?

This actor uses pay-per-event pricing — you pay only for comments actually scraped. No monthly subscription. All platform costs including proxy and compute are included.

Free ($5 credit)Starter ($29/mo)Scale ($199/mo)Business ($999/mo)
Run start fee$0.005$0.005$0.005$0.005
Per comment$0.003$0.003$0.003$0.003
1,000 comments~$3.01~$3.01~$3.01~$3.01

Higher-tier plans receive additional volume discounts on per-event pricing.

Real-world cost examples:

TaskCommentsEstimated cost
Quick sample: top 20 comments from 1 video20~$0.07
Campaign check: 100 comments from 5 videos500~$1.51
Monitoring run: 10 videos × 200 comments2,000~$6.01
Research dataset: 50 videos × 500 comments25,000~$75.01

The free $5 credit included with every new Apify account is enough for roughly 1,650 comments before you need to add payment.


How to scrape TikTok comments

  1. Open TikTok Comments Scraper on Apify Store
  2. Click Try for free — sign in or create a free Apify account
  3. Paste one or more TikTok video URLs into the Video URLs field
  4. Set Max comments per video (default: 20 — increase for larger datasets)
  5. Toggle Include replies if you want nested reply threads
  6. Click Save & Start
  7. Wait for the run to finish (typically 30–90 seconds per video)
  8. Click Export to download your data as JSON, CSV, or Excel

Example inputs for different scenarios:

Single video, top comments only:

{
"videoUrls": ["https://www.tiktok.com/@mr_top5_/video/7606927852495228174"],
"maxCommentsPerVideo": 50,
"includeReplies": false
}

Multiple videos with reply threads:

{
"videoUrls": [
"https://www.tiktok.com/@charlidamelio/video/7234567890123456789",
"https://www.tiktok.com/@khaby.lame/video/7234567890123456780"
],
"maxCommentsPerVideo": 100,
"includeReplies": true,
"maxRepliesPerComment": 10
}

Minimal test run (fast, cheap):

{
"videoUrls": ["https://www.tiktok.com/@mr_top5_/video/7606927852495228174"],
"maxCommentsPerVideo": 5,
"includeReplies": false
}

Input parameters

ParameterTypeDefaultDescription
videoUrlsarray of stringsTikTok video URLs to scrape. Each must be a full https://www.tiktok.com/@username/video/ID link.
maxCommentsPerVideointeger20Maximum number of top-level comments to extract per video.
includeRepliesbooleanfalseWhen enabled, also fetches reply comments nested under each top-level comment.
maxRepliesPerCommentinteger20Maximum replies per top-level comment. Only applies when includeReplies is true.

Output examples

Each comment is saved as one record in the dataset. Example top-level comment:

{
"id": "7606987654321098765",
"text": "This is actually insane, I can't stop watching 😂",
"author": "cooluser99",
"authorId": "6912345678901234567",
"authorAvatarUrl": "https://p16-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/avatar~c5_100x100.jpeg",
"likes": 1482,
"replies": 23,
"createdAt": "2024-11-12T14:33:00.000Z",
"videoId": "7606927852495228174",
"videoUrl": "https://www.tiktok.com/@mr_top5_/video/7606927852495228174",
"isReply": false,
"parentCommentId": null,
"scrapedAt": "2026-03-23T10:15:42.000Z"
}

Example reply comment (when includeReplies: true):

{
"id": "7607012345678901234",
"text": "@cooluser99 same, I watched it 10 times already",
"author": "tiktok_fan_2024",
"authorId": "7123456789012345678",
"authorAvatarUrl": "https://p16-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/avatar2~c5_100x100.jpeg",
"likes": 47,
"replies": 0,
"createdAt": "2024-11-12T15:01:00.000Z",
"videoId": "7606927852495228174",
"videoUrl": "https://www.tiktok.com/@mr_top5_/video/7606927852495228174",
"isReply": true,
"parentCommentId": "7606987654321098765",
"scrapedAt": "2026-03-23T10:15:45.000Z"
}

Reply records include isReply: true and a parentCommentId so you can reconstruct the full conversation thread.


Tips for best results

  • 🟢 Start small: Run with maxCommentsPerVideo: 20 first to validate your URL format and check output quality before scaling up.
  • 🔗 Use full video URLs: The actor requires complete https://www.tiktok.com/@username/video/VIDEOID format. Short links like vm.tiktok.com/... are not supported.
  • 💬 Reply threads are optional: Enabling includeReplies can multiply your comment count significantly on popular videos. Only enable it when you need nested conversation data.
  • 📅 Schedule recurring runs: Use Apify's built-in scheduler to monitor the same video URLs weekly and track comment volume and sentiment over time.
  • 📦 Batch your videos: Pass multiple URLs in a single run — the actor processes them sequentially and writes all results to one dataset.
  • ⏱️ Expect 30–90 seconds per video: TikTok comment sections are JavaScript-heavy. The actor waits for full page rendering before extracting data.
  • 🔄 Re-run to catch new comments: TikTok comments accumulate on trending videos. Re-run periodically to capture the latest activity without duplicating old records (use createdAt to filter).
  • 💡 Filter by isReply: Post-process your dataset to separate top-level comments from replies for cleaner analysis.

Integrations

TikTok Comments Scraper connects with 5,000+ apps through Apify's built-in integration layer.

📊 TikTok Comments → Google Sheets Automatically export every new run's comments into a shared spreadsheet. Use Apify's native Google Sheets integration to append rows in real time — ideal for social media teams tracking multiple campaigns in one dashboard without touching a spreadsheet manually.

💬 TikTok Comments → Slack alerts Connect via Make or Zapier: when a run finishes, post a summary (video URL, comment count, top liked comment) to your Slack channel. Get instant visibility the moment monitoring data refreshes.

⚡ TikTok Comments → Make / Zapier workflows Feed scraped comment text directly into sentiment analysis APIs (OpenAI, MonkeyLearn), CRM systems, or reporting dashboards. Trigger the workflow on a schedule or via webhook after each actor run completes.

🔁 Scheduled monitoring Set Apify to run TikTok Comments Scraper daily on a fixed list of competitor or brand videos. Build a time-series dataset to track engagement trends automatically — no manual work after the initial setup.

🔔 Webhooks for real-time processing Configure a run-finish webhook to POST the dataset URL to your own API endpoint. Your backend receives fresh comment data the moment the scraper completes — no polling, no delay.


Using the Apify API

Run TikTok Comments Scraper programmatically from any language or CI/CD pipeline.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/tiktok-comments-scraper').call({
videoUrls: ['https://www.tiktok.com/@mr_top5_/video/7606927852495228174'],
maxCommentsPerVideo: 50,
includeReplies: false,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} comments`);
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient(token='YOUR_API_TOKEN')
run = client.actor('automation-lab/tiktok-comments-scraper').call(run_input={
'videoUrls': ['https://www.tiktok.com/@mr_top5_/video/7606927852495228174'],
'maxCommentsPerVideo': 50,
'includeReplies': False,
})
items = list(client.dataset(run['defaultDatasetId']).iterate_items())
print(f"Scraped {len(items)} comments")
print(items[0])

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~tiktok-comments-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"videoUrls": ["https://www.tiktok.com/@mr_top5_/video/7606927852495228174"],
"maxCommentsPerVideo": 50,
"includeReplies": false
}'

Fetch results after the run completes:

$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"

Find your API token at apify.com/account/integrations. See the full Apify API documentation for webhooks, scheduling, and pagination.


Use with AI agents via MCP

TikTok Comments Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

Example prompts

Once connected, try asking your AI assistant:

  • "Use automation-lab/tiktok-comments-scraper to scrape the top 100 comments from this TikTok video and summarize what people are saying: https://www.tiktok.com/@mr_top5_/video/7606927852495228174"
  • "Scrape comments from these 3 competitor TikTok videos and identify the most common complaints and praise points"
  • "Pull TikTok comments from this viral video with replies included, then group them by sentiment and list the top 5 most-liked negative comments"

Learn more in the Apify MCP documentation.


TikTok comments are public data — they are visible to anyone visiting TikTok without logging in. Scraping publicly accessible information is generally considered legal, as affirmed by the 2022 hiQ Labs v. LinkedIn ruling in the United States, which established that scraping public data does not violate the Computer Fraud and Abuse Act.

Automation Lab's actors are built for ethical, responsible data collection:

  • Only public, non-login-protected content is accessed
  • No CAPTCHAs are bypassed; proxy rotation mimics normal browsing behavior
  • No private messages, account credentials, or non-public content is ever extracted

You are responsible for how you use the data. Before using scraped TikTok comments for commercial purposes, publishing, or research, review:

  • TikTok's Terms of Service
  • GDPR requirements if processing data about EU residents
  • Your jurisdiction's laws on automated data collection

For academic research and personal use, scraping public TikTok comments is broadly accepted practice. For commercial applications at scale, consult a lawyer familiar with your jurisdiction. See Apify's blog post on web scraping legality for a broader overview.


FAQ

How many comments can I scrape per run? There is no hard cap per run — set maxCommentsPerVideo as high as needed. TikTok loads comments in batches and very popular videos may have thousands of accessible comments. Most use cases work well with 100–500 comments per video. Very large jobs (500+ comments across many videos) may need the timeout increased beyond the default 5-minute window.

How much does it cost to scrape 1,000 TikTok comments? Approximately $3.01 total: $0.005 for the run start fee plus $3.00 for 1,000 comments at $0.003 each. The free Apify plan includes $5 in credits — enough for roughly 1,650 comments at no cost.

How is this different from the official TikTok API? TikTok's official Content Posting API does not expose public comments from arbitrary videos — it only gives brands access to their own content metrics. This actor scrapes public comment data from any video URL without requiring a developer account, API approval process, or official API access.

Why are some comments missing or fewer than the video's displayed count? TikTok applies server-side content filters — spam detection, regional restrictions, shadow banning — that hide certain comments even from public view. The scraper extracts all comments TikTok makes publicly visible. If the run completed without errors and returned fewer results than the displayed count, TikTok is filtering those comments before they reach the browser.

Can I scrape replies to comments? Yes. Enable includeReplies: true and set maxRepliesPerComment to control how many replies per comment are fetched. Reply records include isReply: true and a parentCommentId so you can reconstruct the full thread structure in your analysis.

Why did my run fail or time out? TikTok's anti-bot systems occasionally block requests even with proxy rotation — this is a transient issue that typically resolves within minutes. If you see consistent failures on specific video URLs, confirm the video is still public and accessible from a regular browser. For large runs across many videos, consider splitting them into smaller batches of 5–10 videos per run to stay within the default timeout.


Other social media scrapers

Looking for more social data tools? Explore other actors from Automation Lab:

Other TikTok tools

  • TikTok Scraper — scrape TikTok profiles, video metadata, views, likes, shares, and descriptions

YouTube tools

Instagram and Twitter/X

Reddit

  • Reddit Scraper — scrape Reddit posts and comments by subreddit, keyword, or URL

Review platforms