# TikTok Comments API: List, Reply, Hide, and Delete

Which TikTok API gives you comments on your own videos, the scopes it needs, and how to list, reply to, hide, and delete comments, with pagination and limits.

Canonical page: https://www.tryadeli.com/blog/tiktok-comments-api
Last updated: 2026-10-19

By Mika Reyes, Co-founder, Adeli. Published 2026-10-19.

## The short answer

TikTok's comments API is the Accounts API in TikTok API for Business. It lists, replies to, likes, hides, and deletes comments on videos owned by an authorized TikTok account, with the comment.list and comment.list.manage scopes. TikTok for Developers has no comment endpoints. Adeli reads, replies to, and moderates TikTok comments on any post of a connected account.

**TikTok's comments API is the Accounts API in TikTok API for Business.** It lists, replies to, likes, hides, and deletes comments on videos owned by a TikTok account that authorized your app, using the **`comment.list`** and **`comment.list.manage`** scopes. TikTok for Developers, where most developers start, has no comment endpoints at all.

This guide covers which TikTok API to use, the scopes, each comment call with the request from TikTok's docs, and the limits behind most "missing comments" bugs.

## Which TikTok API gives you comments?

**Only TikTok API for Business manages comments on your own videos.** The other TikTok APIs either count comments or read them for research.

| API | Portal | What it does with comments | Who can use it |
| --- | --- | --- | --- |
| **Accounts API** | TikTok API for Business | List, reply, create, like, hide, delete, plus a `comment.update` webhook | Apps an owned TikTok account authorized |
| **Display API** | TikTok for Developers | A `comment_count` on each video, no comment text | Apps on TikTok for Developers |
| **Research API** | TikTok for Developers | Read comments on public videos | Eligible academic and not-for-profit researchers |
| **Ad comments** | TikTok API for Business | Read, reply to, and hide comments on ads | Advertisers with ad account access |

Sources: TikTok's [comment management guide](https://business-api.tiktok.com/portal/docs/manage-comments-on-owned-tiktok-videos/v1.3), the [video object reference](https://developers.tiktok.com/doc/tiktok-api-v2-video-object), the [Research API comments spec](https://developers.tiktok.com/doc/research-api-specs-query-video-comments), and the [Research API eligibility page](https://developers.tiktok.com/products/research-api/), which requires researchers to work "on a not-for-profit or non-commercial basis."

If you're building a product that manages TikTok accounts for customers, the Accounts API is the one. Our [portal comparison](https://www.tryadeli.com/blog/tiktok-api-for-business-vs-developers) covers what else it adds and how its review differs.

## Which scopes does the TikTok comments API need?

**`comment.list` to read, `comment.list.manage` to write.** In the TikTok API for Business developer portal they appear under the **TikTok Accounts** permission group, as listed in the [API reference](https://business-api.tiktok.com/portal/docs/api-reference/v1.3):

| Permission in the portal | Scope on the token | Endpoints |
| --- | --- | --- |
| **Get Business Comment** | `comment.list` | `/business/comment/list/`, `/business/comment/reply/list/` |
| **Manage Account Comment** | `comment.list.manage` | Create, reply, like, hide, delete, image upload |

The granted scopes come back in the `scope` field when you [exchange the authorization code for a token](https://business-api.tiktok.com/portal/docs/obtain-a-short-term-access-token/v1.3). If a token is missing one, the account has to authorize your app again with the new permission. Every comment call also needs a **`business_id`**, which is the `open_id` from that token exchange.

## How to get TikTok comments with the API

**Call `GET /business/comment/list/` with the account's `business_id` and a `video_id`.** Get video IDs first from `/business/video/list/`, where each video's ID is `item_id`.

```bash
curl --location --request GET 'https://business-api.tiktok.com/open_api/v1.3/business/comment/list/?business_id={{business_id}}&video_id={{video_id}}&include_replies=true&max_count=30' \
--header 'Access-Token: {{Access-Token}}'
```

The parameters that matter, from the [comment list reference](https://business-api.tiktok.com/portal/docs/get-comments-on-an-owned-video/v1.3):

- **`max_count`.** Default 20, maximum **30 per page**.
- **`cursor` and `has_more`.** Pass the returned `cursor` back until `has_more` is `false`.
- **`include_replies`.** Adds replies to each top-level comment, but **at most three per comment**.
- **`status`.** `ALL` (the default) returns public and hidden comments. `PUBLIC` returns only visible ones.
- **`sort_field`.** Sort by `likes`, `replies`, or `create_time`. Without it, the order is random.
- **`comment_ids`.** Fetch up to 30 specific comments or replies by ID.

Replies carry a `parent_comment_id`; top-level comments don't. Each comment also has an `owner` flag that's `true` when the account that posted the video wrote it.

**Why comments go missing.** TikTok documents three behaviors that explain most gaps:

1. **Short pages.** The endpoint can return fewer than `max_count` comments while `has_more` is still `true`, because of TikTok's trust and safety filters. Keep paging.
2. **The 500-comment boundary.** On a video with more than 500 comments, the first 500 follow your sort and the rest come back by likes, descending. The two sets aren't deduplicated, so dedupe by `comment_id`.
3. **Hidden includes TikTok's own filters.** With `status=ALL`, hidden comments include ones TikTok hid for moderation, privacy settings, or other filters.

## How do I get every reply to a comment?

**Call `GET /business/comment/reply/list/` with the `comment_id`.** It pages the same way, up to 30 replies per page with `cursor` and `has_more`, per the [reply list reference](https://business-api.tiktok.com/portal/docs/get-all-replies-to-a-comment/v1.3).

**The reply list doesn't support replies to a hidden comment.** If you hide a comment, you can't page through its thread with this endpoint until you unhide it.

## How to reply to a TikTok comment with the API

**POST the reply to `/business/comment/reply/create/`** with the video ID, the comment ID, and the text.

```bash
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/business/comment/reply/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
    "business_id" : "{{business_id}}",
    "video_id": "{{video_id}}",
    "comment_id" : "{{comment_id}}",
    "text": "Thanks for watching!"
}'
```

From the [reply reference](https://business-api.tiktok.com/portal/docs/reply-to-an-existing-comment-on-an-owned-video/v1.3):

- **1,200 characters per reply.** The same limit applies to new comments.
- **Image replies.** Send `image_uri` (from `/business/comment/image/upload/`) with its width and height instead of text. Each reply needs one or the other.
- **Repeated replies get flagged.** TikTok warns that many near-identical comments in a short time can be marked as spam and hidden. If you're automating replies, vary the text.

To leave a new top-level comment on the account's own video, POST `text` to [`/business/comment/create/`](https://business-api.tiktok.com/portal/docs/create-a-new-comment-on-an-owned-video/v1.3) with the `video_id` and no `comment_id`.

## Can you delete TikTok comments through the API?

**Only comments the account wrote.** TikTok's [delete reference](https://business-api.tiktok.com/portal/docs/delete-an-existing-comment-on-an-owned-video/v1.3) says comments made by other users "cannot be deleted, and can only be hidden."

| Action | Endpoint | Works on |
| --- | --- | --- |
| **Delete** | `POST /business/comment/delete/` | Comments the owned account wrote |
| **Hide or unhide** | `POST /business/comment/hide/` with `action` `HIDE` or `UNHIDE` | Any comment on the account's video |
| **Like or unlike** | `POST /business/comment/like/` with `action` `LIKE` or `UNLIKE` | Any comment on the account's video |

```bash
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/business/comment/hide/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
    "business_id" : "{{business_id}}",
    "comment_id" : "{{comment_id}}",
    "video_id": "{{video_id}}",
    "action": "HIDE"
}'
```

**Unhiding can silently fail.** The [hide reference](https://business-api.tiktok.com/portal/docs/hideunhide-an-existing-comment-on-an-owned-video/v1.3) says an unhide may not take effect if TikTok hid the comment for moderation or privacy reasons. Check the comment's `status` in the list response, or wait for the webhook, before telling the user it's visible again.

## How to get new TikTok comments in real time

**Subscribe to the `comment.update` webhook.** TikTok's [comment management guide](https://business-api.tiktok.com/portal/docs/manage-comments-on-owned-tiktok-videos/v1.3) says it notifies you **within five minutes** when a comment or reply is created, deleted, or has its visibility changed, on any public video of an owned account.

1. **Set your callback URL** with the Webhook API endpoint `/business/webhook/update/`.
2. **Set `event_type` to `COMMENT`.**
3. **Fetch the details** with `/business/comment/list/` and `comment_ids` when the event arrives.

The webhook covers **public videos only**, and TikTok won't send a `set_to_public` event for a comment its spam filter hid. Keep a periodic list call running as a backstop.

## Is there a faster way to manage TikTok comments?

**Yes, if you don't want to run the TikTok API for Business side yourself.** Building this directly means a Business developer app, the Accounts API review, both comment scopes, a webhook endpoint, and a token refresh job for every account.

[Adeli](https://www.tryadeli.com/product/tiktok) holds the TikTok app and refreshes every connected account's tokens. It reads, replies to, and moderates comments on **any post of a connected account, including posts made outside Adeli**, through the same API you publish with. Here's a reply through [Reply or comment](https://www.tryadeli.com/docs/api/comments/create-comment):

```bash
curl -X POST "https://app.tryadeli.com/api/v1/comments" \
  -H "Authorization: Bearer $ADELI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "tiktok",
    "accountId": "00000000-0000-0000-0000-000000000000",
    "postId": "7300000000000000000",
    "parentId": "7301000000000000001",
    "message": "Thank you!"
  }'
```

How Adeli maps to the TikTok behavior above:

- **[List comments](https://www.tryadeli.com/docs/api/comments/list-comments)** returns the account's newest 20 posts and up to 30 top-level comments per page, newest first, with `nextCursor` for the next page and `replyCount` for threads longer than the three inline replies.
- **Reads answer from Adeli's copy**, refreshed from TikTok in the background when it's more than a minute old, with `syncedAt` and `complete` on every response.
- **[Hide or like](https://www.tryadeli.com/docs/api/comments/update-comment)** takes `hidden` and `liked` in one PATCH. Liking works on TikTok only.
- **[Delete](https://www.tryadeli.com/docs/api/comments/delete-comment)** follows TikTok's rule: someone else's comment returns `422 comment_not_owned`, and each comment carries a `deletable` flag so your UI can show the hide button instead.
- **Missing scopes show up as `422 connection_expired`.** Reconnecting the account and approving the comment permission fixes it.

The same endpoints cover Instagram, Facebook, and YouTube comments. See the [commenting API](https://www.tryadeli.com/social-media-commenting-api) for the cross-network view, and the [comments docs](https://www.tryadeli.com/docs/api/comments) for every field.

## Frequently asked questions

### Does TikTok for Developers have a comments API?

No. The Display API on TikTok for Developers returns a comment_count on each video but no comment text, and there's no endpoint to reply. The Research API can read comments on public videos, but only for eligible non-commercial researchers. Comment management for your own account is in TikTok API for Business.

### Can I read comments on someone else's TikTok video?

Not through the Accounts API. Its comment endpoints work on videos owned by a TikTok account that authorized your app. Reading comments on other people's public videos is limited to the Research API, which TikTok reserves for academic and not-for-profit research.

### How many replies does the TikTok comment list return?

With include_replies set to true, each top-level comment comes back with at most three replies. To get the rest of a thread, call the reply list endpoint with the comment ID and page through it with cursor and has_more.

### How fast do TikTok comment webhooks arrive?

TikTok says the comment.update event arrives within five minutes of a comment or reply being created, deleted, hidden, or unhidden. It covers public videos on an owned TikTok account, and you subscribe with event type COMMENT.

## Related Adeli pages

- [Social Media Commenting API](https://www.tryadeli.com/social-media-commenting-api.md): Read, reply to, and moderate comments on Instagram, TikTok, YouTube, and Facebook posts through the same API you publish with.
- [TikTok API for Developers](https://www.tryadeli.com/product/tiktok.md): Publish, schedule, and read analytics for TikTok through one API. Adeli publishes through TikTok API for Business and handles token refresh. Free to start.
- [All posts on the Adeli blog](https://www.tryadeli.com/blog.md)

## About the author

Mika Reyes is the CEO behind Adeli and a tech and AI content creator. She was previously co-founder and CEO of Parallax, which was acquired by Phantom, and a product lead at LinkedIn. She is a Forbes 30 Under 30 honoree.
