Douyin Video Comments

https://api.sandbase.ai/v1/api/douyin/app-v3/video-comments

Get the comments on a Douyin video: comment text, publish time, like count, reply count and commenter location, with cursor pagination.

Price
$0.0015USD / callFirst 100 calls per day free (shared per organization)
Method
POST
Response
JSON
Parameters
1 required · 2 optional
Production route

Try the model

Playground

Open playground
Input
Video id
Number Please keep the default, otherwise there will be BUG.
Cursor, used for paging, the first page is 0, the second page is the cursor value in the first response.
OutputExample
Responseoutputs · 91.3 KB · 2,186 lines
[
  {
    "data": {
      "comment_common_data": "MS4wLjAAAAAAwrNmCYV5CrWQtUEyh4GLteOX6vKuBY7v2CpauO7_d4owTbfwoEFROqT8JVOwucjs1X0vr9yv5lhLk-BdrgW70u5kQqR2EFBS7PP30ONbDmJm230-gf06Vs1rVfZc6hsncBuwAaV8jM5ChTd6qKmvcMx_0xmHpMzb-0xgNxJnNnLrUNfGP6G9UpY-R3ppvM_E3rL3AJl9gIXRZUEZ3261XrdvgHPZPbxzGy-6YnsFgL-YZLvSs1TVZ6jFMbKE1tqys52WcOdqJ4xY7AOCyKHpMKdzDjec6U1TX_LycOzhpRlZGFu5PtMavHdSEvGaaL_F9uDdEGfzOLMkk6ZhF44HA65fAsy-E4jDB0RFFuzm9G4HEyj7wR5LWzolIJwpgKHW7AJW19xl-a14IwmPLkhzzZ32E6_-NKO8luojGGhacM6dnEl9I_0nwR7HC43yvXzhVZ00aTkO-hvP2AyGGsDBnn7IN2vYzQbf4JItJTAe_XfowjEhtYunUEFNhniSEHwM4gZdSdAzlL___tdmyLdLUMmWAPbL0ek54_MH50kDTOiduTFQJ3ExUtH26Hoomcym_C6IOg1ofIAmWasxX1bpW_fcO2nLgha6WW6AMNFNcVnBHRWoTADytHqSod8NwbmUYB_KLPGSJ1pKgIGFOXmyj6Rl-jX9p0AyF3ErnKMbSLCQa7sKQDJOmgNbwG2nfFK8Fruq52tu2fKgIRaHKfNJS7t3_-fD_V9eVQKgExVNBIq2ebUJiL-AHmV-RIbzn15uJuxeMZsaoaHFGooXvR71n1qRoiKTki0Pw7uNeoTMr1lWt_VhdsWjf7o3pv2qGwzZB2pk8IO0--GRbLf5Nn3rOMnVLU6gBP5ko2M48oB7omTfVggnqJr-N-RoeIjjVRzMJ8KHk8L8aKNq409uCi5Pde5yGEaqQWcGAMiTeqqVnN4OmBAlNwYpcDQ-sSyAtGwrWhsgZc-DG0ECKDGjuCJkhFLJiwKLG3YteEoLAgnKS1HbsujKeigwcAnNp0hpDtlc-Hv8EWrd2QW1-qFdfvRjHY-lcIakio-6A8nyJRTlhPz_iKxI9rH2xfQNT2IsGAsFcjcgk6g8WjMxnAjeih_NNk644DNCzeENe0WTabgSw4Zg8g1I2jKHVa0wpDK6yot17ZvWAMNa1WTU7XxsocMsVJOAfd4QKHPA6o-y_3s_HDHG5-hzZeP1OnLDAPH9iKOSRR9gjx77SQtiiB0vARj66tBnAAZURSGAoiitH7_8A431hpHWHocO0VvO8M7eV790tkbZnYudxxmYNu_nvX5Z_KjOabubPZcCoSeSAcVVU89Sa-2HePPGMkad0AMoDN6HVukiYeuO4II3tha3PGOD4cg33rqyZps3P9Hp9GF2YpE2IlRPgFE7KS8VabEXPhjfmFUWnrdtBok7ZbAoidOpWEYPa8txZwtHwUW0wCuUMz3iW0XA2qeSfjN3ykgBhUvZZVlqzyF-lgng-EaheTuIkl0RjthJlFknSlU5HtyryeB_92uPFmSyw-F_g5Kd-zrqJ_o4Ot73XEM0nt10u8ccHLcwTcDKS2XwJupF_ghsIUPPyRsVTFWOqi9Ps31gDG5xH-PItzZDvbwXLJFBJ9BRDwzxD-rya5wljsKQlfEozF0NRPi19gHCOIJj8_1lbt2YH41CuhSkmEDWNeFAT3Api0uG_w1m4Qz1NAzOsb0sragFqidDOaoenL5aLx_kx3VYbFMn06ZGwy8YoF6oMBLgm1hCAT2fviXnIVFteVkr0-OULWtsfjDaNOcMsyUsLEyMg2RfiIr7KewNZ3lZ5C1UZoTClqNThjLonOKABqQGSufU3srYHuOX0GPR8MJsIISuZ5ySJwfQ6OoiNjfQoEKJJ7DyM4ktZ_j-ICYMNSQ0q822LBHMbG76j-2b-0zmVj2mDlJRJwmV7Vs648uaIFB0xHnK5dXLwmSel_Ub0l2RF4Fn_0VFQ6m_MLBlZmQwSuBZToJJWXqcH7fzfzDttPbzi7uRi5xDeRJpwItqcCN1rI3bytqK2xpKmVEqfLwOtzG9A8_resPcjz2Xpwo33r4IJgackwtvzFCyCC9q3ZOOzFRdFhVpIo34xYpARaJN4ATVoAypxzsQXbDaz39FP_JRsTZWuJEeOIX4q7zneLN0JN9bEyZ6wGRJaQX_bff8q9-CDc-5QKheyyh9KOgORHk4D9Qb64-ziHUvBv2opwP0pxIGuzVwn21pMTTdllzwm-zX3flsRhoL4c_Ds5SZDkbCZt78TEkdvpkq6U4xBxla6YWi2i2QlIBKV7ZjhTj65sKW-WXOPlbyq3ovk4TenLYAMrGrJDITKfrNP3r0_lwTwMejHsdRXXfp60pI62iTq6taTNbEmSqAt3YaiF1J5r_iv8zzgddSfYPMLrb9IM6bhoE",
      "comment_config": {},
      "comment_insert_bars": null,
      "comments": [
        {
          "aweme_id": "7448118827402972455",
          "can_collect": false,
          "can_share": true,
          "cid": "7448331808838320959",
          "comment_token": "MS4wLjAAAAAAKVrL3xPOJsZnpHiPIwjcbgei3lmBJxKD-dyHr0BYvry03k9scRFpJuMkAe1dbbOcXLQ1rTPRezFR1WU62cvza3cSKPWdsLtReBZ9jgoj59C0zTgUsxs9dBIozsiiM8VLw8ChmS_pUp9Pm0CidDx5ot9BQbzdjWL-wcIg9_3rtSL9jq7OdVYQzhzh0YQVJp1mWWk5hacU8qa0pbRS_05nX3hmAhjLYK3YQSNjRlrl4JQ",
          "content_type": 1,
          "create_time": 1734210865,
          "decorated_emoji_info": null,
          "digg_count": 69,
          "ent_parachute_tip": 0,
          "enter_from": "recommend",
          "image_list": null,
          "ip_label": "上海",
          "is_author_digged": false,
          "is_folded": false,
          "is_hot": true,
          "is_note_comment": 0,
          "is_user_tend_to_reply": false,
          "item_comment_total": 57,
          "label_list": null,
          "label_text": "",
          "label_type": -1,
          "level": 1,
          "merge_comment_label": null,
          "reply_comment": null,
          "reply_comment_total": 13,
          "reply_id": "0",
          "reply_to_reply_id": "0",
          "sort_tags": "{\"top_list\":1}",
          "status": 1,
          "text": "这样讲基础上是可以的,但事实上这样非常容易形成误导。第一,线程也并不是在一个时间片中完成的。换句话来说,即便分成线程,系统时间片依然会轮询。但正常的系统中与RTOS系统中两者表现并不相同。只说windows或linux下的话,每个线程依然是由时间片控制,所以完成的时间并不完全基于任务量的多少。还要考虑任务优先级等各种因素,这个必须要提示的内容。第二,每个线程重入并不固定到固定的核心(时间片用完线程进入阻塞状态,然后再下获得时间片不一定被分配到上次工作的CPU核心上。第三,不要用代码来演示,即便用代码来演示也必须说明,分配线程并非是代码分配,程序只负责将代码打包,等待系统的调用。也就是分配线程根本就是系统在起做用。但问题是,代码中开辟了100个线程,其实就是开辟了100个线程,甚至你可以认为它们是同时运行的。因为开辟线程其实只是一个包,线程开辟后状态是阻塞而已。所以程序为了防止开辟过程线程(线程数多少与内存有关),一般可以考虑使用线程模式,通过信号量来控制线程的开辟。意思是在一个8核心的一般会开辟16个线程,然后逐个完成。完后一个后再开线程,而不是说并发任务可以随便开线程。",
          "text_extra": [],
          "text_music_info": null,
          "user": {
            "ad_cover_url": null,
            "avatar_schema_list": null,
            "avatar_thumb": {
              "height": 720,
              "uri": "100x100/aweme-avatar/aweme_default_avatar.png",
              "url_list": [
                "https://p3.douyinpic.com/aweme-avatar/aweme_default_avatar.png~tplv-dy-shrink-adapter:96:96.heic?from=2064092626",
                "https://p3.douyinpic.com/aweme/100x100/aweme-avatar/aweme_default_avatar.png.heic?from=2064092626",
                "https://p3.douyinpic.com/aweme/100x100/aweme-avatar/aweme_default_avatar.png.jpeg?from=2064092626"
              ],
              "width": 720
            },
            "ban_user_functions": [],
            "batch_unfollow_contain_tabs": null,
            "batch_unfollow_relation_desc": null,
            "can_set_geofencing": null,
            "card_entries": null,
            "card_entries_not_display": null,
            "card_sort_priority": null,
            "cf_list": null,
            "cha_list": null,
            "commerce_user_level": 0,
            "contrail_list": null,
            "cover_url": null,
            "creator_tag_list": null,
            "data_label_list": null,
            "display_info": null,
            "endorsement_info_list": null,
            "familiar_visitor_user": null,
            "follower_list_secondary_information_struct": null,
            "followers_detail": null,
            "geofencing": null,
            "homepage_bottom_toast": null,
            "identity_labels": null,
            "im_role_ids": null,
            "interest_tags": null,
            "is_ad_fake": false,
            "item_list": null,
            "link_item_list": null,
            "need_points": null,
            "new_story_cover": null,
            "nickname": "用户3439801425229",
            "not_seen_item_id_list": null,
            "not_seen_item_id_list_v2": null,
            "offline_info_list": null,
            "personal_tag_list": null,
            "platform_sync_info": null,
            "private_relation_list": null,
            "profile_component_disabled": null,
            "profile_mob_params": null,
            "region": "CN",
            "relative_users": null,
            "sec_uid": "MS4wLjABAAAAFbgfAIlvflslRNaNQRSEyY4rX_hNvam2XXG7V0FDyjI",
            "secret": 0,
            "short_id": "1997307764",
            "signature_extra": null,
            "special_people_labels": null,
            "text_extra": null,
            "type_label": null,
            "uid": "109201297107",
            "unique_id": "",
            "user_permissions": null,
            "user_tags": null,
            "verification_permission_ids": null,
            "white_cover_url": null
          },
          "user_buried": false,
          "user_digged": 0,
          "video_list": null
        },
        {
          "aweme_id": "7448118827402972455",
          "can_collect": false,
          "can_share": true,
          "cid": "7467763338786210614",
          "comment_token": "MS4wLjAAAAAAQ3L-agnn8ZRFm3JLv526hlyTEglbxGkTbJIuvfm9dr83d9WEJ6COkdWUEv3d8kNbs6tP38cr8O4W4PGyfUpxXk6VTP5CumzWUCy5sSGgHq2tNBo9PMOMk0j0sZMUVl9o04yd6ut8RbtiuLHf1KYnFx7qKbVJAWi_4J_73hvo-v84BYkBPdabnGAvj29WFwY28w2zfXOk2yqrB6hfUFvzH21b4dOXGu2HdbhRVDq6Bc0",
          "content_type": 1,
          "create_time": 1738724150,
          "decorated_emoji_info": null,
          "digg_count": 1,
          "ent_parachute_tip": 0,
          "enter_from": "homepage_hot",
          "image_list": null,
          "ip_label": "湖南",
          "is_author_digged": false,
          "is_folded": false,
          "is_hot": true,
          "is_note_comment": 0,
          "is_user_tend_to_reply": false,
          "item_comment_total": 57,
          "label_list": null,
          "label_text": "",
          "label_type": -1,
          "level": 1,
          "merge_comment_label": null,
          "reply_comment": null,
          "reply_comment_total": 3,
          "reply_id": "0",
          "reply_to_reply_id": "0",
          "sort_tags": "{\"top_list\":1}",
          "status": 1,
          "text": "线程和进程之分,一个核可以开一个线程,一个线程可以切片开多个进程[思考]",
          "text_extra": [],
          "text_music_info": null,
          "user": {
            "ad_cover_url": null,
            "avatar_schema_list": null,
            "avatar_thumb": {
              "height": 720,
              "uri": "100x100/aweme-avatar/tos-cn-i-0813c001_okCeCAmyAA9fgIBVf8hZOEAfAeAefdrfQiAA79i",
              "url_list": [
                "https://p3.douyinpic.com/aweme-avatar/tos-cn-i-0813c001_okCeCAmyAA9fgIBVf8hZOEAfAeAefdrfQiAA79i~tplv-dy-shrink-adapter:96:96.heic?from=2064092626",
                "https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-i-0813c001_okCeCAmyAA9fgIBVf8hZOEAfAeAefdrfQiAA79i.heic?from=2064092626",
                "https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-i-0813c001_okCeCAmyAA9fgIBVf8hZOEAfAeAefdrfQiAA79i.jpeg?from=2064092626"
              ],
              "width": 720
            },
            "ban_user_functions": null,
            "batch_unfollow_contain_tabs": null,
            "batch_unfollow_relation_desc": null,
            "can_set_geofencing": null,
            "card_entries": null,
            "card_entries_not_display": null,
            "card_sort_priority": null,
            "cf_list": null,
            "cha_list": null,
            "commerce_user_level": 0,
            "contrail_list": null,
            "cover_url": null,
            "creator_tag_list": null,
            "data_label_list": null,
            "display_info": null,
            "endorsement_info_list": null,
            "familiar_visitor_user": null,
            "follower_list_secondary_information_struct": null,
            "followers_detail": null,
            "geofencing": null,
            "homepage_bottom_toast": null,
            "identity_labels": null,
            "im_role_ids": null,
            "interest_tags": null,
            "is_ad_fake": false,
            "item_list": null,
            "link_item_list": null,
            "need_points": null,
            "new_story_cover": null,
            "nickname": "鲲鲲(学习版)",
            "not_seen_item_id_list": null,
            "not_seen_item_id_list_v2": null,
            "offline_info_list": null,
            "personal_tag_list": null,
            "platform_sync_info": null,
            "private_relation_list": null,
            "profile_component_disabled": null,
            "profile_mob_params": null,
            "region": "CN",
            "relative_users": null,
            "sec_uid": "MS4wLjABAAAAzlfAohi5AEIhxM_IVJ4AUG-m7F9iFh5WhXjyqIjW1Jk",
            "secret": 0,
            "short_id": "1701148208",
            "signature_extra": null,
            "special_people_labels": null,
            "text_extra": null,
            "type_label": null,
            "uid": "106083842527",
            "unique_id": "",
            "user_permissions": null,
            "user_tags": null,
            "verification_permission_ids": null,
            "white_cover_url": null
          },
          "user_buried": false,
          "user_digged": 0,
          "video_list": null
        },
        {
          "aweme_id": "7448118827402972455",
          "can_collect": false,
          "can_share": true,
          "cid": "7448483521444283146",
          "comment_token": "MS4wLjAAAAAA_ZCeobIAgLiDge3D1lldk4vc7xNPn2Ddexa-C1MJN4yzTmwVt-MYlhUX0RuFrgbwDw1fn8YT2AAvXvM9IduiuyZUTfziYRrKUbFXgBZTa-m1CEI7YHO4qIc13QjEviQoUbKfKWm4Xt5M1WopFE6vWQe5twZOMEMf0ZOZnxI_rgMN6Cqu_0-1P_GCkWp4YdUUHl1P1zWE35MF_U2yotwbvwbsi28ur-lZSZMsMKtMk_g",
          "content_type": 1,
          "create_time": 1734235217,
          "decorated_emoji_info": null,
          "digg_count": 2,
          "ent_parachute_tip": 0,
          "enter_from": "homepage_hot",
          "image_list": null,
          "ip_label": "广东",
          "is_author_digged": true,
          "is_folded": false,
          "is_hot": true,
          "is_note_comment": 0,
          "is_user_tend_to_reply": false,
          "item_comment_total": 57,
          "label_list": [
            {
              "text": "作者赞过",
              "type": 20
            }
          ],
          "label_text": "",
          "label_type": -1,
          "level": 1,
          "merge_comment_label": null,
          "reply_comment": null,
          "reply_comment_total": 3,
          "reply_id": "0",
          "reply_to_reply_id": "0",
          "sort_tags": "{\"top_list\":1}",
          "status": 1,
          "text": "多核的缺点是访问同一个内存还得排队来,一个一个来,被某个核心访问中,其他核心都得等着[舔屏]",
          "text_extra": [],
          "text_music_info": null,
          "user": {
            "ad_cover_url": null,
            "avatar_schema_list": null,
            "avatar_thumb": {
              "height": 720,
              "uri": "100x100/aweme-avatar/tos-cn-avt-0015_6e7693e097d14e61ab2ff8ac5bcd1162",
              "url_list": [
                "https://p3.douyinpic.com/aweme-avatar/tos-cn-avt-0015_6e7693e097d14e61ab2ff8ac5bcd1162~tplv-dy-shrink-adapter:96:96.heic?from=2064092626",
                "https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_6e7693e097d14e61ab2ff8ac5bcd1162.heic?from=2064092626",
                "https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_6e7693e097d14e61ab2ff8ac5bcd1162.jpeg?from=2064092626"
              ],
              "width": 720
            },
            "ban_user_functions": [],
            "batch_unfollow_contain_tabs": null,
            "batch_unfollow_relation_desc": null,
            "can_set_geofencing": null,
            "card_entries": null,
            "card_entries_not_display": null,
            "card_sort_priority": null,
            "cf_list": null,
            "cha_list": null,
            "commerce_user_level": 0,
            "contrail_list": null,
            "cover_url": null,
            "creator_tag_list": null,
            "data_label_list": null,
            "display_info": null,
            "endorsement_info_list": null,
            "familiar_visitor_user": null,
            "follower_list_secondary_information_struct": null,
            "followers_detail": null,
            "geofencing": null,
            "homepage_bottom_toast": null,
            "identity_labels": null,
            "im_role_ids": null,
            "interest_tags": null,
            "is_ad_fake": false,
            "item_list": null,
            "link_item_list": null,
            "need_points": null,
            "new_story_cover": null,
            "nickname": "露娜超爱玩",
            "not_seen_item_id_list": null,

Examples

Select an example to load its inputs and result into the playground.

Model card

Specifications

Pricing

Base price
$0.0015 / run
Daily free calls
First 100 calls per day free (shared per organization)

Request & response

Method
POST
Request body
application/json
Response
application/json
Execution
sync

Parameters

aweme_id
string · required
count
integer · optional
cursor
integer · optional

Access

Provider
Douyin
API
Platform API
Base URL
https://api.sandbase.ai
Endpoint
/v1/api/douyin/app-v3/video-comments
Authentication
Bearer API key

API README

Douyin Video Comments API

Pass a Douyin video ID (aweme_id) and get its first-level comments with text, likes, reply counts and IP location.

Use cases

  • Analyze audience sentiment on a video.
  • Collect feedback on a product or campaign video.
  • Find frequently asked questions in comments.

Request

curl -X POST "https://api.sandbase.ai/v1/api/douyin/app-v3/video-comments" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"aweme_id": "7565738211130035491"}'

Parameters

NameTypeRequiredDescription
aweme_idstringYesVideo id
countintegerNoNumber Please keep the default, otherwise there will be BUG.
cursorintegerNoCursor, used for paging, the first page is 0, the second page is the cursor value in the first response.

Example response

Real response for the request above, trimmed to the main fields. User names and long IDs are masked.

{
  "total": 4960,
  "has_more": 1,
  "cursor": "<next cursor>",
  "comments": [
    {
      "cid": "7693474478307853091",
      "aweme_id": "7565738211130035491",
      "create_time": 1791276616,
      "digg_count": 0,
      "reply_comment_total": 0,
      "text": "我家小猫很活泼了才3个月[捂脸]",
      "ip_label": "河南",
      "user": {
        "nickname": "<user>"
      }
    }
  ]
}

Notes

  • Keep count at the default 20.
  • Paginate with the cursor from the previous response.

Related APIs

  • Douyin Hot Search List: Get the Douyin hot search list and other boards (seeding, entertainment, social and challenge lists): trending words with heat values and video counts.
  • Douyin Video Statistics (Batch): Get play, like, share and download counts for up to 50 Douyin videos in one request by passing comma-separated video IDs.
  • Douyin Video Detail: Get the full data of a single Douyin post by ID (video, photo or article): description, author, hashtags, music, statistics and play URLs.

Start building

Send your first request

Platform API endpoint with unified authentication and usage tracking.

Production API
Platform API endpoint
https://api.sandbase.ai/v1/api/douyin/app-v3/video-comments
Authorization header
Authorization: Bearer $SANDBASE_API_KEY
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
  -X POST "https://api.sandbase.ai/v1/api/douyin/app-v3/video-comments" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'SANDBASE_JSON'
{
  "count": 20,
  "cursor": 0,
  "aweme_id": "7448118827402972455"
}
SANDBASE_JSON
)
printf '%s\n' "$result"

Explore more

Related APIs

All APIs
APIPriceResponseReleased
Douyin$0.0015 per callJSONJul 31, 2026
Douyin$0.0015 per callJSONJul 31, 2026
Douyin$0.0015 per callJSONJul 31, 2026
Douyin$0.0015 per callJSONJul 31, 2026
Douyin$0.0015 per callJSONJul 31, 2026
Douyin$0.0015 per callJSONJul 31, 2026

Questions

FAQ

How do I use the Douyin Video Comments API?

Send a POST request to https://api.sandbase.ai/v1/api/douyin/app-v3/video-comments with your SandBase API key in the Authorization header (Bearer) and the parameters as a JSON body. You can also try it in the Playground on this page without writing code.

How much does the Douyin Video Comments API cost?

$0.0015 per call. Every organization gets 100 free calls per UTC day, shared across eligible SandBase APIs including this one; after that each call is billed at this price from your SandBase balance. There is no subscription.

What parameters does the Douyin Video Comments API accept?

Required: aweme_id (string). Optional: count (integer) and cursor (integer). The Parameters table and the Playground on this page list every field.

What does the Douyin Video Comments API return?

A JSON response returned in the same HTTP request (synchronous). The README on this page includes a sample response.

Do I need a Douyin developer account or API key?

No. Douyin Video Comments runs through SandBase, so one SandBase API key covers this endpoint and every other API and model in the catalog. You do not need to apply for Douyin API access separately.