All questionsTikTok

How do I get comments on a TikTok video?

Call GET /v1/tiktok/posts/{id}/comments. Each request returns one page of public comments with the author, text, time, like count, and reply count, plus a cursor for the next page. Pinned comments are marked. For the replies under a comment, call GET /v1/tiktok/posts/{id}/comments/{commentId}/replies.

If you start from a video URL, pass it to the fetch endpoint first. It returns the video with its id. Short links from the app are expanded for you.

Checked September 2026 · request and response run against the API · no affiliate links

GET /v1/tiktok/posts/{id}/comments
curl "https://api.openhandle.dev/v1/tiktok/posts/920100000000000001/comments" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
TypeScript SDK
import { OpenHandle } from '@openhandle/sdk';

const openhandle = new OpenHandle({ apiKey: process.env.OPENHANDLE_API_KEY! });
let page = await openhandle.tiktok.post('920100000000000001').comments.list();

while (true) {
    for (const comment of page.data) console.log(comment.author?.handle, comment.text);
    const next = await page.next();
    if (!next) break;
    page = next;
}
200 OK
{
  "platform": "tiktok",
  "resource": "comment",
  "capturedAt": "2026-09-19T09:12:44Z",
  "source": "live",
  "data": [
    {
      "id": "920200000000000001",
      "postId": "920100000000000001",
      "text": "The loop is satisfyingly synthetic.",
      "createdAt": "2026-08-09T16:30:00Z",
      "isPinned": true,
      "author": { "id": "920000000020", "handle": "soft_signal_tt_test" },
      "metrics": { "likes": 12, "replies": 0 }
    },
    {
      "id": "920200000000000002",
      "postId": "920100000000000001",
      "text": "Safe data, stable result.",
      "createdAt": "2026-08-09T17:30:00Z",
      "isPinned": false,
      "author": { "id": "920000000020", "handle": "soft_signal_tt_test" },
      "metrics": { "likes": 11, "replies": 0 }
    }
  ],
  "meta": { "cursors": { "next": "b3BhcXVlLWN1cnNvcg" } }
}

Trimmed to two comments and the fields this question needs. The example video is a Test fixture with 24 comments over several pages, so you can test pagination on a free Test key.

Why the official TikTok APIs do not do this

The Research API returns comments, for approved academic and non-profit researchers only. The Display API reads only the logged-in account and has no comments endpoint for other people’s videos. For a brand, an agency, or a product that listens to what people say under a video, comments are a public data API job.

Paging, replies, and pins

  • One page per request. Pass meta.cursors.next back as cursor. When it is null, you have every comment TikTok shows. Cursors are opaque and bound to this video and freshness.
  • Replies are separate. A comment with metrics.replies above zero has a thread. Read it with the replies endpoint. Nested replies carry parentId and rootCommentId.
  • Pinned comments come first. The creator can pin a comment. It is marked isPinned: true and sits at the top of the first page. isLikedByCreator marks comments the creator hearted.
  • Fresh videos. A video posted minutes ago often shows no comments for a while. An empty page is an answer, not an error.

Listen on a schedule

Read the first page of comments on each video you track every hour, store each comment id, and skip the ones you have. New comments land at the top under the pins. Store capturedAt with each row so a report can show when the comment was seen. Comments TikTok hides or the creator deletes stop appearing on the next read.

When this does not work

These answers are definitive. Store them, do not retry them.

SituationStatusCode
The video is deleted or never existed404POST_NOT_FOUND
The account is private403PROFILE_PRIVATE
The cursor came from another video or freshness400CURSOR_MISMATCH
The identifier is malformed400INVALID_IDENTIFIER
404 Not Found
{
  "error": {
    "code": "POST_NOT_FOUND",
    "message": "This post was not found.",
    "requestId": "req_01j8…",
    "retryable": false
  }
}

A creator can turn comments off. That video answers with an empty page, which bills as an answered request. Every new workspace starts with 100 free live requests, no card needed.

Read next

More TikTok questions

Send your agent ahead.

Paste the prompt into your agent and it sets everything up. Or come yourself, it takes five minutes.

For agents