image

TikTok comments are the top-level replies on one video, 20 per page. You pass the video id or a video url, plus cursor when you already have one. The sample video is 7106594312292453675. total is 1,269, hasMore is true, and the next cursor is the string 20. The first comment is “Tiktok and Minecraft??” from awwmanbro. The second is “15?” with 156 likes and 4 replies.

👉 To access this endpoint, you must obtain an API key: https://steadyapi.com/register


Authentication

Every call uses a Bearer token from your SteadyAPI dashboard.

Documentation:
https://docs.steadyapi.com/#authenticating-requests

headers = {
  'Authorization': 'Bearer YOUR_API_KEY'
}

Where this fits

The video id comes from GET /v1/tiktok/video/info. On that call, stats.comments for this id is also 1,269. A comment with replyCount greater than 0 is the parent for GET /v1/tiktok/video/comment-replies. The “15?” comment id 7106606555949433646 is the sample commentId for that replies call. The comment author’s username can go to GET /v1/tiktok/user/info. Do not send a comment id as the video id.


Read TikTok video comments

Endpoint: GET /v1/tiktok/video/comments

Documentation:
https://docs.steadyapi.com/tiktok/#tiktok-GETapi-v1-tiktok-video-comments

Parameters

  • id — required unless url is set. 15 to 21 digits (example: 7106594312292453675)
  • url — required unless id is set. A TikTok video link
  • cursor — optional integer, default 0, max 100000. Use the cursor from the previous page

The first page omits cursor or sends 0. meta.cursor is that request value, as a number. body.cursor is the next page, and in the sample it is the string 20. Pass 20 on the following request. Each page holds up to 20 comments. The same video and cursor within 5 minutes returns the cached page. A video with no comments, or a video id that does not exist, still returns comments as an empty list. A failed fetch is a different 200: success false and the message No data returned.

Python

import requests

url = "https://api.steadyapi.com/v1/tiktok/video/comments"
headers = {"Authorization": "Bearer YOUR_API_KEY"}

response = requests.get(url, headers=headers, params={"id": "7106594312292453675", "cursor": 0})
response.raise_for_status()
body = response.json().get("body") or {}
print(body.get("total"), body.get("cursor"), body.get("hasMore"))
for comment in body.get("comments") or []:
    author = comment.get("author") or {}
    print(comment.get("id"), author.get("username"), comment.get("likes"), comment.get("replyCount"))

Annotated sample

{
  "total": 1269,
  "cursor": "20",
  "hasMore": true,
  "comments": [
    {
      "id": "7128453658077397765",
      "text": "Tiktok and Minecraft??",
      "createTime": "2022-08-05T18:01:11Z",
      "likes": 3,
      "replyCount": 0,
      "pinned": false,
      "author": { "username": "awwmanbro", "nickname": "a" }
    },
    {
      "id": "7106606555949433646",
      "text": "15?",
      "likes": 156,
      "replyCount": 4,
      "author": { "username": "0_.preppy._.vids._0" }
    }
  ]
}

Store each comment id. total is 1,269, the size of the thread, not the length of this page. The first row has 3 likes and replyCount 0, so there is no replies call to make for it. The second row’s id is the one to pass as commentId, because replyCount is 4. pinned and likedByAuthor are false on these rows. createTime is UTC. Comment authors include id, username, and nickname. They do not include verified. That flag is on the profile and on the video’s author.


Practical use

Stop when hasMore is false. While it is true, send body.cursor as the next cursor. The first response’s cursor string 20 means the following page, not a comment id.

An empty comments list is a normal body. Do not treat it as Video not found. That message belongs to the video endpoint. No data returned means the fetch failed and there is no body to page.

replyCount is how many replies exist. The reply text is the comment-replies call, using the video id and this comment’s id.

👉 Get your API key and read TikTok comments: https://steadyapi.com/register

How to Look Up a Crypto Profile Using SteadyAPI Oct 09, 2026

How to Look Up a Crypto Profile Using SteadyAPI

Look up one coin by slug. Store the symbol, status, and website list. Quotes are a later call and use data, not body.

How to Find Similar Amazon Products Using SteadyAPI Oct 08, 2026

How to Find Similar Amazon Products Using SteadyAPI

Learn how to find similar Amazon products with SteadyAPI. Pull related titles, prices, and ratings for an ASIN.

How to Read an X Profile Using SteadyAPI Oct 07, 2026

How to Read an X Profile Using SteadyAPI

Learn how to read an X profile with SteadyAPI. Pull a handle's name, follower counts, and protected flag.

How to Get an MLB Box Score Using SteadyAPI Oct 07, 2026

How to Get an MLB Box Score Using SteadyAPI

Learn how to get an MLB box score with SteadyAPI. Read each club's batting line for one game.