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

# TikTok Settings

> API settings for posting to TikTok

Every TikTok post carries a settings block, and `content_posting_method` is the field that matters most: it decides whether the post publishes or lands in the account's app inbox.

Creating the OAuth app and connecting a channel: [TikTok setup guide](/installation/providers/tiktok).

## Settings Schema

```json theme={"system"}
{
  "settings": {
    "__type": "tiktok",
    "title": "",
    "privacy_level": "PUBLIC_TO_EVERYONE",
    "duet": false,
    "stitch": false,
    "comment": true,
    "autoAddMusic": "no",
    "brand_content_toggle": false,
    "brand_organic_toggle": false,
    "video_made_with_ai": false,
    "content_posting_method": "DIRECT_POST"
  }
}
```

<Warning>
  **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.
</Warning>

## Fields

| Field                    | Type      | Required | Description                                                                                              |
| ------------------------ | --------- | -------- | -------------------------------------------------------------------------------------------------------- |
| `__type`                 | `string`  | Yes      | Must be `tiktok`                                                                                         |
| `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      | `DIRECT_POST` publishes straight away; `UPLOAD` sends it to the TikTok app inbox                         |

### What the qualifiers mean

| Qualifier          | What it means                                                                                                                                                                   |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `DIRECT_POST` only | TikTok applies the setting only when `content_posting_method` is `DIRECT_POST`. With `UPLOAD` the field is still required by the PostQueen 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                    |
| ----------------------- | ------------------------------ |
| `PUBLIC_TO_EVERYONE`    | Anyone can view                |
| `MUTUAL_FOLLOW_FRIENDS` | Only mutual followers can view |
| `FOLLOWER_OF_CREATOR`   | Only your followers can view   |
| `SELF_ONLY`             | Only you can view              |

### `autoAddMusic`

| Value | Description                |
| ----- | -------------------------- |
| `yes` | TikTok will auto-add music |
| `no`  | No automatic music         |

### `content_posting_method`

| 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. |

<Check>
  `DIRECT_POST` is the mode that finishes the job. Nobody has to open the TikTok app afterwards.
</Check>

<Warning>
  A post created with `UPLOAD` is reported as **successfully published** by the PostQueen 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.
</Warning>

***

## Complete Example

<Tabs>
  <Tab title="Public video">
    Interactions enabled, published straight away.

    ```json theme={"system"}
    {
      "type": "schedule",
      "date": "2024-12-14T10:00:00.000Z",
      "shortLink": false,
      "tags": [],
      "posts": [
        {
          "integration": {
            "id": "your-tiktok-integration-id"
          },
          "value": [
            {
              "content": "Check out this awesome tip! 🔥 #tips #viral #fyp",
              "image": [
                {
                  "id": "video-id",
                  "path": "https://uploads.postqueen.ai/tiktok-video.mp4"
                }
              ]
            }
          ],
          "settings": {
            "__type": "tiktok",
            "title": "Quick Productivity Tip",
            "privacy_level": "PUBLIC_TO_EVERYONE",
            "duet": true,
            "stitch": true,
            "comment": true,
            "autoAddMusic": "no",
            "brand_content_toggle": false,
            "brand_organic_toggle": false,
            "video_made_with_ai": false,
            "content_posting_method": "DIRECT_POST"
          }
        }
      ]
    }
    ```
  </Tab>

  <Tab title="Branded content">
    ```json theme={"system"}
    {
      "settings": {
        "__type": "tiktok",
        "title": "Partnership with Brand",
        "privacy_level": "PUBLIC_TO_EVERYONE",
        "duet": false,
        "stitch": false,
        "comment": true,
        "autoAddMusic": "no",
        "brand_content_toggle": true,
        "brand_organic_toggle": true,
        "video_made_with_ai": false,
        "content_posting_method": "DIRECT_POST"
      }
    }
    ```
  </Tab>

  <Tab title="AI-generated">
    ```json theme={"system"}
    {
      "settings": {
        "__type": "tiktok",
        "title": "AI Generated Art",
        "privacy_level": "PUBLIC_TO_EVERYONE",
        "duet": true,
        "stitch": true,
        "comment": true,
        "autoAddMusic": "yes",
        "brand_content_toggle": false,
        "brand_organic_toggle": false,
        "video_made_with_ai": true,
        "content_posting_method": "DIRECT_POST"
      }
    }
    ```
  </Tab>

  <Tab title="Private">
    Visible only to you.

    ```json theme={"system"}
    {
      "settings": {
        "__type": "tiktok",
        "title": "",
        "privacy_level": "SELF_ONLY",
        "duet": false,
        "stitch": false,
        "comment": false,
        "autoAddMusic": "no",
        "brand_content_toggle": false,
        "brand_organic_toggle": false,
        "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, switch to [`content_posting_method: "UPLOAD"`](#content_posting_method), which keeps only the title/content.
  </Tab>
</Tabs>

## Next steps

<CardGroup cols={2}>
  <Card title="Connect the channel" icon="plug" href="/providers/tiktok">
    Create the OAuth app and link the TikTok account.
  </Card>

  <Card title="Schedule the post" icon="paper-plane" href="/public-api/posts/create">
    The create endpoint, field by field, with a worked request.
  </Card>

  <Card title="Get media on HTTPS" icon="cloud-arrow-up" href="/public-api/uploads/upload-from-url">
    Pull a remote file into storage so TikTok can reach it.
  </Card>

  <Card title="When nothing appears" icon="triangle-exclamation" href="/troubleshooting/post-failed">
    Work out why a post that reported success is not on the profile.
  </Card>
</CardGroup>
