Tiktok Comments Scraper avatar

Tiktok Comments Scraper

Pricing

from $0.30 / 1,000 dataset items

Go to Apify Store
Tiktok Comments Scraper

Tiktok Comments Scraper

Effortlessly scrape Tiktok data: comments, users, and all the other insights. Overcome API limitations, and ensure real-time monitoring for seamless extraction.

Pricing

from $0.30 / 1,000 dataset items

Rating

4.9

(9)

Developer

epctex

epctex

Maintained by Apify Partner

Actor stats

25

Bookmarked

1.1K

Total users

34

Monthly active users

16 hours ago

Last modified

Share

Actor - TikTok Comments Scraper

TikTok Comments Scraper

Extract comments and replies from any TikTok video with transparent, event-based pricing.

The TikTok Comments Scraper supports the following features:

  • Extract comments from any public TikTok video by URL.

  • Gather author info, timestamps, like counts, and reply totals for each comment.

  • Optionally include replies for each comment with per-reply-thread pricing.

  • Limit output by page count or total item count for cost control.

πŸ’° Pricing

This actor uses event-based pricing β€” you only pay for what you use.

EventPriceNotes
Comment Query$0.003 per videoFirst ~15 comments included FREE
Reply Query$0.003 per comment threadFirst ~15 replies included FREE. Only charged when includeReplies is enabled.
Dataset Item$0.0003 per itemCharged for each comment/reply beyond the free ~15

Cost Examples

ScenarioChargesCalculationTotal
1 video, 15 comments1 list query$0.003$0.003
1 video, 100 comments1 list query + 85 items$0.003 + ($0.0003 Γ— 85)$0.029
5 videos, 100 comments each5 list queries + 425 items($0.003 Γ— 5) + ($0.0003 Γ— 425)$0.143
1 video, 50 comments + replies (10 threads, 20 replies each)1 list + 35 items + 10 reply queries + 50 items$0.003 + $0.011 + $0.030 + $0.015$0.059

Demo Mode & Free Users

Users on Apify's Free plan can use this actor in Demo Mode only. Free users can run the actor up to 5 times per month, with each run capped at a maximum of 10 items β€” just enough to test it out. Free users also cannot use the actor via API. To use this actor without limitations, subscribe to a paid plan on Apify. Subscribe here.

Bugs, fixes, updates and changelog

This actor is under active development. If you have any feature requests you can create an issue from here.

Input Parameters

The input of this actor should be JSON containing the list of TikTok video and photo URLs. Possible fields are:

  • startUrls: (Required) (Array) List of TikTok video and photo URLs. You should only provide the URLs of videos.

  • includeReplies: (Optional) (Boolean) Enable to scrape replies for each comment. Triggers a Reply Query charge per comment thread. Default is false.

  • endPage: (Optional) (Number) The end page limitation for the comments. You can limit the number of pages you want to retrieve the comments from. The endPage affects each of the video URLs individually.

  • maxItems: (Optional) (Number) You can limit scraped comments. This should be useful when you search through the videos where there are a lot of comments.

  • customMapFunction: (Optional) (String) JavaScript function to transform each output comment/reply.

  • outputConnector: (Optional) (String) MCP connector to deliver the results to β€” pick one (see Send Results to Notion, Todoist and More).

  • deliverTarget: (Optional) (String) Where the connector writes β€” paste the URL or ID (Notion example: https://www.notion.so/My-Comments-24f8a1b2c3d44e5f8a9b0c1d2e3f4a5b); some services need none.

  • deliverMode: (Optional) (String) perPost (one record per comment/reply) or summary (one roll-up per run). Default is perPost.

  • deliverMaxItems: (Optional) (Number) Cap on how many records perPost delivers (ignored in summary).

TikTok Comments Scraper Input example

{
"startUrls": [
"https://www.tiktok.com/@deborahyowa/video/7173615947603922181?is_copy_url=1&is_from_webapp=v1",
"https://www.tiktok.com/@argenby/video/7171782248281165058?is_copy_url=1&is_from_webapp=v1",
"https://www.tiktok.com/@cznburak/video/7161858444830461190?is_copy_url=1&is_from_webapp=v1"
],
"includeReplies": false,
"maxItems": 200,
"endPage": 1
}

Send Results to Notion, Todoist and More

Skip the manual exports β€” the TikTok Comments Scraper can deliver its results directly into the tools you already work in, through Apify MCP Connectors:

  1. Authorize a connector (Notion, Todoist, or any service whose MCP server offers non-destructive write tools) once in Console β†’ Settings β†’ API & Integrations β†’ MCP connectors.
  2. Pick it from the Send results to Notion, Todoist, … dropdown.
  3. Fill in where and how to write:
    • Destination target β€” paste the URL or ID (Notion example: https://www.notion.so/My-Comments-24f8a1b2c3d44e5f8a9b0c1d2e3f4a5b); share it with your connector first via Notion's β€’β€’β€’ β†’ Connections menu. For structured columns use a page URL (the Actor builds the database for you) or a database that already has columns β€” an empty database only receives titles. (Some services need no target.)
    • Write mode β€” perPost writes one record per comment/reply; summary writes a single roll-up for the run.
    • Max records to deliver (optional) β€” cap on how many records perPost delivers.

Notion, structured like a spreadsheet: for a table of typed columns, point the target at a Notion page β€” the Actor auto-creates a database from the data, one matching, correctly-typed column per field (URL, number, date, text). Pointing at an existing database fills the columns it already has (matched by name); an empty database receives only the title, and the rest of each record goes to the row body β€” the connector can't add columns to an existing database without destructive access it never requests. Nested fields are flattened into columns too β€” e.g. user becomes user.unique_id, user.nickname, … β€” so everything is sortable and filterable in the grid. Fields that don't fit a column go to the row's page body, so nothing is lost.

Your credentials stay yours: the Actor talks to your services exclusively through your own authorized connector and only ever uses non-destructive write tools β€” it cannot delete or overwrite anything you already have. Delivery is best-effort and runs after the scrape: if a connector is misconfigured or a delivery fails, your run still finishes normally with all results intact β€” the failure is reported in the run log, never by failing the run. If the run is about to hit its timeout, delivery stops early so the run still succeeds, and the log tells you how many records were delivered.

During the Run

During the run, the actor will output messages letting you know what is going on. Each message always contains a short label specifying which page from the provided list is currently specified. When items are loaded from the page, you should see a message about this event with a loaded item count and total item count for each page.

If you provide incorrect input to the actor, it will immediately stop with failure state and output an explanation of what is wrong.

TikTok Comments Export

During the run, the actor stores results into a dataset. Each item is a separate item in the dataset.

You can manage the results in any language (Python, PHP, Node JS/NPM). See the FAQ or our API reference to learn more about getting results from this TikTok Comments actor.

Other TikTok Scrapers

If you need different functionalities or all at once, we have solutions for each of them. You can check;

Scraped TikTok Comments Properties

The structure of each comment looks like this:

Comment Detail

{
"inputSource": "https://www.tiktok.com/@deborahyowa/video/7173615947603922181",
"cid": "7173734747360674586",
"text": "thanks for the tutorial debs",
"create_time": 1670265312,
"digg_count": 15,
"reply_comment_total": 2,
"comment_language": "en",
"aweme_id": "7173615947603922181",
"is_author_digged": false,
"reply_id": "0",
"user": {
"uid": "6804848813665485826",
"unique_id": "nescafepinggg",
"nickname": "el",
"signature": "foam clay crafting",
"avatar_thumb": {
"url_list": [
"https://p16-common-sign.tiktokcdn-eu.com/..."
]
},
"region": "MY",
"language": "en",
"has_email": false,
"is_phone_binded": false,
"cover_url": null
}
}

Contact

Please visit us through epctex.com to see all the products that is available for you. If you are looking for any custom integration or so, please reach out to us through the chat box in epctex.com. In need of support? business@epctex.com is at your service.