# Tiktok

TikTok short-form video platform + creation tools + social sharing

- **Category:** social media accounts
- **Auth:** OAUTH2
- **Composio Managed App Available?** No
- **Tools:** 10
- **Triggers:** 0
- **Slug:** `TIKTOK`
- **Version:** 20260312_00

## Tools

### Fetch publish status

**Slug:** `TIKTOK_FETCH_PUBLISH_STATUS`

Check the processing status of a TikTok video or photo post using its publish_id. Use this action to poll the status of content after initiating an upload or post. The API returns detailed information about processing stages (upload, download, moderation) and any errors that occurred. Rate limit: 30 requests per minute per access token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `publish_id` | string | Yes | The unique identifier (max 64 characters) returned from a video upload or photo post initialization. Used to track the posting action and check its processing status. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get action categories

**Slug:** `TIKTOK_GET_ACTION_CATEGORIES`

Tool to retrieve available action categories from TikTok Marketing API. Use when you need to get the list of conversion event categories for creating or managing TikTok ad campaigns with conversion tracking.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `language` | string ("en" | "zh" | "ja" | "de" | "es" | "fr" | "id" | "it" | "ko" | "ru" | "th" | "tr" | "vi" | "ar" | "pt" | "ms") | No | Language for category names in the response. Defaults to English (en). |
| `advertiser_id` | string | Yes | Advertiser ID for which to retrieve action categories. |
| `special_industries` | string ("HOUSING" | "EMPLOYMENT" | "CREDIT") | No | Special ad categories for restricted industries. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get terms

**Slug:** `TIKTOK_GET_TERM`

Tool to retrieve terms from TikTok Business API. Use when you need to fetch advertiser or agency terms for a specific advertiser ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `lang` | string | No | Language code for the terms. Default is 'EN' (English). |
| `term_type` | string ("ADVERTISER_TERMS" | "AGENCY_TERMS") | Yes | Type of terms to retrieve. ADVERTISER_TERMS for advertiser terms, AGENCY_TERMS for agency terms. |
| `advertiser_id` | string | Yes | The advertiser ID for which to retrieve terms. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get user stats

**Slug:** `TIKTOK_GET_USER_STATS`

Fetches TikTok user information and statistics for the authenticated user. Retrieves user stats (follower_count, following_count, likes_count, video_count) and can optionally fetch profile fields (display_name, username, bio_description, etc.) and basic info (open_id, union_id, avatar URLs). Returns only the fields requested in the fields parameter.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `fields` | array | No | List of fields to retrieve. Available fields: Stats fields (user.info.stats scope): follower_count, following_count, likes_count, video_count. Profile fields (user.info.profile scope): display_name, username, bio_description, profile_deep_link, is_verified. Basic fields (user.info.basic scope): open_id, union_id, avatar_url, avatar_url_100, avatar_large_url. Defaults to the 4 statistics fields. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List GMV Max occupied custom shop ads

**Slug:** `TIKTOK_LIST_GMV_MAX_OCCUPIED_CUSTOM_SHOP_ADS`

Tool to get GMV Max occupied custom shop ads list for a TikTok advertiser. Use this action when you need to retrieve information about which custom shop ads are currently occupied for GMV Max campaigns. This is part of the TikTok Business API and requires appropriate advertiser access.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `store_id` | string | Yes | The store ID to filter occupied custom shop ads. |
| `asset_ids` | string | Yes | Comma-separated list of asset IDs to check for occupation status. |
| `advertiser_id` | string | Yes | The advertiser ID for which to retrieve occupied custom shop ads. |
| `occupied_asset_type` | string | Yes | The type of asset to check (e.g., VIDEO, IMAGE). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List videos

**Slug:** `TIKTOK_LIST_VIDEOS`

Lists videos for the authenticated user (or specified creator).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | integer | No | Pagination cursor (UTC Unix timestamp in milliseconds) returned from previous call's response. |
| `max_count` | integer | No | Maximum number of videos to retrieve per page. Default is 10, maximum is 20. |
| `creator_id` | string | No | Optional creator open_id to list videos for a specific creator. Omit to list videos for the authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post photo

**Slug:** `TIKTOK_POST_PHOTO`

Create a photo post (1-35 images) on TikTok via Content Posting API. Supports two modes: - MEDIA_UPLOAD: Uploads photos to user's inbox for review/editing before posting - DIRECT_POST: Immediately posts photos to user's TikTok account IMPORTANT: Photo URLs must be from your TikTok-verified domain. Unverified domains will return 403 Forbidden. Unaudited apps can only post with privacy='SELF_ONLY'. Rate limit: 6 requests per minute per user access token. Reference: https://developers.tiktok.com/doc/content-posting-api-reference-photo-post

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | No | Post title (<= 90 UTF-16 runes) |
| `post_mode` | string ("DIRECT_POST" | "MEDIA_UPLOAD") | No | Use DIRECT_POST to publish immediately (requires video.publish), or MEDIA_UPLOAD to send to inbox for editing (requires video.upload) |
| `description` | string | No | Post description (<= 4000 UTF-16 runes) |
| `photo_images` | array | Yes | List of 1-35 publicly accessible HTTPS image URLs (JPG, JPEG, or WEBP format). IMPORTANT: URLs must be from your TikTok-verified domain or URL prefix. Random/third-party URLs will be rejected with 403 error. |
| `privacy_level` | string | No | Privacy level for the photo post. Required for DIRECT_POST mode. Common values: 'SELF_ONLY' (private), 'MUTUAL_FOLLOW_FRIENDS' (friends), 'FOLLOWER_OF_CREATOR' (followers), 'PUBLIC_TO_EVERYONE' (public). For unaudited apps, must use 'SELF_ONLY'. |
| `auto_add_music` | boolean | No | DIRECT_POST only. Auto add recommended music. |
| `disable_comment` | boolean | No | DIRECT_POST only. Disallow comments if true. |
| `photo_cover_index` | integer | Yes | Zero-based index (0 to len(photo_images)-1) indicating which image to use as the cover/thumbnail |
| `brand_content_toggle` | boolean | No | DIRECT_POST only. True if content is a paid partnership to promote a third-party business. |
| `brand_organic_toggle` | boolean | No | DIRECT_POST only. True if content promotes the creator's own business. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Publish video from inbox

**Slug:** `TIKTOK_PUBLISH_VIDEO`

Finalizes and publishes a video from the TikTok inbox using its publish_id. This action is used after uploading a video to the inbox via the upload endpoint. It publishes the video with optional metadata like caption/title. The video must have been successfully uploaded and be in the user's inbox before calling this action. Note: This endpoint may be for inbox workflow finalization. Alternatively, videos can be published directly during upload initialization by providing post_info.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `caption` | string | No | Optional caption/title text for the video post. If provided, this will be set as the video's title when published. Maximum length: 2200 UTF-16 characters. |
| `publish_id` | string | Yes | Unique publish ID returned from the video upload initialization endpoint. This ID tracks the posting action and is used to finalize publishing the video from the inbox. Maximum length: 64 characters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload video

**Slug:** `TIKTOK_UPLOAD_VIDEO`

Uploads a video to TikTok via the Content Posting API (init + single-part upload). This action initializes an upload session to obtain a presigned upload URL, then uploads the entire file with a single PUT request. Use a subsequent action to publish the post.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `caption` | string | No | Optional caption/title used when publish=true |
| `publish` | boolean | No | If true, attempts to publish after upload using the returned publish_id. |
| `disable_duet` | boolean | No | Whether to disable duets on the video. |
| `privacy_level` | string | No | Privacy level for published video. Options: SELF_ONLY, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, PUBLIC_TO_EVERYONE. For unaudited apps, use SELF_ONLY or MUTUAL_FOLLOW_FRIENDS. |
| `disable_stitch` | boolean | No | Whether to disable stitches on the video. |
| `file_to_upload` | object | Yes | Video file to upload to TikTok. Supported formats include MP4, MOV, WEBM. |
| `disable_comment` | boolean | No | Whether to disable comments on the video. |
| `chunk_size_bytes` | integer | No | Chunk size for multi-part uploads in bytes (1MB-64MB). If not provided, defaults to file size for single-chunk upload. Most videos can use default (None). |
| `video_cover_timestamp_ms` | integer | No | Timestamp in milliseconds to use as video cover/thumbnail (e.g., 1000 for 1 second into video). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload videos (batch)

**Slug:** `TIKTOK_UPLOAD_VIDEOS`

Uploads multiple videos to TikTok concurrently (init + single-part upload per file).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `caption` | string | No | Optional caption/title used when publish=true |
| `publish` | boolean | No | If true, attempts to publish after each upload using direct publish flow. |
| `max_workers` | integer | No | Maximum number of parallel uploads |
| `disable_duet` | boolean | No | Whether to disable duets on the videos. |
| `privacy_level` | string | No | Privacy level for published videos. Options: SELF_ONLY, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, PUBLIC_TO_EVERYONE. |
| `disable_stitch` | boolean | No | Whether to disable stitches on the videos. |
| `disable_comment` | boolean | No | Whether to disable comments on the videos. |
| `files_to_upload` | array | No | List of video files to upload to TikTok in parallel. Supports common video formats like MP4, MOV, WebM. |
| `chunk_size_bytes` | integer | No | Chunk size hint for multi-chunk uploads (bytes, 1MB-64MB). For single-chunk uploads, automatically uses file_size if not provided. |
| `video_cover_timestamp_ms` | integer | No | Timestamp in milliseconds to use as video cover/thumbnail. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
