TikTok privacy_level_options: public vs private account values

TikTok creator_info returns different privacy_level_options for public and private accounts, and Direct Post privacy_level must match one. Values for each.

4 min readSume
All posts

TikTok returns different privacy choices for public and private accounts, and Direct Post accepts only a value from that list. The Query Creator Info page says a public account gets PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS and SELF_ONLY, while a private account gets FOLLOWER_OF_CREATOR, MUTUAL_FOLLOW_FRIENDS and SELF_ONLY. The Direct Post page says the privacy_level you send must match one of those options (read 2026-10-02).

What are the privacy_level values?

privacy_level is a required field in post_info. The enum on the Direct Post page has four values; which of them your user may pick depends on the account.

privacy_level_options by account type on TikTok's Query Creator Info page (read 2026-10-02)
ValuePublic accountPrivate account
PUBLIC_TO_EVERYONEOfferedNot offered
FOLLOWER_OF_CREATORNot offeredOffered
MUTUAL_FOLLOW_FRIENDSOfferedOffered
SELF_ONLYOfferedOffered

What else does creator_info decide for the post?

comment_disabled is true when the creator set comments to No one. duet_disabled and stitch_disabled are true when the account is private or the setting is No one. On the Direct Post side, the server disables duets and stitches for private accounts and comments for creators who set Comments to No one, whatever you send.

The same post_info carries is_aigc. When set to true, the page says the video is labelled with a Creator labeled as AI-generated tag in the description. It defaults to false; it is on you to set it for a video from a generator.

Where does Sume fit?

Sume produces the video and a media.sume.com URL; the TikTok calls are yours. Direct Post PULL_FROM_URL needs a publicly accessible video_url. Fetch the job result with GET /v1/jobs/:id/result and pass its URL on. The page's creator-info call should happen right before the post so the options are current.

# Show only the privacy choices this creator may use, then post with one of them.
curl -s -X POST "https://open.tiktokapis.com/v2/post/publish/creator_info/query/" \
  -H "Authorization: Bearer $TIKTOK_ACCESS_TOKEN" \
  -H "Content-Type: application/json; charset=UTF-8" \
  | python3 -c "import json,sys; print(json.load(sys.stdin)['data']['privacy_level_options'])"

What should I do?

Never hard-code PUBLIC_TO_EVERYONE. Query the options, show them, and send what the creator picks. Set is_aigc: true for generated video, and read TikTok's own policy page for what else must be disclosed.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume