TikTok Comments Scraper avatar

TikTok Comments Scraper

Pricing

from $1.00 / 1,000 comments

Go to Apify Store
TikTok Comments Scraper

TikTok Comments Scraper

Scrape the comments and replies of public TikTok posts - text, authors, likes, and timestamps.

Pricing

from $1.00 / 1,000 comments

Rating

0.0

(0)

Developer

Harpoon

Harpoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape the comments and replies of any public TikTok post - text, authors, likes, and timestamps - as one clean dataset. Paste post URLs, press Start, and export JSON/CSV/Excel.

What can this Actor do?

  • All comments on a post - top-level comments paginated up to your max_comments cap.
  • Replies included (optional) - fetch each comment's replies too; they are fetched in parallel and capped per comment so runs stay fast.
  • Author details - username, nickname, id, and avatar for every commenter.
  • Engagement signal - likes per comment, plus the comment's own reply count.
  • Reply threading - replies carry is_reply: true and their parent_comment_id, so you can rebuild threads.
  • Deduplicated - a comment never appears twice, even across pages.

Why use this Actor?

  • No code required - the input form is prefilled with a working example; press Start and it runs as-is.
  • Fast replies - replies are fetched concurrently (configurable), not one-by-one.
  • Reliable at scale - rotating proxy pool, request hedging, and automatic retries handle TikTok's variability.
  • Clean schema - a single flat row per comment, ready for your warehouse, sheet, or dashboard.
  • Pay per result - you only pay for the comments that actually land in the dataset.

How to use it

  1. Open the Input tab.
  2. Paste one or more post URLs into Posts.
  3. Set Max comments per post (default 100).
  4. Leave Include replies on to also capture replies, and set Max replies per comment (default 20).
  5. Press Start and download your data from the Output tab.
{
"posts": ["https://www.tiktok.com/@mahmoudridaabbas/video/7510595766524710149"],
"max_comments": 100,
"include_replies": true,
"max_replies_per_comment": 20
}

Accepted post references: https://www.tiktok.com/@user/video/<id>, /photo/<id>, or a bare numeric post id.

Output

One dataset row per comment (and per reply):

{
"id": "7679295720671396616",
"post_id": "7510595766524710149",
"post_url": "https://www.tiktok.com/video/7510595766524710149",
"text": "free palestina❤‍🩹",
"created_at": 1787975380,
"like_count": 141,
"reply_count": 2,
"is_reply": false,
"parent_comment_id": "",
"author_id": "7614149955695461394",
"author_username": "fladosinagaa331",
"author_nickname": "tipis tipis 🜲",
"author_avatar_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/a66dd4701510d688a34ef0cb5...",
"language": "en",
"scraped_at": "2026-09-18T14:07:26Z"
}

A reply to that comment looks like:

{
"id": "7679295720671396620",
"post_id": "7510595766524710149",
"post_url": "https://www.tiktok.com/video/7510595766524710149",
"text": "@fladosinagaa331 ❤‍🩹",
"created_at": 1787975450,
"like_count": 3,
"reply_count": 0,
"is_reply": true,
"parent_comment_id": "7679295720671396616",
"author_id": "7614149955695461394",
"author_username": "fladosinagaa331",
"author_nickname": "tipis tipis 🜲",
"author_avatar_url": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/a66dd4701510d688a34ef0cb5...",
"language": "en",
"scraped_at": "2026-09-18T14:07:26Z"
}
FieldDescription
idComment id
post_idNumeric id of the post
post_urlCanonical post URL
textComment text
created_atUnix creation timestamp
like_countLikes on the comment
reply_countNumber of replies the comment has
is_replytrue for replies, false for top-level comments
parent_comment_idThe top-level comment a reply belongs to (empty for top-level)
author_id / author_username / author_nickname / author_avatar_urlCommenter identity
languageDetected comment language
scraped_atWhen the row was collected (ISO 8601)

Pricing

This Actor is billed per 1,000 results (one result = one comment or reply). See the Pricing tab for the current rate. A run that returns no comments is not charged.

FAQ

Do I need cookies or a login? No. Public posts only - no TikTok account required. The Actor uses a managed signature service and rotating residential proxies under the hood.

Do replies count toward max_comments? No. max_comments caps top-level comments; replies are additional rows bounded by max_replies_per_comment.

How do I turn replies off? Clear Include replies in the input. Top-level comments are always fetched.

Can I run several posts at once? Yes. Add one post URL per line; they are fetched in parallel.

Limitations

  • Only public posts.
  • Comments TikTok hides or filters are not returned.
  • Very large threads take longer; raise max_replies_per_comment or TT_REPLY_CONCURRENCY (PROXY_*/secrets) to tune speed versus depth.
  • Result order follows TikTok's own comment ranking.

Integrate with your stack

Export the dataset as JSON, CSV, Excel, or XML, or pull it from the Apify API. You can also run this Actor from the Apify MCP server so AI agents can call it directly.