TikTok Comments Scraper avatar

TikTok Comments Scraper

Pricing

from $0.29 / 1,000 comment scrapeds

Go to Apify Store
TikTok Comments Scraper

TikTok Comments Scraper

Export public TikTok video comments with author details, likes, reply counts, timestamps, and stable IDs for research, moderation, and analysis.

Pricing

from $0.29 / 1,000 comment scrapeds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Share

Export TikTok comments and replies from public video or photo URLs. Use this TikTok comments scraper to scrape TikTok comments into analysis-ready JSON, CSV, Excel, or Google Sheets rows—without a TikTok login or API key.

Input example

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

Output example

{
"commentId": "6718425908423475205",
"text": "The detail in this is amazing",
"authorUsername": "example_user",
"authorName": "Example User",
"authorId": "123456789",
"authorAvatarUrl": "https://p16-sign.tiktokcdn.com/avatar.jpeg",
"likeCount": 42,
"replyCount": 3,
"createdAt": "2019-07-29T18:31:20.000Z",
"isReply": false,
"parentCommentId": null,
"videoId": "6718335390845095173",
"videoUrl": "https://www.tiktok.com/@scout2015/video/6718335390845095173",
"fetchedAt": "2026-08-13T14:00:00.000Z",
"sourceSessionId": "0c47a389-927c-42c5-a624-c679dd31422d",
"extractionStatus": "ok",
"missingFields": [],
"isPinned": false,
"commentLanguage": "en"
}

What data can you export?

FieldDescription
commentIdTikTok comment identifier
textComment text
authorUsernamePublic TikTok username
authorNamePublic display name
authorIdPublic author identifier
authorAvatarUrlPublic avatar URL
likeCountComment likes
replyCountNumber of replies reported by TikTok
createdAtISO 8601 publication time
isReplyWhether the row is a reply
parentCommentIdParent ID for reply rows; otherwise null
videoIdSource post identifier
videoUrlSource URL supplied in input
fetchedAtISO 8601 collection time
sourceSessionIdSession identifier useful for run diagnostics
extractionStatusok or partial
missingFieldsSource fields unavailable on this row
isPinnedWhether TikTok marks the comment as pinned
commentLanguageLanguage code when TikTok supplies one

All 19 keys are present on every saved row. Replies are separate rows so exports remain easy to filter and join.

Who is it for?

  • Social media teams monitoring audience reactions and brand mentions.
  • Researchers and analysts building sentiment or discussion datasets.
  • Marketing teams comparing engagement across campaigns or competitor posts.
  • Journalists and archivists preserving public discussion around newsworthy videos.
  • Community managers identifying highly liked comments and active participants.

Input settings

SettingTypeDefaultDescription
videoUrlsstring[]requiredPublic TikTok video/photo URLs or numeric post IDs
maxCommentsPerVideointeger20Top-level comments per post (1–10,000)
includeRepliesbooleanfalseSave replies as linked rows
maxRepliesPerCommentinteger20Replies saved per parent (0–1,000)
maxConcurrencyinteger1Posts processed concurrently (1–3)
requestTimeoutSecsinteger30Per-request timeout (10–120 seconds)
proxyConfigurationobjectnoneOptional Apify or custom proxy configuration

Input recipes

Several posts with replies

{
"videoUrls": [
"https://www.tiktok.com/@scout2015/video/6718335390845095173",
"https://www.tiktok.com/@jenna_bushhager/video/7223827494913215786"
],
"maxCommentsPerVideo": 100,
"includeReplies": true,
"maxRepliesPerComment": 10,
"maxConcurrency": 2
}

Fast validation run

{
"videoUrls": ["7149523510589754670"],
"maxCommentsPerVideo": 5
}

Pricing

This Actor uses pay-per-event pricing:

  • Run started is charged once when valid scraping work begins.
  • Comment scraped is charged only for each comment row successfully saved.

See the live Pricing tab for current rates for your Apify plan tier. Apify platform usage may be billed separately according to your plan.

Tips and limits

  • Start with 20 comments and increase the limit after validating your post.
  • A post may return fewer rows than its displayed total because TikTok filters, removes, or limits public comments.
  • Deleted, private, age-restricted, or region-restricted posts may be unavailable.
  • Reply collection can substantially increase run time and row count.
  • Successful rows from other posts are preserved if one input fails.
  • Re-running a post can capture newer comments; use commentId to deduplicate across runs.
  • The Actor collects only comments visible on public posts without logging in. Follow TikTok's terms and applicable privacy rules.

TikTok comments API usage

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/tiktok-comments-scraper').call({
videoUrls: ['https://www.tiktok.com/@scout2015/video/6718335390845095173'],
maxCommentsPerVideo: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python

from apify_client import ApifyClient
client = ApifyClient(token='YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/tiktok-comments-scraper').call(run_input={
'videoUrls': ['https://www.tiktok.com/@scout2015/video/6718335390845095173'],
'maxCommentsPerVideo': 50,
})
items = list(client.dataset(run['defaultDatasetId']).iterate_items())

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~tiktok-comments-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"videoUrls":["6718335390845095173"],"maxCommentsPerVideo":50}'

Use with AI agents via MCP

Connect an MCP-compatible client to:

https://mcp.apify.com?tools=fetch_cat/tiktok-comments-scraper

Example prompt: “Extract 100 comments from these TikTok posts and summarize recurring positive and negative themes.”

FAQ

How can I export comments from a public TikTok video?

Add public video URLs to videoUrls, choose a comment limit, and run the Actor. Download the resulting dataset as JSON, CSV, or Excel.

Can I scrape TikTok comment authors, likes, replies, and timestamps?

Yes. Each row includes author identity fields, like and reply counts, creation time, and stable comment and video IDs when publicly available.

Can it scrape replies?

Yes. Enable includeReplies; every reply includes isReply: true and its parentCommentId.

Why did I receive fewer comments than requested?

The requested value is a maximum. TikTok may expose fewer public comments, and removed or filtered comments are not returned.

Can I process several posts in one run?

Yes. Add multiple values to videoUrls. Each post uses an independent session, and successful output is preserved when another target fails.

Use a full post URL or numeric post ID. Redirect-only short links are not accepted as input.

Support

Use the Issues tab on the Actor page and include the public post URL, input, and run ID. Do not post private credentials or cookies.