> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish Post

> Publishes a video or a photo post (1 to 35 images, shown as a swipeable photo post) to a TikTok account, either posting it directly with a caption and privacy level, or sending it to the creator's ...

Publishes a video or a photo post (1 to 35 images, shown as a swipeable photo post) to a TikTok account, either posting it directly with a caption and privacy level, or sending it to the creator's TikTok inbox to finish in the app. Markifact handles the transfer to TikTok, so any reachable media URL works, including Google Drive share links. Call tiktok\_get\_creator\_info first to see which privacy levels the account allows, since a direct post must use one of them.

|                       |                       |
| --------------------- | --------------------- |
| **App**               | TikTok Organic        |
| **Operation ID**      | `tiktok_publish_post` |
| **Type**              | Action                |
| **Connection**        | `tiktok` (required)   |
| **Credits per run**   | 2                     |
| **Agent / MCP tool**  | Yes                   |
| **Requires approval** | Yes (write operation) |

## Inputs

| Field                      | Type                       | Required | Default  | Description                                                                                                                                                                                                                                                                                                            |
| -------------------------- | -------------------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `post_type`                | string or SelectableOption | No       | `video`  | What to publish. Available options: 'video' (a single video) or 'photo' (a photo post carrying 1 to 35 images, which TikTok shows as a swipeable photo post).                                                                                                                                                          |
| `post_mode`                | string or SelectableOption | No       | `direct` | How to publish. Available options: 'direct' (publishes straight to the account) or 'draft' (uploads to the creator's TikTok inbox so they finish and post it in the TikTok app). In draft mode TikTok collects the settings in its own editor, so the privacy and interaction fields below are only used for 'direct'. |
| `video_url`                | string                     | No       | -        | The video to post, required for 'video' posts. Accepts a direct video URL or a Google Drive share link with sharing set to 'Anyone with the link'.                                                                                                                                                                     |
| `image_urls`               | string or array of string  | No       | -        | The images to post, required for 'photo' posts: 1 to 35 URLs as a list or one string separated by commas or new lines. TikTok accepts JPEG and WebP images up to 20MB each. Accepts direct URLs or Google Drive share links.                                                                                           |
| `title`                    | string                     | No       | -        | Photo posts only, up to 90 characters. TikTok shows this as the post's title above the description. Videos have no separate title, so use caption for them.                                                                                                                                                            |
| `caption`                  | string                     | No       | -        | The caption, up to 2200 characters, shown as the description on photo posts. Hashtags and @mentions can be included in the text.                                                                                                                                                                                       |
| `privacy_level`            | string or SelectItem       | No       | -        | Who can see the post. Required for 'direct' posts. Must be one of the options the account actually allows, which tiktok\_get\_creator\_info returns in privacy\_level\_options: 'PUBLIC\_TO\_EVERYONE', 'MUTUAL\_FOLLOW\_FRIENDS' (friends), 'FOLLOWER\_OF\_CREATOR' (followers), 'SELF\_ONLY' (only me).              |
| `disable_comment`          | boolean                    | No       | -        | Set to True to turn off comments on this post.                                                                                                                                                                                                                                                                         |
| `disable_duet`             | boolean                    | No       | -        | Video posts only. Set to True to stop others creating Duets from this post.                                                                                                                                                                                                                                            |
| `disable_stitch`           | boolean                    | No       | -        | Video posts only. Set to True to stop others stitching this post.                                                                                                                                                                                                                                                      |
| `video_cover_timestamp_ms` | integer or string          | No       | -        | Video posts only. Which frame to use as the cover, in milliseconds from the start. Defaults to the first frame.                                                                                                                                                                                                        |
| `auto_add_music`           | boolean                    | No       | -        | Photo posts only. Set to True to let TikTok add a recommended soundtrack to the photo post.                                                                                                                                                                                                                            |
| `brand_organic_toggle`     | boolean                    | No       | -        | Set to True when the post promotes the creator's own business. TikTok labels it 'Promotional content'.                                                                                                                                                                                                                 |
| `brand_content_toggle`     | boolean                    | No       | -        | Set to True when the post is a paid partnership with a brand. TikTok labels it 'Paid partnership'. TikTok does not allow branded content on private posts, so this cannot be combined with SELF\_ONLY privacy.                                                                                                         |

### SelectItem

| Field   | Type   | Required | Default | Description                                                                                          |
| ------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------- |
| `value` | string | Yes      | -       | The value of the selectable item.                                                                    |
| `label` | string | Yes      | -       | The label of the selectable item, used for display purposes. If not provided, defaults to the value. |

### SelectableOption

| Field   | Type   | Required | Default | Description |
| ------- | ------ | -------- | ------- | ----------- |
| `value` | string | Yes      | -       |             |
| `label` | string | Yes      | -       |             |

## Output

**Type**: `Dict`

Returns the publish id and final status. Posts are processed asynchronously, so the node waits for TikTok to finish before returning. TikTok does not return the new post's id, so use tiktok\_list\_posts to find it.

**Fields**: `publish_id`, `status`, `post_type`, `post_mode`, `privacy_level`, `account_name`, `media_count`, `creator_username`, `creator_nickname`

**Example**:

```json theme={"dark"}
{
  "publish_id": "v_pub_url~v2.7673052500353845256",
  "status": "PUBLISH_COMPLETE",
  "post_type": "photo",
  "post_mode": "direct",
  "privacy_level": "PUBLIC_TO_EVERYONE",
  "account_name": "My Brand",
  "media_count": 3
}
```
