From 5fb180e9a5a470d6eea83fd3cf3de4d5e5e54564 Mon Sep 17 00:00:00 2001 From: Gilad Resisi Date: Fri, 10 Jul 2026 10:39:38 +0700 Subject: [PATCH 1/3] docs(tiktok): warn that content_posting_method UPLOAD never publishes UPLOAD sends the media to the user's TikTok app inbox (SEND_TO_USER_INBOX), where it must be finished manually within 24h or it is discarded. The API still reports the post as successful, so callers had no way to know. The enum was documented as "Upload for manual posting", which reads like a routine choice. Describe the consequence in providers/tiktok.mdx and add a matching description to the TikTokSettings schema in openapi.json (hand-maintained, not generated). Field stays required; enum unchanged. Also retitle the "Private Video (Draft)" example, which paired UPLOAD with privacy_level SELF_ONLY and so taught that UPLOAD is how you make a draft. The two are unrelated: SELF_ONLY publishes a video only you can see, while UPLOAD does not publish at all. It is now "Send to TikTok App Inbox (not published)" with PUBLIC_TO_EVERYONE, and notes how to get a private post. Mirrors gitroomhq/postiz-app#1687, which fixes the same bare enum in the agent @Rules text and the TikTokDto schema. --- public-api/openapi.json | 3 ++- public-api/providers/tiktok.mdx | 22 +++++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/public-api/openapi.json b/public-api/openapi.json index 154a5fa..5b919e4 100644 --- a/public-api/openapi.json +++ b/public-api/openapi.json @@ -2729,7 +2729,8 @@ "enum": [ "DIRECT_POST", "UPLOAD" - ] + ], + "description": "Required. Use \"DIRECT_POST\" to actually publish the post to TikTok. \"UPLOAD\" does NOT publish: it only sends the media to the user's TikTok app inbox, where they must manually finish and publish it within 24 hours or it is discarded. Only use \"UPLOAD\" when the user explicitly asks to review or edit the post inside the TikTok app before publishing." } } }, diff --git a/public-api/providers/tiktok.mdx b/public-api/providers/tiktok.mdx index 0061cae..418038f 100644 --- a/public-api/providers/tiktok.mdx +++ b/public-api/providers/tiktok.mdx @@ -39,7 +39,7 @@ When uploading a video to TikTok, use the following settings schema: | `brand_content_toggle` | `boolean` | Yes | Branded content disclosure | | `brand_organic_toggle` | `boolean` | Yes | Organic branded content | | `video_made_with_ai` | `boolean` | No | AI-generated content disclosure | -| `content_posting_method` | `string` | Yes | How to post the content | +| `content_posting_method` | `string` | Yes | Whether to publish directly or send to the TikTok app inbox — see below | ### `privacy_level` @@ -61,8 +61,15 @@ When uploading a video to TikTok, use the following settings schema: | Value | Description | |-------|-------------| -| `DIRECT_POST` | Post directly to TikTok | -| `UPLOAD` | Upload for manual posting | +| `DIRECT_POST` | Publishes the post to TikTok. **Use this unless the user explicitly wants to review the post in the TikTok app first.** | +| `UPLOAD` | Does **not** publish. Sends the media to the account's TikTok app inbox, where the user must manually finish and publish it within 24 hours or it is discarded. | + + +A post created with `UPLOAD` is reported as **successfully published** by the Postiz API, because +the upload to TikTok did succeed. It will not appear on the TikTok profile until the account owner +opens the TikTok app, finds the draft in their inbox, and publishes it manually. Choose `UPLOAD` +only when that manual step is what the user asked for. + --- @@ -150,14 +157,14 @@ When uploading a video to TikTok, use the following settings schema: } ``` -### Private Video (Draft) +### Send to TikTok App Inbox (not published) ```json { "settings": { "__type": "tiktok", "title": "", - "privacy_level": "SELF_ONLY", + "privacy_level": "PUBLIC_TO_EVERYONE", "duet": false, "stitch": false, "comment": false, @@ -169,6 +176,11 @@ When uploading a video to TikTok, use the following settings schema: } ``` +This does **not** publish. The video is delivered to the account's TikTok app inbox, where the +owner must finish and publish it manually within 24 hours — see +[`content_posting_method`](#content_posting_method) above. To publish a video that only you can +see, use `privacy_level: "SELF_ONLY"` with `content_posting_method: "DIRECT_POST"`. + **Important:** TikTok requires media files to be publicly accessible via HTTPS. Local files or private URLs will fail. Use [Cloudflare R2](/configuration/r2) or similar storage with public access. From 7509f2b6c8614050936f0be6c8a841db699b8b41 Mon Sep 17 00:00:00 2001 From: Gilad Resisi Date: Wed, 15 Jul 2026 12:32:10 +0700 Subject: [PATCH 2/3] docs(tiktok): document which settings apply per posting method and media type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TikTok settings vary along two axes that the docs never stated, so users ticked settings that TikTok silently discarded (e.g. "Video made with AI" on an UPLOAD post — TikTok's inbox upload endpoint accepts no post_info at all, only the title/content survives): 1. Posting method: every setting except the title requires content_posting_method=DIRECT_POST; UPLOAD keeps only the title. 2. Media type (within DIRECT_POST): duet, stitch and video_made_with_ai are video-only (photo post_info has no such fields); autoAddMusic is photo-only; privacy_level, comment and the brand toggles apply to both. Annotate the settings table in public-api/providers/tiktok.mdx with both axes and mirror the per-field descriptions from postiz-app's TikTokDto into the TikTokSettings schema in openapi.json (hand-maintained; only descriptions added, no field or required-ness changes). Extend the content_posting_method description with the discard behavior. Also switch the "Send to TikTok App Inbox" example to a real "Private Video" one (SELF_ONLY + DIRECT_POST): it paired UPLOAD with settings TikTok drops, and the dead settings cannot simply be removed because the API still requires them. The prose now explains how to send to the inbox instead and that only the title survives there. Add matching one-line caveats to the CLI examples (platform-examples, media-upload), the settings tables in public-api/posts/create.mdx and public-api/introduction.mdx, and a "Posting settings" section on the user-facing provider page describing the collapsed panel in UPLOAD mode. Follows up on 5fb180e (UPLOAD-never-publishes warning) and mirrors gitroomhq/postiz-app#1728. Co-Authored-By: Claude Fable 5 --- cli/media-upload.mdx | 2 ++ cli/platform-examples.mdx | 2 ++ providers/tiktok.mdx | 13 +++++++++++ public-api/introduction.mdx | 2 ++ public-api/openapi.json | 29 +++++++++++++++--------- public-api/posts/create.mdx | 2 ++ public-api/providers/tiktok.mdx | 40 +++++++++++++++++++-------------- 7 files changed, 63 insertions(+), 27 deletions(-) diff --git a/cli/media-upload.mdx b/cli/media-upload.mdx index a22e16c..8bd102a 100644 --- a/cli/media-upload.mdx +++ b/cli/media-upload.mdx @@ -73,3 +73,5 @@ postiz posts:create \ --settings '{"privacy_level":"PUBLIC_TO_EVERYONE"}' \ -i "tiktok-integration-id" ``` + +`privacy_level` and the other TikTok settings apply only when `content_posting_method` is `"DIRECT_POST"` — with `"UPLOAD"` (send to the TikTok app inbox instead of publishing) TikTok keeps only the post content. diff --git a/cli/platform-examples.mdx b/cli/platform-examples.mdx index 0908bba..b256733 100644 --- a/cli/platform-examples.mdx +++ b/cli/platform-examples.mdx @@ -97,6 +97,8 @@ postiz posts:create \ -i "tiktok-id" ``` +TikTok applies these settings only when `content_posting_method` is `"DIRECT_POST"` — with `"UPLOAD"` (send to the TikTok app inbox instead of publishing) every setting except the post content is silently discarded. `duet` and `stitch` apply to video posts only. + ## Instagram ```bash diff --git a/providers/tiktok.mdx b/providers/tiktok.mdx index 9587fc4..c0e3b36 100644 --- a/providers/tiktok.mdx +++ b/providers/tiktok.mdx @@ -85,3 +85,16 @@ TIKTOK_CLIENT_SECRET=12345678901234567890123456789012 Go to the Postiz web interface, and click on the "Add Channel" button. Select "TikTok" from the list of available channels. You should be redirected to TikTok to authorize the application. + +## Posting settings + +When composing a TikTok post, the "How do you want to post?" setting decides which other settings apply: + +- **Post directly to TikTok** publishes the post and applies all the settings below. +- **Upload without posting** does **not** publish: it sends the media to the account's TikTok app inbox, where the owner must finish and publish it manually within 24 hours or it is discarded. TikTok keeps only the post content/title in this mode, so the settings panel collapses to hide the other settings while it is selected. + +Some settings also depend on the media type: + +- **Allow Duet**, **Allow Stitch**, and **Video made with AI** apply to videos only — TikTok has no equivalent for photo posts. +- **Auto add music** applies to photos only. +- Privacy level, comments, and the branded-content toggles apply to both videos and photos. diff --git a/public-api/introduction.mdx b/public-api/introduction.mdx index e7b52ed..445eaf0 100644 --- a/public-api/introduction.mdx +++ b/public-api/introduction.mdx @@ -126,6 +126,8 @@ When creating posts, each social media platform has its own settings schema. The |----------|----------|--------------| | YouTube | `youtube` | `title`, `type`, `selfDeclaredMadeForKids`, `thumbnail`, `tags` | | TikTok | `tiktok` | `privacy_level`, `duet`, `stitch`, `comment`, `autoAddMusic`, `brand_content_toggle`, `brand_organic_toggle`, `content_posting_method` | + + TikTok applies every setting except the title only when `content_posting_method` is `DIRECT_POST`; `duet`/`stitch` are video-only and `autoAddMusic` photo-only — see [TikTok settings](/public-api/providers/tiktok). | Platform | `__type` | Key settings | diff --git a/public-api/openapi.json b/public-api/openapi.json index 5b919e4..ffafa52 100644 --- a/public-api/openapi.json +++ b/public-api/openapi.json @@ -2688,7 +2688,8 @@ }, "title": { "type": "string", - "maxLength": 90 + "maxLength": 90, + "description": "Used as the title of the post. The only setting TikTok keeps when content_posting_method=UPLOAD." }, "privacy_level": { "type": "string", @@ -2697,32 +2698,40 @@ "MUTUAL_FOLLOW_FRIENDS", "FOLLOWER_OF_CREATOR", "SELF_ONLY" - ] + ], + "description": "Applied only when content_posting_method=DIRECT_POST. Ignored by TikTok on UPLOAD." }, "duet": { - "type": "boolean" + "type": "boolean", + "description": "Video posts only, and only when content_posting_method=DIRECT_POST. TikTok has no duet setting for photo posts." }, "stitch": { - "type": "boolean" + "type": "boolean", + "description": "Video posts only, and only when content_posting_method=DIRECT_POST. TikTok has no stitch setting for photo posts." }, "comment": { - "type": "boolean" + "type": "boolean", + "description": "Applied only when content_posting_method=DIRECT_POST. Ignored by TikTok on UPLOAD." }, "autoAddMusic": { "type": "string", "enum": [ "yes", "no" - ] + ], + "description": "Photo posts only, and only when content_posting_method=DIRECT_POST. Ignored by TikTok on UPLOAD." }, "brand_content_toggle": { - "type": "boolean" + "type": "boolean", + "description": "Applied only when content_posting_method=DIRECT_POST. Ignored by TikTok on UPLOAD." }, "brand_organic_toggle": { - "type": "boolean" + "type": "boolean", + "description": "Applied only when content_posting_method=DIRECT_POST. Ignored by TikTok on UPLOAD." }, "video_made_with_ai": { - "type": "boolean" + "type": "boolean", + "description": "Labels the post as AI generated. Video posts only, and only when content_posting_method=DIRECT_POST. TikTok has no AI-generated label for photo posts, and discards it on UPLOAD." }, "content_posting_method": { "type": "string", @@ -2730,7 +2739,7 @@ "DIRECT_POST", "UPLOAD" ], - "description": "Required. Use \"DIRECT_POST\" to actually publish the post to TikTok. \"UPLOAD\" does NOT publish: it only sends the media to the user's TikTok app inbox, where they must manually finish and publish it within 24 hours or it is discarded. Only use \"UPLOAD\" when the user explicitly asks to review or edit the post inside the TikTok app before publishing." + "description": "Required. Use \"DIRECT_POST\" to actually publish the post to TikTok. \"UPLOAD\" does NOT publish: it only sends the media to the user's TikTok app inbox, where they must manually finish and publish it within 24 hours or it is discarded. Only use \"UPLOAD\" when the user explicitly asks to review or edit the post inside the TikTok app before publishing. \"UPLOAD\" also makes TikTok ignore every other setting in this object except the title." } } }, diff --git a/public-api/posts/create.mdx b/public-api/posts/create.mdx index 479a34d..3d8bdf7 100644 --- a/public-api/posts/create.mdx +++ b/public-api/posts/create.mdx @@ -56,6 +56,8 @@ When creating posts, each social media platform requires different settings. The |----------|----------|-------------------| | YouTube | `youtube` | `title`, `type` | | TikTok | `tiktok` | `privacy_level`, `duet`, `stitch`, `comment`, `autoAddMusic`, `brand_content_toggle`, `brand_organic_toggle`, `content_posting_method` | + + TikTok honors these settings only when `content_posting_method` is `DIRECT_POST` — with `UPLOAD` it keeps only the post content/title. `duet`, `stitch`, and `video_made_with_ai` apply to video posts only; `autoAddMusic` to photo posts only. See [TikTok settings](/public-api/providers/tiktok). | Platform | `__type` | Required Settings | diff --git a/public-api/providers/tiktok.mdx b/public-api/providers/tiktok.mdx index 418038f..564022a 100644 --- a/public-api/providers/tiktok.mdx +++ b/public-api/providers/tiktok.mdx @@ -30,17 +30,23 @@ When uploading a video to TikTok, use the following settings schema: | Field | Type | Required | Description | |-------|------|----------|-------------| | `__type` | `string` | Yes | Must be `tiktok` | -| `title` | `string` | No | Video title (max 90 characters) | -| `privacy_level` | `string` | Yes | Who can view the video | -| `duet` | `boolean` | Yes | Allow duets | -| `stitch` | `boolean` | Yes | Allow stitches | -| `comment` | `boolean` | Yes | Allow comments | -| `autoAddMusic` | `string` | Yes | Auto-add music to video | -| `brand_content_toggle` | `boolean` | Yes | Branded content disclosure | -| `brand_organic_toggle` | `boolean` | Yes | Organic branded content | -| `video_made_with_ai` | `boolean` | No | AI-generated content disclosure | +| `title` | `string` | No | Video title (max 90 characters). The only setting TikTok keeps when `content_posting_method` is `UPLOAD` | +| `privacy_level` | `string` | Yes | Who can view the video. `DIRECT_POST` only | +| `duet` | `boolean` | Yes | Allow duets. Video posts only; `DIRECT_POST` only | +| `stitch` | `boolean` | Yes | Allow stitches. Video posts only; `DIRECT_POST` only | +| `comment` | `boolean` | Yes | Allow comments. `DIRECT_POST` only | +| `autoAddMusic` | `string` | Yes | Auto-add music. Photo posts only; `DIRECT_POST` only | +| `brand_content_toggle` | `boolean` | Yes | Branded content disclosure. `DIRECT_POST` only | +| `brand_organic_toggle` | `boolean` | Yes | Organic branded content. `DIRECT_POST` only | +| `video_made_with_ai` | `boolean` | No | AI-generated content disclosure. Video posts only; `DIRECT_POST` only | | `content_posting_method` | `string` | Yes | Whether to publish directly or send to the TikTok app inbox — see below | +**`DIRECT_POST` only** — TikTok applies the setting only when `content_posting_method` is +`DIRECT_POST`. With `UPLOAD` the field is still required by the Postiz API, but TikTok silently +discards it. **Video posts only** — TikTok's photo posts have no duet, stitch, or AI-generated +label, so these settings are discarded when the post is a picture. **Photo posts only** — +`autoAddMusic` has no effect on videos. + ### `privacy_level` | Value | Description | @@ -62,7 +68,7 @@ When uploading a video to TikTok, use the following settings schema: | Value | Description | |-------|-------------| | `DIRECT_POST` | Publishes the post to TikTok. **Use this unless the user explicitly wants to review the post in the TikTok app first.** | -| `UPLOAD` | Does **not** publish. Sends the media to the account's TikTok app inbox, where the user must manually finish and publish it within 24 hours or it is discarded. | +| `UPLOAD` | Does **not** publish. Sends the media to the account's TikTok app inbox, where the user must manually finish and publish it within 24 hours or it is discarded. TikTok keeps only the title/content in this mode — every other setting is silently discarded. | A post created with `UPLOAD` is reported as **successfully published** by the Postiz API, because @@ -157,29 +163,29 @@ only when that manual step is what the user asked for. } ``` -### Send to TikTok App Inbox (not published) +### Private Video (visible only to you) ```json { "settings": { "__type": "tiktok", "title": "", - "privacy_level": "PUBLIC_TO_EVERYONE", + "privacy_level": "SELF_ONLY", "duet": false, "stitch": false, "comment": false, "autoAddMusic": "no", "brand_content_toggle": false, "brand_organic_toggle": false, - "content_posting_method": "UPLOAD" + "content_posting_method": "DIRECT_POST" } } ``` -This does **not** publish. The video is delivered to the account's TikTok app inbox, where the -owner must finish and publish it manually within 24 hours — see -[`content_posting_method`](#content_posting_method) above. To publish a video that only you can -see, use `privacy_level: "SELF_ONLY"` with `content_posting_method: "DIRECT_POST"`. +This publishes a video that only the account owner can see. To send the media to the account's +TikTok app inbox instead of publishing, use `content_posting_method: "UPLOAD"` — but TikTok then +keeps only the title/content: every other setting above is still required by the API, yet +silently discarded — see [`content_posting_method`](#content_posting_method) above. **Important:** TikTok requires media files to be publicly accessible via HTTPS. Local files or private URLs will fail. Use [Cloudflare R2](/configuration/r2) or similar storage with public access. From f456bc9ba601899038eb01574a40cc03c5635ee7 Mon Sep 17 00:00:00 2001 From: Enno Gelhaus Date: Mon, 20 Jul 2026 10:38:07 +0200 Subject: [PATCH 3/3] feat: cleanup PR of AI markers --- cli/media-upload.mdx | 2 +- cli/platform-examples.mdx | 2 +- providers/tiktok.mdx | 2 +- public-api/introduction.mdx | 2 +- public-api/posts/create.mdx | 2 +- public-api/providers/tiktok.mdx | 19 ++++++++----------- 6 files changed, 13 insertions(+), 16 deletions(-) diff --git a/cli/media-upload.mdx b/cli/media-upload.mdx index 8bd102a..13738eb 100644 --- a/cli/media-upload.mdx +++ b/cli/media-upload.mdx @@ -74,4 +74,4 @@ postiz posts:create \ -i "tiktok-integration-id" ``` -`privacy_level` and the other TikTok settings apply only when `content_posting_method` is `"DIRECT_POST"` — with `"UPLOAD"` (send to the TikTok app inbox instead of publishing) TikTok keeps only the post content. +`privacy_level` and the other TikTok settings apply only when `content_posting_method` is `"DIRECT_POST"`, with `"UPLOAD"` (send to the TikTok app inbox instead of publishing) TikTok keeps only the post content. diff --git a/cli/platform-examples.mdx b/cli/platform-examples.mdx index b256733..60cd0b0 100644 --- a/cli/platform-examples.mdx +++ b/cli/platform-examples.mdx @@ -97,7 +97,7 @@ postiz posts:create \ -i "tiktok-id" ``` -TikTok applies these settings only when `content_posting_method` is `"DIRECT_POST"` — with `"UPLOAD"` (send to the TikTok app inbox instead of publishing) every setting except the post content is silently discarded. `duet` and `stitch` apply to video posts only. +TikTok applies these settings only when `content_posting_method` is `"DIRECT_POST"`, with `"UPLOAD"` (send to the TikTok app inbox instead of publishing) every setting except the post content is silently discarded. `duet` and `stitch` apply to video posts only. ## Instagram diff --git a/providers/tiktok.mdx b/providers/tiktok.mdx index c0e3b36..6fc499b 100644 --- a/providers/tiktok.mdx +++ b/providers/tiktok.mdx @@ -95,6 +95,6 @@ When composing a TikTok post, the "How do you want to post?" setting decides whi Some settings also depend on the media type: -- **Allow Duet**, **Allow Stitch**, and **Video made with AI** apply to videos only — TikTok has no equivalent for photo posts. +- **Allow Duet**, **Allow Stitch**, and **Video made with AI** apply to videos only, TikTok has no equivalent for photo posts. - **Auto add music** applies to photos only. - Privacy level, comments, and the branded-content toggles apply to both videos and photos. diff --git a/public-api/introduction.mdx b/public-api/introduction.mdx index 445eaf0..ea7a4df 100644 --- a/public-api/introduction.mdx +++ b/public-api/introduction.mdx @@ -127,7 +127,7 @@ When creating posts, each social media platform has its own settings schema. The | YouTube | `youtube` | `title`, `type`, `selfDeclaredMadeForKids`, `thumbnail`, `tags` | | TikTok | `tiktok` | `privacy_level`, `duet`, `stitch`, `comment`, `autoAddMusic`, `brand_content_toggle`, `brand_organic_toggle`, `content_posting_method` | - TikTok applies every setting except the title only when `content_posting_method` is `DIRECT_POST`; `duet`/`stitch` are video-only and `autoAddMusic` photo-only — see [TikTok settings](/public-api/providers/tiktok). + TikTok applies every setting except the title only when `content_posting_method` is `DIRECT_POST`; `duet`/`stitch` are video-only and `autoAddMusic` photo-only, see [TikTok settings](/public-api/providers/tiktok). | Platform | `__type` | Key settings | diff --git a/public-api/posts/create.mdx b/public-api/posts/create.mdx index 3d8bdf7..ba74160 100644 --- a/public-api/posts/create.mdx +++ b/public-api/posts/create.mdx @@ -57,7 +57,7 @@ When creating posts, each social media platform requires different settings. The | YouTube | `youtube` | `title`, `type` | | TikTok | `tiktok` | `privacy_level`, `duet`, `stitch`, `comment`, `autoAddMusic`, `brand_content_toggle`, `brand_organic_toggle`, `content_posting_method` | - TikTok honors these settings only when `content_posting_method` is `DIRECT_POST` — with `UPLOAD` it keeps only the post content/title. `duet`, `stitch`, and `video_made_with_ai` apply to video posts only; `autoAddMusic` to photo posts only. See [TikTok settings](/public-api/providers/tiktok). + TikTok honors these settings only when `content_posting_method` is `DIRECT_POST`, with `UPLOAD` it keeps only the post content/title. `duet`, `stitch`, and `video_made_with_ai` apply to video posts only; `autoAddMusic` to photo posts only. See [TikTok settings](/public-api/providers/tiktok). | Platform | `__type` | Required Settings | diff --git a/public-api/providers/tiktok.mdx b/public-api/providers/tiktok.mdx index 564022a..3787c2d 100644 --- a/public-api/providers/tiktok.mdx +++ b/public-api/providers/tiktok.mdx @@ -39,12 +39,12 @@ When uploading a video to TikTok, use the following settings schema: | `brand_content_toggle` | `boolean` | Yes | Branded content disclosure. `DIRECT_POST` only | | `brand_organic_toggle` | `boolean` | Yes | Organic branded content. `DIRECT_POST` only | | `video_made_with_ai` | `boolean` | No | AI-generated content disclosure. Video posts only; `DIRECT_POST` only | -| `content_posting_method` | `string` | Yes | Whether to publish directly or send to the TikTok app inbox — see below | +| `content_posting_method` | `string` | Yes | Whether to publish directly or send to the TikTok app inbox, see below | -**`DIRECT_POST` only** — TikTok applies the setting only when `content_posting_method` is +**`DIRECT_POST` only**: TikTok applies the setting only when `content_posting_method` is `DIRECT_POST`. With `UPLOAD` the field is still required by the Postiz API, but TikTok silently -discards it. **Video posts only** — TikTok's photo posts have no duet, stitch, or AI-generated -label, so these settings are discarded when the post is a picture. **Photo posts only** — +discards it. **Video posts only**: TikTok's photo posts have no duet, stitch, or AI-generated +label, so these settings are discarded when the post is a picture. **Photo posts only**: `autoAddMusic` has no effect on videos. ### `privacy_level` @@ -68,13 +68,10 @@ label, so these settings are discarded when the post is a picture. **Photo posts | Value | Description | |-------|-------------| | `DIRECT_POST` | Publishes the post to TikTok. **Use this unless the user explicitly wants to review the post in the TikTok app first.** | -| `UPLOAD` | Does **not** publish. Sends the media to the account's TikTok app inbox, where the user must manually finish and publish it within 24 hours or it is discarded. TikTok keeps only the title/content in this mode — every other setting is silently discarded. | +| `UPLOAD` | Does **not** publish. Sends the media to the account's TikTok app inbox, where the user must manually finish and publish it within 24 hours or it is discarded. TikTok keeps only the title/content in this mode, every other setting is silently discarded. | -A post created with `UPLOAD` is reported as **successfully published** by the Postiz API, because -the upload to TikTok did succeed. It will not appear on the TikTok profile until the account owner -opens the TikTok app, finds the draft in their inbox, and publishes it manually. Choose `UPLOAD` -only when that manual step is what the user asked for. +A post created with `UPLOAD` is reported as **successfully published** by the Postiz API, because the upload to TikTok did succeed. It will not appear on the TikTok profile until the account owner opens the TikTok app, finds the draft in their inbox, and publishes it manually. Choose `UPLOAD` only when that manual step is what the user asked for. --- @@ -183,9 +180,9 @@ only when that manual step is what the user asked for. ``` This publishes a video that only the account owner can see. To send the media to the account's -TikTok app inbox instead of publishing, use `content_posting_method: "UPLOAD"` — but TikTok then +TikTok app inbox instead of publishing, use `content_posting_method: "UPLOAD"`, but TikTok then keeps only the title/content: every other setting above is still required by the API, yet -silently discarded — see [`content_posting_method`](#content_posting_method) above. +silently discarded, see [`content_posting_method`](#content_posting_method) above. **Important:** TikTok requires media files to be publicly accessible via HTTPS. Local files or private URLs will fail. Use [Cloudflare R2](/configuration/r2) or similar storage with public access.