Home · Resources · Comment Insights API

Comment Insights API

Raw comments still need aggregation. This endpoint samples the comment thread, aggregates server-side, and returns sentiment split, question ratio, top phrases, most-agreed comments and a summary you can drop into a report.

Parameters

ParamRequiredValue
platformyestiktok / instagram / youtube / twitter / douyin / xiaohongshu
post_idyescontent id
samplenocomments to sample, default 60; larger is steadier and slower

Response fields

FieldMeaning
sentimentpositive / negative / neutral counts
questionsquestion count and ratio — the clearest buying-intent signal
engagementmax and average likes
top_phrasesfrequent terms with counts
top_likedhighest-liked comment texts and authors
summaryone-line verdict
sampledhow many comments the verdict actually covers

How not to misread it

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

Douyin commentsKeyword searchIntegration guideQuick start

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