TikTok Comments Scraper API — Public Comments & Replies avatar

TikTok Comments Scraper API — Public Comments & Replies

Pricing

from $0.50 / 1,000 results

Go to Apify Store
TikTok Comments Scraper API — Public Comments & Replies

TikTok Comments Scraper API — Public Comments & Replies

Export public TikTok video comments and optional first-level replies with text, authors, likes, timestamps, mentions and parent IDs. HTTP-first extraction with explicit source and thread limits.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

Coor Yu

Coor Yu

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Categories

Share

TikTok Comments Scraper exports public video comments and first-level replies with text, authors, likes, timestamps, mentions and parent IDs for feedback or moderation research. It does not classify sentiment.

No TikTok login, user cookie or user-supplied upstream key is needed; Apify account/API authentication still is. Private, deleted, moderated or restricted content is not recovered.

Free-plan preview: First 50 video URLs, per-video/per-thread requests capped at 50 (including 0), and 50 saved comment/reply rows total. Paid plans avoid this developer restriction, not other input, pagination, timeout or budget limits.

Quick start

Use full canonical video URLs—not profiles, tags, photo routes or unresolved share links. Example input, not a live-availability claim:

{
"videoUrls": [
"https://www.tiktok.com/@dafeiju7/video/7648048288498863374"
],
"commentsPerVideo": 20,
"includeReplies": true,
"repliesPerComment": 5,
"dataSource": "auto",
"maxConcurrency": 6,
"maxRequestRetries": 1,
"requestTimeoutSecs": 30,
"proxy": { "useApifyProxy": false }
}

Start small: reply rows are additional to the parent-comment limit. Targets are not guaranteed delivered quantities. Export JSON, CSV or Excel.

Extraction modes

dataSourceReachable path
auto (default)Direct TikTok HTTP, then TikWM HTTP for failed videos, then non-residential browser recovery for videos still failing.
tiktokDirect TikTok HTTP only; no browser or proxy. Any failed video makes the run fail even when earlier videos produced saved rows.
tikwmIndependent TikWM HTTP only; no browser or proxy. Any failed video makes the run fail even when earlier videos produced saved rows.
browserTikTok Playwright route only, with public-page signing and optional non-residential proxy.

HTTP uses no configured proxy. Browser recovery uses Apify DEFAULT unless disabled; residential/custom settings are ignored. Proxy-setup failure continues with direct egress. Access blocks can still prevent data.

Input fields

FieldInput-schema defaultMeaning and limits
videoUrlsrequiredArray of full URLs such as https://www.tiktok.com/@username/video/{id}. Empty/unparseable entries and links without /video/{numeric ID} are skipped.
commentsPerVideo100Maximum top-level comments per video, 0–5000; 0 removes the requested count bound, not pagination/runtime limits.
includeRepliesfalseFetch replies for selected top-level comments with reported replies.
repliesPerComment20Per-parent reply target, 0–500; 0 removes the requested count bound. Browser passive capture can exceed this target.
dataSourceautoauto, tiktok, tikwm or browser.
maxConcurrency61–20 simultaneous videos; direct TikTok requests share a global cap. Browser pages are capped at two.
proxyenabled if omitted at runtimeBrowser-only non-residential settings; HTTP does not use them.
headlesstrueBrowser-only setting.
maxRequestRetries10–5 browser retries. The entry point uses 2 if absent without schema defaults. Does not change HTTP's fixed three-attempt policy.
requestTimeoutSecs3010–300 seconds for browser navigation. Entry-point fallback is 45 if absent without schema defaults; HTTP has separate fixed timeouts.

The two default discrepancies above are implementation facts, not proposed schema changes. Set these values explicitly when stable configuration matters.

Output and numeric semantics

One row is a comment or reply: commentId, videoId, videoUrl, text, timestamps, likes/reply counts, flags, author and mentions. Parents use depth: 0; replies use depth: 1 and parentCommentId. Depth 2+ is not implemented despite broader schema wording.

  • diggCount/replyCount are source counters; missing/unparseable values become 0. Reported replies are not delivered reply-row counts.
  • createTimeISO converts Unix seconds to UTC (empty if missing); scrapedAt is collection time.
  • Missing isAuthorLiked/isPinned flags become false. TikWM lacks these flags, so both are always false there—not verified negatives.
  • Direct HTTP lacks video-author ID, so author.isVideoAuthor is false. Browser compares IDs; TikWM compares URL handles. Neither verifies live ownership.
  • Verification/author fields are source interpretations. Direct/browser mentions use structured metadata; TikWM extracts them from text.

No row-level source/precision label exists. Counters and false flags are not independently verified; retain the run mode and logs for provenance.

Current pricing and billing

Current effective event prices in USD:

Apify planPer saved comment or replyPer 1,000 rows
FREE$0.00250$2.50
BRONZE, SILVER, GOLD, PLATINUM, DIAMOND$0.00050$0.50

The FREE plan is not a zero-priced event tier. Each saved default-dataset row is billed through apify-default-dataset-item; replies cost the same as comments. Empty/failed video targets do not add placeholder error rows. Results saved before a later failure remain available and billable.

apify-actor-start is $0.005 per GB of memory, minimum one event/run, including zero-output starts. Default 512 MB uses the minimum; higher memory can require more events. Compute, storage, transfer and applicable DEFAULT-proxy usage are separately billed to the running user, even in failed/empty runs. No request/custom event or downstream Apify Actor is configured. TikWM is an independent service; retries/recovery consume usage without guaranteeing rows. Event prices are not total run costs. See the Pricing tab.

Reliability, pagination and limitations

  • No complete-thread guarantee: direct HTTP caps each feed at 2,000 pages (50 requested items/page). TikWM uses numeric cursor/total paging, capped at 1,000 pages without usable totals. Browser caps at 1,000 signed iterations/feed plus handler timeout.
  • HTTP replies are capped after per-feed ID deduplication. Browser passive-sniffer replies are filtered to retained parents but are not finally trimmed per parent, so repliesPerComment is not a strict browser output/billing cap.
  • Direct/TikWM feed collection deduplicates IDs within feeds, and the browser route deduplicates within a video handler. There is no shared run-wide comment-ID registry across duplicate video-ID inputs or alternative URL forms. Avoid submitting the same video repeatedly.
  • Direct HTTP attempts use a 15-second timeout, TikWM uses 30 seconds, and both allow up to three attempts total. TikWM starts are spaced by about 1.25 seconds within a run. Browser request/handler policies are separate.
  • HTTP extraction can fail as a whole for a video when an optional reply request fails; in auto that video moves to the next source. Partial rows held in memory are not necessarily saved before fallback.
  • No usable video seed or zero saved-result extraction causes failure. tiktok/tikwm modes additionally fail on any failed video; auto/browser can finish with partial results when at least one target yields rows. Inspect logs for unresolved targets and use the actual dataset size rather than pre-truncation log counts.
  • TikTok can hide comments or replies because of region, moderation, deletion, privacy or anonymous-access restrictions. Ranking and counts change over time. No private-content or access-control bypass is supported.

FAQs

Will 0 export every comment? It requests beyond the normal count target, but page caps, source visibility, Free-plan preview, run time and budgets can stop collection earlier.

Are pinned/liked/author flags definitive? No. Missing data can become false, and TikWM lacks two of these flags. Direct HTTP cannot identify the video author through the current mapper.

How do I control reply costs? Start with includeReplies: false, or small finite limits. Prefer an HTTP-only mode when strict per-thread trimming matters; browser passive capture can exceed the reply target.

  • TikTok Scraper — public video metadata from profiles, tags, searches and direct URLs.
  • TikTok Creator Videos — discover available public videos from known creators before collecting comments.

Use public data in accordance with applicable laws, TikTok terms and upstream-provider policies.