TikTok Comments of a video API
Comments of a video from TikTok, returned as JSON rows you can save to CSV.
Comment fields (mode comments)
| Field | What it is |
|---|---|
commentId |
Comment ID |
parentCommentId |
ID of the comment this replies to; null for a top-level comment |
videoId |
The video |
text |
Text of the comment |
likeCount, replyCount |
Likes and number of replies |
createdAt |
Time, ISO 8601 UTC |
textLanguage |
Language code TikTok detected |
isPinned, isLikedByCreator |
Pinned by the creator, liked by the creator |
authorId, authorHandle, authorName, authorSecUid |
Public identity of the commenter |
authorAvatarUrl |
Profile picture link (temporary) |
authorBio, authorRegion, authorVerified |
Bio as published, country code and verified flag, as TikTok shows them |
type |
comment |
The input that produced this run
Mode comments. Parameters as sent, with what each one does.
| Parameter | Value | What it does |
|---|---|---|
mode | "comments" | What to get: videos by keyword, hashtag, profile, sound, repost list, playlist, photo search or explore category; profiles by keyword or similar to a profile; sounds or places by keyword; the sounds a profile has made;... |
videos | ["7694335322922044703"] | Video IDs (7694335322922044703) or full video links (https://www.tiktok.com/@khaby.lame/video/7694335322922044703). Short vm.tiktok.com, vt.tiktok.com or tiktok.com/t/ share links work in videoDetail mode; for... |
includeReplies | true | Also collect the replies of comments that have 3 or more replies. Replies are delivered right after their comment, count toward the limit for that video, and are charged like comments. |
maxResults | 10 | Maximum items for each keyword, hashtag, profile, sound, video or category (up to 1000). Video details, profile details and analytics return one record per input, so the limit rarely matters there. A search inside... |
19 fields in every comment
From the first record of the run above. Identity fields of ordinary users are masked on this site.
| Field | Type | Example |
|---|---|---|
type | str | comment |
commentId | str | 7694337701600068373 |
parentCommentId | null | null |
videoId | str | 7694335322922044703 |
text | str | I'm Muslim [Photo] |
likeCount | int | 7190 |
replyCount | int | 77 |
createdAt | str | 2026-10-08T16:40:10Z |
textLanguage | str | en |
isPinned | bool | false |
isLikedByCreator | bool | false |
authorId | str | <masked> |
authorHandle | str | <masked> |
authorName | str | <masked> |
authorSecUid | str | <masked> |
authorAvatarUrl | str | <masked> |
authorBio | null | null |
authorRegion | str | <masked> |
authorVerified | str | <masked> |
A real run, 19 fields per record
Run on 2026-11-09 with input {"mode": "comments", "videos": ["7694335322922044703"], "includeReplies": true, "maxResults": 10}. Personal fields of ordinary users are masked here.
| text | textLanguage | likeCount | replyCount | createdAt |
|---|---|---|---|---|
| I'm Muslim [Photo] | en | 7190 | 77 | 2026-10-08T16:40:10Z |
| [Sticker] | un | 226 | None | 2026-10-08T16:43:38Z |
| [Sticker] | un | 157 | None | 2026-10-08T16:42:55Z |
| [Sticker] | un | 66 | None | 2026-10-08T17:27:00Z |
| [Sticker] | un | 3 | None | 2026-10-08T20:07:01Z |
| [Sticker] You | en | 9 | None | 2026-10-08T21:46:29Z |
All 19 fields in one record
typecommentcommentId7694337701600068373parentCommentIdvideoId7694335322922044703textI'm Muslim [Photo]likeCount7190replyCount77createdAt2026-10-08T16:40:10ZtextLanguageenisPinnedisLikedByCreatorauthorIdauthorHandleauthorNameauthorSecUidauthorAvatarUrlauthorBioauthorRegionauthorVerified
What one comment costs
Start fee (run-start) · $0.00005 · For each keyword, hashtag, profile, sound or category you give it, and for each video (comments), profile (followers, following) or keyword (keywordSuggest) in those modes. In videoDetail, profile and videoAnalytics it is charged once per run, not per input. The first one is charged when the first request succeeds, even if that request returns nothing. Each further one is charged before that input's first request and is kept even if that input then fails or returns nothing.
Run this request yourself
The same input as above, three ways.