Welcome to the BusyBee social data platform. For partnerships or usage questions, click “Support” on the right.

TikTok Data API: short video, comment and creator endpoints for AI agents

Keyword video search, comments by link, creator profiles and post lists, all in one JSON schema. Runs as an MCP server that models call directly, and as a plain REST API.

What you get

CapabilitiesVideo search / Creator search / Creator details / Creator posts / Video details / Fetch comments
Response fieldsurl, text, author (id/handle/name), created_at, views, likes, comments, shares, cover
IntegrationMCP (Streamable HTTP) or REST (GET or POST)
BillingPay per call, automatic refund on failure

Response schema

Whichever platform you call, post-type responses share the same structure: items[] holds platform / id / url / author{id,handle,name} / text / created_at / stats{...} / cover; creator responses are handle / name / bio / followers / following / posts / verified / avatar / url. Switching platforms needs no changes to your parsing code.

MCP or REST

For models, use MCP: add https://lucydomi.com/mcp to your client config and it selects the tools itself. For code, use REST: https://lucydomi.com/mcp/v1/search_posts, where GET with query parameters or POST with a JSON body both work and return an identical structure.

Copy and run

cURL
curl -s https://lucydomi.com/mcp/v1/search_posts \
  -H "Authorization: Bearer $BUSYBEE_API_KEY" \
  -H "Content-Type: application/json" \
  -X POST \
  -d '{"platform": "tiktok", "keyword": "coffee", "limit": 3}'
Python (standard library, no dependencies)
import os, json, urllib.request

KEY = os.environ["BUSYBEE_API_KEY"]
req = urllib.request.Request(
    "https://lucydomi.com/mcp/v1/search_posts",
    data=json.dumps({"platform": "tiktok", "keyword": "coffee", "limit": 3}).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])

Sample response

This is a real production response, truncated to one item and with billing fields removed.

{
  "ok": true,
  "platform": "tiktok",
  "tool": "search_posts",
  "count": 1,
  "items": [
    {
      "platform": "tiktok",
      "id": "7690199760430566669",
      "url": "https://www.tiktok.com/@laceyglasley/video/7690199760430566669?_r=1&u_code=f0m7125f4ia4bk&preview_pb=0&sharer_language=en&_d=f0m710il3k0l0c&share_item_id=7690199760430566669&source=h5_m",
      "author": {
        "id": "7066058701889012782",
        "handle": "laceyglasley",
        "name": "Lacey"
      },
      "text": "One for me, one for you 🤎🍯 Salted Honey Spanish Latte (1-16oz drink) • 1 tbsp sweetened condensed milk • 1 tsp honey • Dash of cinnamon • Pinch of salt • Dash of cinnamon • 2 tsp instant espresso + 2oz warm water (or double shot of espresso) • Ice • 3-4oz milk Enjoy! #coffeetok #coffeeathome #instantespresso #coffeerecipe #spanishlatte ",
      "created_at": "2026-09-27T13:03:24+00:00",
      "stats": {
        "likes": 68801,
        "comments": 169,
        "shares": 7732,
        "views": 1017504,
        "collects": 17981
      },
      "cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/owpgeRFaArQERuSqRE9CDLMEBEI3EAF5ACAufD~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=8593&idc=useast8&ps=933b5bde&refresh_token=9ebdfa7c&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1792933200&x-signature=lpbiHJbGP7CmVDG3kmOcPkenHQo%3D"
    }
  ]
}

FAQ

Do I need my own scraper or proxy?
No. Scraping and cleaning happen server-side, so you only receive structured JSON; failed calls are refunded automatically.
Can I use it commercially?
Everything returned is publicly visible content and can be used for analysis and product features; see the “Data policy” page for the exact limits.
Can I raise the number of results?
Yes, limit is adjustable, but each call returns synchronously. Fetch in batches to avoid a single call timing out.

Related

API docsPricingYouTube dataInstagram dataX / Twitter dataComment insights

One key, six platforms

Same fields, same MCP endpoint; switching platforms only changes one parameter. Sign up and get $0.2 in trial credit.

See pricing Try one call