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

By Mika ReyesPublished 6 min read

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, the video object reference, the Research API comments spec, and the Research API eligibility page, 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 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:

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. 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.

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:

  • 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.

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.

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:

  • 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/ 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 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
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 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 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 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:

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 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 takes hidden and liked in one PATCH. Liking works on TikTok only.
  • Delete 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 for the cross-network view, and the comments docs for every field.

faq

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.

Power your next project
with one social media API

Give your users publishing, scheduling, and analytics through one integration your team can actually maintain.

Try with agents

Start with free credits. No credit card required.