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
Live API Demo
🔒 Sign in to try it live
Log in to call this API with your own API key. New accounts get 100 free credits — no card required.
Log in / Sign upNo active API key found. Create one in your Dashboard, then reload this page. Dashboard →
/api/project/tiktok/video-comments API Response (JSON)
{} curl -X GET 'https://api.opendata-api.com/api/project/tiktok/video-comments?key=<API_KEY>&video_id=7468030505628224790'
Query Result
Use Cases
- Build a manual review queue for questions and complaints on one selected video using comment text, author identifiers and creation-time values.
- Export a bounded comment sample to CSV, retaining the parent video ID and deduplicating by cid before combining saved pages.
- Test a comment collector against both populated pages and comments=null so an empty result does not become a false service-outage or deleted-video alert.
- Prioritize comments for human follow-up using observed like and reply counts without assuming that the full reply conversation has been retrieved.
- Prototype resumable collection with cursor and has_more bookkeeping, verifying the max_cursor continuation mapping before automating multi-page runs.
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.