Douyin Comment Replies API — Replies to a Comment
Documentation menu
FetchLayer FetchLayer API

Read the replies to a comment

The replies under one comment, as a flat list in Douyin’s order, each with its exact likes, the province it was posted from and the reply it answers (replyTo). Take commentId from video-comments, and pass the same video. Up to 500 in one request, continuing with a cursor. 1 credit per 29 replies.

POST /comment-replies Videos
https://api.fetchlayer.dev/douyin/comment-replies
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

video string required

A video or image post: its id (7665908051974704410), a douyin.com or iesdouyin.com link, a v.douyin.com share link, or pasted share text containing one.

commentId string required

The comment’s id, 15 to 19 digits, as video-comments returns it in comments[].id. It cannot be derived from the video alone.

limit integer optional

Maximum replies returned, up to 500, or -1 for as many as available. Replies come 29 to a page and each page is 1 credit; use a larger limit and a cursor rather than a larger page. (default: 50)

cursor string optional

The cursor from a previous response, passed back unchanged with the same request, to continue exactly where it stopped. Treat it as opaque: a cursor from another route, video or collection, or one this service did not issue, is a 400 naming cursor.

format string optional

json or markdown, lowercase; any other value is a 400. Over MCP, markdown returns the result rendered as text; the REST API accepts it and returns JSON. (default: json)

timeoutMs integer optional

Time limit for the whole request, in milliseconds (1000–120000); a value outside that range is a 400. Where possible a partial answer comes back with a note; a request with nothing to return yet fails with a 503 you can retry, marked with the response header X-Timeout-Source: caller.

Response Fields

comment-replies

Read the replies to a comment

transport string

The data source: always the platform id, "douyin".

fetchedAt string

When the data was read (ISO 8601).

notes string[]

Caveats you can act on, such as older videos existing beyond the list. Empty when there are none.

videoId string

The video’s id.

commentId string

The comment the replies are under.

totalReplies number

Douyin’s own reply count for the comment. It can be one higher than the list served, and notes says so rather than leaving it looking like a dropped record.

replies object[]

The replies, as a flat list. A comment with no replies returns an empty list with a note; a comment id that names no comment, or one on another video, is a 404.

replies[].id string

The reply’s id.

replies[].text string

The reply’s text.

replies[].createdAt string

When it was posted (ISO 8601); createTime is unix seconds.

replies[].likes number

Likes, exact.

replies[].replyCount null

Always null: a reply has no replies of its own.

replies[].ipLocation string | null

The province or country Douyin shows for the replier (IP属地).

replies[].author object

The same shape as a video’s author: uid, secUid, uniqueId, nickname, avatarUrl, followerCount (null here, never zero), verification and profileUrl.

replies[].replyTo string | null

The id of the reply this one answers, or null when it answers the comment itself. The only thread signal: replies are a flat list.

replyCount number

How many replies are in this response.

skippedRecords object[]

Items Douyin listed that could not be returned whole, each as { id, reason, fieldsPresent }; id may be null. Normally empty.

pagesFetched number

Pages read, 29 replies to a page, which is what the request costs: one credit per page.

hasMore boolean

Whether more replies remain.

cursor string | null

Pass back as cursor, with the same request, to continue exactly where this response stopped. null when there is nothing further.

Request

curl -X POST "https://api.fetchlayer.dev/douyin/comment-replies" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"video":"7665908051974704410","commentId":"7666958298617054001","limit":9}'

Response

{
  "transport": "douyin",
  "fetchedAt": "2026-10-16T09:00:00.000Z",
  "notes": [
    "Replies are a flat list; replyTo names the reply each one answers, and is null when it answers the comment itself."
  ],
  "videoId": "7665908051974704410",
  "commentId": "7666958298617054001",
  "totalReplies": 9,
  "replies": [
    {
      "id": "7667152618309780261",
      "text": "我说的这些都是常识…",
      "createdAt": "2026-07-27T08:00:00.000Z",
      "likes": 14,
      "replyCount": null,
      "ipLocation": "浙江",
      "author": {
        "uid": "3654426877240749",
        "secUid": "MS4wLjABAAAA…",
        "nickname": "喜欢丑的",
        "followerCount": null
      },
      "replyTo": "7666988496317629190"
    }
  ],
  "replyCount": 9,
  "skippedRecords": [],
  "pagesFetched": 1,
  "hasMore": false,
  "cursor": null
}