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.
/comment-replies Videos https://api.fetchlayer.dev/douyin/comment-replies 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
}