Parameters
| Param | Required | Value |
|---|---|---|
platform | yes | douyin |
post_id | yes | the video id, or just paste the numeric id from a share link |
limit | no | rows to return, default 20 |
What you get
items[] with id, post_id, author (id / handle / name), text (raw text including platform emoji tokens), likes, replies (number of replies under that comment) and created_at. Identical schema on Xiaohongshu and TikTok, so one parser covers all three.
Three things that trip people up
- Search results carry empty engagement:
search_postsoften returns 0 forcomments / shares / viewson Douyin. Useget_postfor real counts andget_commentsfor actual comments. - Nested replies are a count, not a list:
repliestells you how many replies exist; expanding them is not exposed in the current version. - Ordering is upstream-decided: you cannot request sort by time or by likes.
Copy and run
cURL
curl -s https://lucydomi.com/mcp/v1/get_comments \
-H "Authorization: Bearer $BUSYBEE_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{"platform": "douyin", "post_id": "7695994014143952488", "limit": 20}'Python (stdlib, no dependencies)
import os, json, urllib.request
KEY = os.environ["BUSYBEE_API_KEY"]
req = urllib.request.Request(
"https://lucydomi.com/mcp/v1/get_comments",
data=json.dumps({"platform": "douyin", "post_id": "7695994014143952488", "limit": 20}).encode(),
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"},
method="POST",
)
data = json.load(urllib.request.urlopen(req, timeout=60))
for c in data["items"]:
print(c["likes"], c["replies"], c["text"][:40])
Real response sample
Taken from a real production call; truncated, image/signed URLs removed.
{
"ok": true,
"platform": "douyin",
"tool": "get_comments",
"count": 2,
"items": [
{
"id": "7701278513756881700",
"author": {"handle": "bxn0817", "name": "\u5c0f\u6cfd"},
"text": "\u7ea6\u4e2a\u642d\u5b50\u4e00\u8d77\u53bb\uff0c\u5973\u751f",
"likes": 0,
"replies": 2,
"created_at": "2026-10-27T09:33:55+00:00"
},
{
"id": "7696029307102069553",
"text": "\u6536\u95e8\u7968\u5417\uff0c\u8fc7\u5e74\u7684\u65f6\u5019\u60f3\u53bb\u73a9",
"likes": 10,
"replies": 7,
"created_at": "2026-10-13T06:04:18+00:00"
}
]
}FAQ
Can I page through all comments?
Raise
limit, but upstream caps a single response. Full history means segmented pulls over time — tell us the volume if you need deep backfill.Do I need cookies or proxies?
No. Your API key is the identity; rate limiting and egress are handled server-side.
Am I charged for failed calls?
No. You are only billed when data is returned.
How is this different from comment insights?
This returns raw comments. Comment insights returns the conclusion: sentiment split, question ratio, top phrases, top-liked comments.
Related
One key, six platforms
Same schema, same MCP endpoint, one parameter to switch platforms. Sign-up credit included, failed calls are free.
See pricing Try it first