Parameters
| Param | Required | Value |
|---|---|---|
platform | yes | tiktok / instagram / youtube / twitter / douyin / xiaohongshu |
post_id | yes | content id |
sample | no | comments to sample, default 60; larger is steadier and slower |
Response fields
| Field | Meaning |
|---|---|
sentiment | positive / negative / neutral counts |
questions | question count and ratio — the clearest buying-intent signal |
engagement | max and average likes |
top_phrases | frequent terms with counts |
top_liked | highest-liked comment texts and authors |
summary | one-line verdict |
sampled | how many comments the verdict actually covers |
How not to misread it
- Read
sampledfirst: a verdict from 20 comments carries less weight than from 200. - Question ratio above ~20% usually means clear demand: people asking price, location, how to buy.
- Zero negatives is not proof of good sentiment: the sample may simply have missed them. Raise
samplebefore a decision.
Copy and run
cURL
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": "7650540499975081248", "sample": 40}'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_comment_insights",
data=json.dumps({"platform": "tiktok", "post_id": "7650540499975081248", "sample": 40}).encode(),
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"},
method="POST",
)
d = json.load(urllib.request.urlopen(req, timeout=120))
print(d["summary"])
print("question ratio:", d["questions"]["ratio"])
Real response sample
Taken from a real production call; truncated, image/signed URLs removed.
{
"total": 40,
"sampled": 40,
"sentiment": {"positive": 8, "negative": 0, "neutral": 32},
"questions": {"count": 11, "ratio": 0.275},
"engagement": {"max_likes": 12007, "avg_likes": 576.5},
"top_phrases": [
{"phrase": "coffee", "count": 12},
{"phrase": "butter", "count": 12},
{"phrase": "canadian", "count": 7},
{"phrase": "glass", "count": 7},
{"phrase": "salty", "count": 5}
],
"top_liked": [
{"text": "(top-liked comment, omitted here)", "likes": 12007, "author": "kaylamarie"},
{"text": "Butter in coffee is wild", "likes": 5754, "author": "username12345_64321"}
],
"summary": "40 comments analysed; 11 (28%) are questions, indicating clear purchase intent; sentiment mostly positive; top terms: coffee, butter, canadian, glass, salty; highest single comment 12007 likes",
"ok": true
}FAQ
Does it work on non-English comments?
Yes. Sentiment lexicon and phrase segmentation cover both Chinese and English; short Chinese sentences are noisier, so use a bigger sample.
How accurate is the sentiment?
It is keyword and rule based, not an LLM judging each comment. Treat it as directional, not as precise quantification.
How many comments per call?
Controlled by
sample, default 60, hundreds work. Raise your client timeout accordingly.Why not just pull comments and aggregate myself?
This saves the aggregation code and the round trip of shipping every raw comment. For raw text use comment extraction.
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