TikTok Video & Multi-Photo Posts

Publish or schedule TikTok videos and multi-photo (carousel) posts using the Publer API. This feature supports all TikTok-specific options, including privacy, comments, branded content, and more.

Overview

Publer enables you to directly post or schedule TikTok videos and multi-photo posts (carousels) from your app or workflow.

You can only post to one TikTok account at a time—TikTok does not allow duplicate content or posting to multiple accounts simultaneously.

  • Video posts: Upload and schedule single video posts. Supports cover selection, privacy, comment/duet/stitch toggles, and branded content disclosures.

  • Multi-photo posts (carousels): Upload and schedule up to 35 photos, each with an optional caption, as a single post. Supports music auto-add, privacy, and engagement options.

How It Works

To schedule or publish a TikTok post, use the Immediate Publishing or Manual Scheduling API endpoint with a networks.tiktok object describing your post.

Key Rules

  • No recurring or recycled videos: TikTok does not allow duplicate content.

  • Watermarks: Not supported due to TikTok API limits.

  • Privacy and engagement: Options are synced from TikTok and may vary by account type, check your account details from Accounts.

  • Thumbnails (Videos): You can select a cover frame when posting automatically.

Video Post Example

{
  "bulk": {
    "state": "scheduled",
    "posts": [
      {
        "accounts": [
          {
            "id": "tiktok_account_123",
            "scheduled_at": "2025-08-26T12:00:00Z"
          }
        ],
        "networks": {
          "tiktok": {
            "type": "video",
            "text": "Check out our new product launch! #launch #tiktok",
            "media": [
              {
                "id": "media_video_001",
                "path": "https://storage.com/launch-video.mp4",
                "default_thumbnail": 2,
                "thumbnails": [
                  {
                    "real": "https://storage.com/thumb1.jpg",
                    "small": "https://storage.com/thumb1_small.jpg"
                  },
                  {
                    "real": "https://storage.com/thumb2.jpg",
                    "small": "https://storage.com/thumb2_small.jpg"
                  },
                  {
                    "real": "https://storage.com/thumb3.jpg",
                    "small": "https://storage.com/thumb3_small.jpg"
                  }
                ]
              }
            ],
            "details": {
              "privacy": "PUBLIC_TO_EVERYONE",
              "comment": true,
              "duet": true,
              "stitch": true,
              "promotional": false,
              "paid": false,
              "reminder": false
            }
          }
        }
      }
    ]
  }
}

Multi-Photo Post (Carousel) Example

{
  "bulk": {
    "state": "scheduled",
    "posts": [
      {
        "accounts": [
          {
            "id": "tiktok_account_123",
            "scheduled_at": "2025-08-26T14:00:00Z"
          }
        ],
        "networks": {
          "tiktok": {
            "type": "photo",
            "title": "Summer Vibes ☀️",
            "text": "Nothing beats a perfect summer day! What's your favorite summer activity? 🏖️ #summer #lifestyle #photography",
            "media": [
              { "id": "img1", "path": "https://storage.com/summer1.jpg", "caption": "Beach day" },
              { "id": "img2", "path": "https://storage.com/summer2.jpg", "caption": "Sunset views" },
              { "id": "img3", "path": "https://storage.com/summer3.jpg", "caption": "Ice cream time" }
            ],
            "details": {
              "privacy": "PUBLIC_TO_EVERYONE",
              "auto_add_music": true,
              "comment": true,
              "promotional": false,
              "paid": false,
              "reminder": false
            }
          }
        }
      }
    ]
  }
}

TikTok-Specific Parameters

Video Post Parameters

Field
Type
Required
Description

type

string

Yes

Must be "video".

text

string

Yes

Video description text (max 2,200 chars).

media[]

array

Yes

Single video object (see below).

media[].id

string

Yes

Media ID if using stored media.

media[].path

string

No

URL to the video file.

media[].default_thumbnail

integer

No

(Optional) Index of the selected thumbnail (0-based).

media[].thumbnails[]

array

Yes

Array of thumbnails with real and small URLs.

media[].thumbnails[].real

string

No

Full-size thumbnail image URL.

media[].thumbnails[].small

string

No

Small-size thumbnail image URL.

details

object

Yes

TikTok-specific options (see below).

details.privacy

string

No

Who can view: "PUBLIC_TO_EVERYONE", "MUTUAL_FOLLOW_FRIENDS", "FOLLOWER_OF_CREATOR", "SELF_ONLY"

details.comment

boolean

No

Allow comments (default: false).

details.duet

boolean

No

Allow duets (default: true).

details.stitch

boolean

No

Allow stitching (default: true).

details.promotional

boolean

No

Mark as promotional/brand organic content (cannot be private, default: false).

details.paid

boolean

No

Mark as paid partnership (cannot be private, default: false).

Carousel (Multi-Photo) Post Parameters

Field
Type
Required
Description

type

string

Yes

Must be "photo".

title

string

Yes

Carousel post title (max 90 chars).

text

string

Yes

Description text (max 4,000 chars).

media[]

array

Yes

Up to 35 photo objects (see below).

media[].id

string

Yes

Media ID if using stored media.

media[].path

string

No

(Optional) URL to the photo file.

media[].caption

string

No

(Optional) Caption for each photo.

details

object

Yes

TikTok-specific options (see below).

details.privacy

string

No

Who can view: "PUBLIC_TO_EVERYONE", "MUTUAL_FOLLOW_FRIENDS", "FOLLOWER_OF_CREATOR", "SELF_ONLY"

details.comment

boolean

No

Allow comments (default: false).

details.auto_add_music

boolean

No

Auto-add music to slideshow (default: false).

details.promotional

boolean

No

Mark as promotional/brand organic content (cannot be private, default: false).

details.paid

boolean

No

Mark as paid partnership (cannot be private, default: false).

details.reminder

boolean

No

Upload-only mode (user must publish manually, default: false).

Tips & Limitations

  • No GIF/video mixing: Carousel posts cannot mix photos, GIFs, or videos.

  • Privacy: "Everyone" is only available if the TikTok account is public.

  • Branded content: Cannot be private. Once posted, branded content is permanently labeled.

  • No recurring or recycled posts: TikTok blocks duplicate content.

  • Watermarks: Not supported.

  • Links: Not supported in TikTok posts.

Last updated

Was this helpful?