Parameter
| Parameter | Required | Value |
|---|---|---|
| platform | Yes | tiktok / youtube / twitter / douyin / xiaohongshu / instagram |
| post_id | Yes | Post id (the numeric id from a video URL also works) |
| sample | No | Comments to sample, default 50; higher is slower |
What it returns
Fields do not depend on the platform: posts return items[] (url, text, author, time, engagement, cover); creators return items[] (handle, name, bio, followers, verified); insights returns sentiment / questions / top_phrases / top_liked / summary.
Using it from an MCP client
No need to memorize parameters — add the endpoint to your client, describe what you want in plain language, and the model picks the tool and arguments itself. Use the REST form above when you write code.
Copy and run
curl -s https://lucydomi.com/mcp/v1/get_comment_insights \
-H "Authorization: Bearer $BUSYBEE_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{"platform": "tiktok", "post_id": "7690199760430566669", "sample": 20}'import os, json, urllib.request
KEY = os.environ["BUSYBEE_API_KEY"]
req = urllib.request.Request(
"https://lucydomi.com/mcp/v1/get_comment_insights",
data=json.dumps({"platform": "tiktok", "post_id": "7690199760430566669", "sample": 20}).encode(),
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"},
method="POST",
)
data = json.load(urllib.request.urlopen(req, timeout=60))
for it in data["items"]:
print(it.get("url"), it.get("text", "")[:60])Real response sample
A real production response below — truncated to one item, billing fields removed.
{ "total": 20, "sentiment": { "positive": 2, "negative": 0, "neutral": 18, "positive_hits": 3, "negative_hits": 0 }, "questions": { "count": 9, "ratio": 0.45 }, "engagement": { "max_likes": 1103, "avg_likes": 78.4 }, "top_phrases": [ { "phrase": "spanish", "count": 5 }, { "phrase": "coffee", "count": 3 }, { "phrase": "watery", "count": 3 }, { "phrase": "ice", "count": 3 }, { "phrase": "honey", "count": 2 }, { "phrase": "latte", "count": 2 }, { "phrase": "spain", "count": 2 }, { "phrase": "sooo", "count": 2 }, { "phrase": "good", "count": 2 } ], "top_liked": [ { "text": "Make it three", "likes": 1103, "author": "Samantha" }, { "text": "how do u guys prevent the coffee from being watery? when i put a lot of ice it gets watery fast, or am i just drinking it too slowly 🥲", "likes": 145, "author": "lex" }, { "text": "The honey? the salt? the cinnamon??? Disastrous.", "likes": 135, "author": "bubibat" }, { "text": "Where’s the name “Spanish latte” coming from? Because this is not a normal coffee in Spain. It would be a café bombón", "likes": 52, "author": "angelagvarela" }, { "text": "What makes it Spanish?", "likes": 31, "author": "Arturo Hlebov" } ], "summary": "Analyzed 20 comments; 9 of them (45%) are questions, which points to clear purchase intent; sentiment leans positive (2 positive / 0 negative); top phrases: spanish, coffee, watery, ice, honey; the single most-liked comment has 1103 likes", "post": { "platform": "tiktok", "id": "7690199760430566669", "text": null, "stats": {} }, "ok": true, "platform": "tiktok", "tool": "get_comment_insights", "sampled": 20 }FAQ
How is this different from searching a keyword directly?
Does a bigger sample give more accurate numbers?
Do failed calls count against you?
Related
One key, six platforms
Same fields, same MCP endpoint — switching platform means changing one parameter. New accounts get $0.2 in credit.
View pricing Try it once