Retrieve comments for a TikTok video

View all TikTok Profiles, Videos & Sounds API endpoints →

Retrieve comments using the required video_id path string, not a full video URL. The optional max_cursor query input is a pagination string; omit it for the first request. Successful observed responses have status=ok and a data object containing status_code, comments, cursor, has_more and total. A populated probe returned 50 comments with cursor=50, has_more=1 and total=6574; these are sample observations, not a fixed page size or guaranteed count. Observed comment fields are aweme_id (parent video ID), cid (comment ID), text, create_time (numeric creation-time value), digg_count (like count), reply_comment_total (reply count), reply_id, reply_to_reply_id and user. Observed user identity fields include uid, unique_id, nickname and sec_uid. A negative-control probe returned HTTP 200 with data.status_code=0, comments=null, cursor=0, has_more=0 and total=0. Handle that as an empty sample, not proof that a video is nonexistent or has no public discussion. A nonzero has_more signals continuation, but mapping response cursor to request max_cursor has not been verified. No request page-size control or separate reply-fetch operation is documented here; a reply count does not establish that reply bodies are included.

API Features

Video-linked comment records Observed comments carry cid and aweme_id alongside text, allowing records to retain both their own identity and the parent video link.
Author and creation-time context The observed user object includes uid, unique_id, nickname and sec_uid; create_time supplies a numeric creation-time value for each comment.
Comment engagement and reply indicators Observed records include digg_count, reply_comment_total, reply_id and reply_to_reply_id. These fields do not guarantee that every reply body is returned.
Populated and null collection handling Probes showed both a 50-comment page and an HTTP 200 result with comments=null. Collectors must tolerate either collection shape.
Explicit continuation signals Observed cursor, has_more and total fields describe the returned page. The request accepts max_cursor, but the exact cursor mapping remains unverified.

Live API Demo

GET /api/project/tiktok/video-comments

Request cost is temporarily unavailable. No price is assumed.

View pricing

API Response (JSON)

{}
curl -X GET 'https://api.opendata-api.com/api/project/tiktok/video-comments?key=<API_KEY>&video_id=7468030505628224790'
📢
Need Help?
If you encounter API issues or need other API requirements, please contact us.
Contact Us

Use Cases

Frequently asked questions

Should video_id contain a TikTok URL?

No. Supply the video identifier as a string in the video_id path field. The documented example is 7468030505628224790, not a full video URL.

Which comment and author fields were observed?

Observed comment records include aweme_id, cid, text, create_time, digg_count, reply_comment_total, reply_id, reply_to_reply_id and user. The observed user object includes uid, unique_id, nickname and sec_uid. Additional fields should not be assumed from this sample.

How do max_cursor, cursor and has_more relate?

max_cursor is the optional request string; cursor and has_more were observed in the response. A populated probe had cursor=50 and has_more=1. Omit max_cursor initially and verify how the returned cursor maps to a continuation request before automating pagination; it is not documented as a page number.

Does comments=null mean that the video does not exist?

Not reliably. An HTTP 200 negative-control response had status_code=0, comments=null, cursor=0, has_more=0 and total=0. Normalize the null collection to an empty sample, but do not use that shape alone to assert that a video is missing or has no public discussion.

Can I choose the page size or expect 50 comments every time?

No page-size parameter is documented for this operation. One populated probe contained 50 comments and reported total=6574, but neither value is a guarantee for another video or request.

Does reply_comment_total include all reply text?

No such guarantee is established. It is an observed reply-count field; reply linkage fields also appear, but this operation does not document a separate reply-fetch action or a complete conversation export.

Related operations

Guides

View Subscription Plans →