TikTok API endpoint
Returns the top-level comments on a TikTok video, by the video id from its URL (`aweme_id`). Results are paged by cursor: pass the `cursor` from one response to get the next page, and read `has_more` to see whether more remain. The response also carries the total comment count.
/tiktok/commentsQuery parameters:
aweme_id: required. TikTok video id from the video URL. Example: 7304809083817774382.cursor: optional. Pagination cursor. Default: 0.Notable response behavior:
cursor value from a previous response to continue pagination.| Field | Filled in, of 18 checked | Values in the sample |
|---|---|---|
| allow_download_photo | 18 | true in 14 of 18 |
| author_pin | 18 | true in 0 of 18 |
| aweme_id | 18 | |
| cid | 18 | |
| collect_stat | 18 | 0 |
| comment_language | 18 | |
| comment_post_item_ids | 0 | |
| create_time | 18 | 2026-04-19 to 2026-10-10 |
| digg_count | 18 | 0 to 10,950, median 3 |
| fold_status | 18 | -1 |
| image_list | 3 | median 1 entry |
| is_author_digged | 18 | true in 1 of 18 |
| is_comment_translatable | 18 | true in 18 of 18 |
| is_high_purchase_intent | 18 | true in 3 of 18 |
| label_list | 2 | median 1 entry |
| no_show | 18 | true in 0 of 18 |
| reply_comment | 1 | median 1 entry |
| reply_comment_total | 18 | 0 to 17, median 1 |
| reply_id | 18 | |
| reply_to_reply_id | 18 | |
| seeking_help_model_type | 18 | 0 |
| share_info | 18 | |
| sort_extra_score | 18 | |
| sort_tags | 18 | |
| status | 18 | 1 |
| stick_position | 18 | 0 |
| text | 18 | |
| text_extra | 0 | |
| text_to_image_item_ids | 0 | |
| thread_has_more | 18 | true in 0 of 18 |
| thread_id | 18 | |
| trans_btn_style | 18 | 0 to 1, median 0 |
| translated_text_extra | 0 | |
| user | 18 | |
| user_buried | 18 | true in 0 of 18 |
| user_digged | 18 | 0 |
| label_text | 1 | |
| label_type | 1 | 1 |
| cmt_sticker_struct | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required | ||
| aweme_id | string | Yes | TikTok video id from the video URL | 7304809083817774382 | |
| cursor | integer | No | Pagination cursor |
curl -X GET "https://api.crawlora.net/api/v1/tiktok/comments?aweme_id=7304809083817774382" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"alias_comment_deleted": false,
"comments": [
{
"author_pin": false,
"aweme_id": "7304809083817774382",
"cid": "7321553576038269739",
"collect_stat": 0,
"comment_language": "en",
"comment_post_item_ids": null
}
],
"cursor": 20,
"extra": {
"api_debug_info": null,
"fatal_item_ids": null,
"now": 1733911707000
},
"has_filtered_comments": 0,
"has_more": 1
}
}Request schema
No body schema
Response schema
#/definitions/tiktok.commentsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tiktok.CommentResp | No | ||||
| data.alias_comment_deleted | boolean | No | Flag TikTok returns for deleted alias comments. | |||
| data.comments | array | No | Top-level comments on the video, one entry per comment, as TikTok returns them. | |||
| data.cursor | integer | No | Cursor to pass in the next request to get the next page of comments. | |||
| data.extra | object | No | Response metadata from TikTok, such as server time. | |||
| data.extra.api_debug_info | unknown | No | ||||
| data.extra.fatal_item_ids | unknown | No | ||||
| data.extra.now | integer | No | ||||
| data.has_filtered_comments | integer | No | Flag showing whether TikTok filtered any comments out of the list. | |||
| data.has_more | integer | No | Whether more comments remain after this page, as a number (`1` for yes). | |||
| data.log_pb | object | No | Request tracking information from TikTok, holding the `impr_id` impression id. | |||
| data.log_pb.impr_id | string | No | ||||
| data.reply_style | integer | No | Reply display style code that TikTok returns with the comments. | |||
| data.status_code | integer | No | TikTok status code for the request. `0` on a successful response. | |||
| data.status_msg | string | No | Status message that goes with the status code. | |||
| data.top_gifts | unknown | No | Top gifts attached to the comments, as TikTok returns them. | |||
| data.total | integer | No | Total number of comments on the video. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Invalid input | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/tiktok/comments?aweme_id=7304809083817774382" \
-H "x-api-key: $CRAWLORA_API_KEY"