TopTik — TikTok data
app.toptik/tiktokTikTok data for agents: videos, creators, comments, search, transcripts. 25 tools, pay per call.
Score: 100/100
Handshake verified by our own probe.
Tools · 25
Resolve a TikTok @handle to the account's numeric uid and sec_uid. Start here: every tiktok_creator_* tool takes the sec_uid this returns. An empty user_list means no exact match was found.
A creator's profile: handle, nickname, bio, follower, following and video counts, privacy and verification flags, and avatar.
A creator's posts, newest first, with stats. Page by passing the previous response's max_cursor as cursor until has_more is 0. Pinned posts appear on page one only.
Videos a creator has liked. Only works when the account keeps its likes public; most do not, and a private list returns no videos.
A sample of a creator's followers (most recent), plus the total. One page only: TikTok does not page this list reliably, so this is a sample and not an export.
A sample of the accounts a creator follows, plus the total. One page only, for the same reason as followers.
A creator's playlists (TikTok calls them mixes or series). Most creators have none, which returns total 0.
One video or photo post by id: caption, plays, likes, comments, shares, saves, duration, hashtags, sound and author.
Top-level comments on a video, with like and reply counts. cursor is an offset: pass the previous response's cursor to continue. TikTok re-ranks between pages, so dedupe on comment_id.
Replies under one comment. Worth calling only when tiktok_video_comments reported reply_count above 0.
Direct media URLs for one post: no-watermark video, watermarked video, audio, covers, and the images of a photo post. Links only, no bytes; they are signed and expire (see expires), so fetch promptly.
A video's spoken text from TikTok's own caption track: one joined string plus timed cues. has_transcript false means the video has no caption track, which is common and is not an error.
Sound title to music id, with the closest candidates. Feed the id to tiktok_sound_videos.
Videos TikTok associates with a sound. Treat it as a feed seeded by the sound, not a strict filter: some results use a different sound, so check music_id on each row.
Hashtag name to its id, with total video and view counts. Feed the id to tiktok_hashtag_videos.
Videos under a hashtag. Pages hold about 12 videos whatever count asks for; page with cursor.
Keyword search over videos. TikTok search is a bounded, re-ranked pool, not an endless list: ask for count 30, page with cursor, dedupe on video_id, and stop when two pages add nothing new.
Keyword search over accounts, with follower counts. Pages by offset, not cursor. For one exact @handle use tiktok_resolve_username instead: it is cheaper and more reliable.
Keyword search over hashtags, with post and view counts. One page only.
Keyword search over sounds, with usage counts. cursor is an offset: pass the previous response's cursor.
Live rooms on air right now that match a keyword, with the host's account. One page only. For playable stream URLs use tiktok_live_streams.
Keyword search over photo-mode (carousel) posts, with image URLs and stats. One page only.
TikTok's Explore / Discover feed: what is trending now. Not personalised and not cached, so each call returns a fresh set; call again for more.
Live rooms matching a keyword, each with playable stream URLs per quality (FLV always, HLS when TikTok provides it), title and viewer count. URLs are signed (see expires_at), but a room usually ends l…
Search TikTok places (points of interest) by name: address, coordinates, rating, review count and video count.
How to use
Claude Desktop or claude.ai: add a custom connector (Customize → Connectors; on Team and Enterprise plans an owner adds it under Organization settings → Connectors) with this server URL: https://mcp.toptik.app/mcp
Cursor or Cline: add to your MCP config:
{
"mcpServers": {
"toptik_\u2014_tiktok_data": {
"url": "https://mcp.toptik.app/mcp",
"transport": "streamable-http"
}
}
}