TikTok Comments Scraper — Replies & Threads avatar

TikTok Comments Scraper — Replies & Threads

Pricing

from $0.50 / 1,000 results

Go to Apify Store
TikTok Comments Scraper — Replies & Threads

TikTok Comments Scraper — Replies & Threads

Collect TikTok video comments with automatic pagination. Optionally save replies as separate rows with parent IDs under one predictable total result limit.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

ToolzerHub

ToolzerHub

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Collect the top-level comments on a TikTok video, paginated automatically.

TikTok Video Comments Scraper pages through a video's comment section, one dataset row per comment, with optional reply collection using the same result limit and price.

Predictable limits for comments and replies

Provide the video ID and set Max Results as a hard limit across all saved parent and reply rows. Enable Add Comment Replies when you need thread replies, then use Max Replies Per Comment to stop one busy thread from consuming the total. Set either limit to 0 only when you intentionally want that limit unbounded.

Scrape a video's comments

Enter a video ID, cap all saved rows with Max Results, and optionally paginate replies with a separate per-comment limit.

FieldTypeRequiredDescription
aweme_idstringYesTikTok video (aweme) ID, or a full video URL (https://www.tiktok.com/@
maxItemsintegerNoMaximum total comment rows to save, including replies. Set 0 for no limit.
enrichRepliesbooleanNoPaginate replies and save each as a separate comment row. Replies count toward Max Results.
maxRepliesPerCommentintegerNoMaximum replies to save for each top-level comment. Replies also count toward Max Results. Set 0 for no per-comment limit.
{
"aweme_id": "7530466721379978522",
"maxItems": 20,
"enrichReplies": true,
"maxRepliesPerComment": 3
}

One row per comment

Top-level comments use parent_comment_id: null and is_reply: false. Reply rows use the parent comment's ID and is_reply: true. The Actor preserves the raw comment fields and overlays stable comment_id, comment_text, and engagement aliases; it never embeds a reply collection inside its parent row.

Reply pages are followed until Max Replies Per Comment, the overall Max Results value, or TikTok's last page is reached. Parents that report zero replies do not trigger an unnecessary reply request.

💬 Comment identity

FieldTypeDescription
comment_idmixedTikTok comment ID.
parent_comment_idmixedParent comment ID for reply rows; null for top-level comments.
is_replymixedWhether this row is a reply to another comment.
aweme_idstringTikTok video ID.
comment_textmixedComment text, for comment results.

📊 Engagement signals

FieldTypeDescription
statsobjectEngagement stats (likes/comments/shares/plays or followers/following/hearts), when available.
{
"aweme_id": "7530466721379978522",
"comment_id": "7662423877628674824",
"parent_comment_id": null,
"is_reply": false,
"comment_text": "example comment"
}

Cost of a comments run

Every saved parent or reply row is billed once as one result. Reply-page requests do not trigger a separate add-on charge.

Apify's free credits may cover a small comment-and-reply test with a low Max Results value.

Max Results is a hard total across parent and reply rows; Max Replies Per Comment prevents one thread from consuming that total.

Responsible comment-data use

This Actor extracts publicly available TikTok content. It should not be used to collect private user data. Make sure your use case complies with applicable privacy laws, TikTok's terms, and your own legal obligations. If you are unsure, consult a qualified lawyer.

Run this Actor from code

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
run = client.actor("toolzerhub/tiktok-comments-scraper").call(run_input={
"aweme_id": "7530466721379978522",
"maxItems": 20,
"enrichReplies": true,
"maxRepliesPerComment": 3
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Node.js

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_APIFY_API_TOKEN" });
const run = await client.actor("toolzerhub/tiktok-comments-scraper").call({
"aweme_id": "7530466721379978522",
"maxItems": 20,
"enrichReplies": true,
"maxRepliesPerComment": 3
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

More Actors

Look up the video itself, or search for more videos.

  • Bulk TikTok Video Scraper — URLs, Stats & Music — Fetch multiple public TikTok videos from IDs, full video URLs, or vt/vm share links. Export one row per video with captions, timestamps, engagement statistics, and music metadata.
  • TikTok Video Search Scraper — Full Details — Search public TikTok videos by keyword with automatic pagination. Export video IDs, captions, timestamps, statistics, and music data, with optional full-detail enrichment per result.
  • TikTok Profile Videos Scraper — Bulk Posts — Collect videos posted by a TikTok profile using a username or secUid. Paginate automatically and optionally enrich every result with complete video, statistics, and music details.

ToolzerHub support

Use the Issues tab on the Actor page for bug reports, missing fields, and feature requests.

Contact: contact@toolzerhub.com