Parameter
| Parameter | Required | Value |
|---|---|---|
| platform | Yes | tiktok / instagram / youtube / twitter / douyin / xiaohongshu |
| creator | Yes | Account handle or the platform's internal id |
| limit | No | Number of items, default 10; the last 5–10 posts are enough for a median |
Three metrics you can compute directly
① median engagement = the median of (likes+comments+shares) over the last N posts; ② posting cadence = the spread of gaps between consecutive publish times; ③ hit rate = the share of posts whose engagement is more than 3x that account's own median. Those three numbers are far more useful than follower count.
Snapshots and trends
The API returns a snapshot of the moment. Store each week's result by (platform, handle, week) as an idempotent key, so re-runs produce no duplicate rows, and after two weeks you can read the week-over-week change.
Cost control
For routine monitoring, re-pull only the small set of accounts already in your store; candidate accounts during exploration need one call, not a weekly full refresh.
Copy and run
curl -s https://lucydomi.com/mcp/v1/list_creator_posts \
-H "Authorization: Bearer $BUSYBEE_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{"platform": "tiktok", "creator": "yourcoffeedude", "limit": 10}'import os, json, urllib.request
KEY = os.environ["BUSYBEE_API_KEY"]
req = urllib.request.Request(
"https://lucydomi.com/mcp/v1/list_creator_posts",
data=json.dumps({"platform": "tiktok", "creator": "yourcoffeedude", "limit": 10}).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.
{
"ok": true,
"platform": "tiktok",
"tool": "list_creator_posts",
"count": 2,
"items": [
{
"platform": "tiktok",
"id": "7160656578293697798",
"url": "https://www.tiktok.com/@yourcoffeedude/video/7160656578293697798?_r=1&u_code=ebljhhba8m5jj5&preview_pb=0&sharer_language=en&_d=ebljg2e6543055&share_item_id=7160656578293697798&source=h5_m",
"author": {
"id": "7096781983184159749",
"handle": "yourcoffeedude",
"name": "YourCoffeeDude"
},
"text": "My obsession ☕️🙌🏽",
"created_at": "2022-10-31T12:44:46+00:00",
"stats": {
"likes": 97430,
"comments": 215,
"shares": 1732,
"views": 633749,
"collects": 5792
},
"cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-p-0068/a33f0a309b394cc0aae038b21d3ad2d3_1667220288~tplv-tiktokx-cropcenter-q:300:400:q70.heic?dr=9232&refresh_token=c0728649&x-expires=1793008800&x-signature=wQmPtjXDxildr3JszPcwfmglsfY%3D&t=bacd0480&ps=933b5bde&shp=d05b14bd&shcp=132edbea&idc=no1a&biz_tag=tt_video&s=PUBLISH&sc=cover"
},
{
"platform": "tiktok",
"id": "7212684522750479622",
"url": "https://www.tiktok.com/@yourcoffeedude/video/7212684522750479622?_r=1&u_code=ebljhhba8m5jj5&preview_pb=0&sharer_language=en&_d=ebljg2e6543055&share_item_id=7212684522750479622&source=h5_m",
"author": {
"id": "7096781983184159749",
"handle": "yourcoffeedude",
"name": "YourCoffeeDude"
},
"text": "Foamy Cinnamon Dalgona Coffee ☕️✨",
"created_at": "2023-03-20T17:39:43+00:00",
"stats": {
"likes": 588711,
"comments": 992,
"shares": 28141,
"views": 10979909,
"collects": 93224
},
"cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast2a-p-0037-aiso/o8PdShiVEEfuCheDDk4QjZnZ83bBABnilI0Low~tplv-tiktokx-cropcenter-q:300:400:q70.heic?dr=9232&refresh_token=287d2420&x-expires=1793008800&x-signature=KUIKLmXEW3%2BeT7LdS9ecqHEMtRg%3D&t=bacd0480&ps=933b5bde&shp=d05b14bd&shcp=132edbea&idc=no1a&biz_tag=tt_video&s=PUBLISH&sc=cover&item=7212684522750479622"
}
]
}FAQ
Can I pull a specific time range?
Why do the engagement counts differ between two calls on one post?
What if the account has a lot of posts?
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