TikTok MCP Server for Cloudflare Workers
Test TikTok tools directly in your browser. Select a tool and provide inputs to see the results.
Create a free account to test TikTok tools interactively. No credit card required.
tiktok_get_creator_infoGet the authenticated creator's posting capabilities and settings. Returns information about what the creator can post, including: - Maximum video duration allowed - Available privacy level options - Whether comments, duets, and stitches are enabled Args: - format: Response format ('json' or 'markdown') Returns: Creator info object with posting capabilities. Required Scope: video.publish Rate Limit: 20 requests per minute
tiktok_init_video_post_urlInitialize a video post from a publicly accessible URL. The video will be pulled from the provided URL and posted to TikTok. After initialization, use tiktok_get_publish_status to track the posting progress. Args: - videoUrl: Publicly accessible URL of the video to post - privacyLevel: Who can see the video (PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY) - title: Video caption (max 2200 characters, optional) - disableDuet: Prevent duets with this video - disableStitch: Prevent stitches with this video - disableComment: Disable comments on this video - videoCoverTimestampMs: Frame position in milliseconds for thumbnail - brandContentToggle: Mark as paid partnership content - brandOrganicToggle: Mark as creator's own business promotion - isAigc: Mark as AI-generated content Returns: Publish ID for tracking the post status. Required Scope: video.publish Rate Limit: 6 requests per minute Note: Unaudited clients can only post to SELF_ONLY until audit approval.
tiktok_query_videosQuery specific TikTok videos by their IDs. Retrieve metadata for up to 20 specific videos in a single request. Args: - videoIds: Array of video IDs to query (max 20) - fields: Array of video fields to retrieve - format: Response format ('json' or 'markdown') Returns: Array of video objects matching the requested IDs. Required Scope: video.list
tiktok_init_video_post_uploadInitialize a video post for file upload. Returns an upload URL where the video file should be uploaded. After uploading, use tiktok_get_publish_status to track the posting progress. Args: - videoSize: Size of the video file in bytes - privacyLevel: Who can see the video - title: Video caption (max 2200 characters, optional) - chunkSize: Size of each upload chunk in bytes (optional) - totalChunkCount: Total number of chunks (optional) - disableDuet: Prevent duets with this video - disableStitch: Prevent stitches with this video - disableComment: Disable comments on this video - videoCoverTimestampMs: Frame position in milliseconds for thumbnail - brandContentToggle: Mark as paid partnership content - brandOrganicToggle: Mark as creator's own business promotion - isAigc: Mark as AI-generated content Returns: Publish ID and upload URL (valid for 1 hour). Required Scope: video.upload, video.publish Rate Limit: 6 requests per minute
tiktok_get_publish_statusCheck the status of a video post. Use this after initializing a video post to track its progress. Args: - publishId: The publish ID returned from video post initialization - format: Response format ('json' or 'markdown') Returns: Current status of the post: - PROCESSING_UPLOAD: File upload in progress - PROCESSING_DOWNLOAD: Downloading from URL in progress - SEND_TO_USER_INBOX: Notification sent to creator's inbox - PUBLISH_COMPLETE: Successfully posted - FAILED: An error occurred (check failReason) Required Scope: video.publish or video.upload Rate Limit: 30 requests per minute
tiktok_research_query_videosQuery videos using the TikTok Research API. Search for videos based on various criteria like hashtags, keywords, username, region, and engagement metrics. IMPORTANT: This endpoint requires Research API access, which must be approved by TikTok. Args: - startDate: Start date in YYYYMMDD format - endDate: End date in YYYYMMDD format (max 30 days after start) - andConditions: Conditions that must ALL match (optional) - orConditions: Conditions where at least ONE must match (optional) - notConditions: Conditions that must NOT match (optional) - maxCount: Maximum results (1-100, default: 20) - cursor: Pagination cursor - searchId: Search ID to resume cached results - isRandom: Randomize result order - fields: Video fields to retrieve - format: Response format Condition format: { field, operation, fieldValues } Fields: create_date, username, region_code, video_id, hashtag_name, keyword, music_id, effect_id, video_length, view_count, comment_count Operations: EQ, IN, GT, GTE, LT, LTE Returns: Paginated list of matching videos with search_id for pagination. Required Scope: research.data.basic Rate Limit: 1000 requests per day
tiktok_research_get_commentsGet comments on a video using the TikTok Research API. IMPORTANT: This endpoint requires Research API access, which must be approved by TikTok. Args: - videoId: ID of the video to get comments for - cursor: Pagination cursor - maxCount: Maximum comments to return (1-100, default: 20) - format: Response format Returns: Paginated list of comments on the video. Required Scope: research.data.basic
tiktok_research_get_user_infoGet public user information using the TikTok Research API. Retrieves profile info for any public TikTok user (18+ only). IMPORTANT: This endpoint requires Research API access, which must be approved by TikTok. Args: - username: TikTok username (without @) - fields: Fields to retrieve - format: Response format Returns: User profile information. Required Scope: research.data.basic
tiktok_research_get_user_followersGet a user's followers using the TikTok Research API. IMPORTANT: This endpoint requires Research API access, which must be approved by TikTok. Args: - username: TikTok username (without @) - cursor: Pagination cursor (Unix timestamp) - maxCount: Maximum followers to return (1-100, default: 20) - format: Response format Returns: Paginated list of followers (display_name and username only). Required Scope: research.data.basic
tiktok_research_get_user_followingGet accounts a user follows using the TikTok Research API. IMPORTANT: This endpoint requires Research API access, which must be approved by TikTok. Args: - username: TikTok username (without @) - cursor: Pagination cursor (Unix timestamp) - maxCount: Maximum accounts to return (1-100, default: 20) - format: Response format Returns: Paginated list of accounts the user follows (display_name and username only). Required Scope: research.data.basic
tiktok_research_get_user_liked_videosGet videos a user has liked using the TikTok Research API. NOTE: This only works if the user has enabled public access to their liked videos, which is disabled by default. Queries often return empty results. IMPORTANT: This endpoint requires Research API access, which must be approved by TikTok. Args: - username: TikTok username (without @) - cursor: Pagination cursor - maxCount: Maximum videos to return (1-100, default: 20) - fields: Video fields to retrieve - format: Response format Returns: Paginated list of liked videos (if publicly available). Required Scope: research.data.basic
tiktok_research_get_user_pinned_videosGet videos pinned to a user's profile using the TikTok Research API. IMPORTANT: This endpoint requires Research API access, which must be approved by TikTok. Args: - username: TikTok username (without @) - fields: Video fields to retrieve - format: Response format Returns: List of pinned videos on the user's profile. Required Scope: research.data.basic
tiktok_research_get_user_reposted_videosGet videos a user has reposted using the TikTok Research API. IMPORTANT: This endpoint requires Research API access, which must be approved by TikTok. Args: - username: TikTok username (without @) - cursor: Pagination cursor - maxCount: Maximum videos to return (1-100, default: 20) - fields: Video fields to retrieve - format: Response format Returns: Paginated list of reposted videos. Required Scope: research.data.basic
tiktok_research_query_adsQuery TikTok ads using the Commercial Content API. Search the Commercial Content Library for ads based on various criteria. IMPORTANT: This endpoint requires Commercial Content API access (research.adlib.basic scope). Args: - searchTerm: Search term (up to 50 characters, optional) - searchType: "exact_phrase" or "fuzzy_phrase" (default: exact_phrase) - advertiserBusinessIds: Filter by specific advertiser IDs (optional) - countryCode: Target country code (default: ALL) - minDate: Minimum publish date (YYYYMMDD, must be after 2022-10-01) - maxDate: Maximum publish date (YYYYMMDD) - maxCount: Maximum results (10-50, default: 10) - searchId: Search ID for pagination - format: Response format Returns: List of ads with advertiser information. Required Scope: research.adlib.basic Note: Currently only includes data from EU countries.
tiktok_get_user_infoGet the authenticated user's profile information from TikTok. Returns user profile data including display name, username, bio, avatar, follower/following counts, and more. Args: - fields: Array of fields to retrieve. Available fields: Basic (user.info.basic scope): open_id, union_id, avatar_url, avatar_url_100, avatar_large_url, display_name Profile (user.info.profile scope): bio_description, profile_deep_link, is_verified, username Stats (user.info.stats scope): follower_count, following_count, likes_count, video_count - format: Response format ('json' or 'markdown') Returns: User profile object with requested fields. Required Scope: user.info.basic (minimum), user.info.profile, user.info.stats for additional fields
tiktok_list_videosList the authenticated user's public TikTok videos. Returns a paginated list of videos sorted by creation time (newest first). Args: - cursor: Pagination cursor from previous response (UTC Unix timestamp in milliseconds) - maxCount: Number of videos to return (1-20, default: 10) - fields: Array of video fields to retrieve - format: Response format ('json' or 'markdown') Returns: Paginated list of video objects with requested fields. Required Scope: video.list
tiktok_get_creator_info{
"format": "example_format"
}tiktok_init_video_post_url{
"title": "example_title",
"isAigc": true,
"videoUrl": "example_videoUrl",
"disableDuet": true,
"privacyLevel": "example_privacyLevel",
"disableStitch": true,
"disableComment": true,
"brandContentToggle": true,
"brandOrganicToggle": true,
"videoCoverTimestampMs": 10
}tiktok_query_videos{
"format": "example_format",
"videoIds": true
}