rizamodocs

TikTok

Formats, media and text limits, options, inbox and analytics on TikTok.

Publish video and photo to TikTok, read every post's numbers, and answer comments. Set a target's format, or leave it out and Rizamo picks one from the files.

Formats

FormatFilesText
video1 video2,200
photo1 to 35 images4,000

Media

Rizamo takes JPEG, PNG, WebP, MP4 and MOV files up to 4 GB. What TikTok takes:

  • Images: JPEG or WebP, up to 20 MB, at most 1,080 by 1,920 px either way round.
  • Video: H.264, HEVC or VP9 with AAC audio, 23 to 60 frames a second, up to 1,920 px wide.
FormatLengthSize
video3 s to 1 hup to 1 GB

Each account has its own longest video, maxVideoSeconds in its creator info: TikTok checks it when the post goes out.

What Rizamo does to files

  • Images: another type becomes JPEG or WebP; a larger file is compressed under 20 MB; a larger one is made to fit 1,080 by 1,920 px.
  • Video: one TikTok does not take as it is (its codec, frame rate, width or size) is converted to H.264 and AAC within those limits. Its length cannot change: a video too short or too long for the format is refused when it is attached.
  • Your file itself never changes: the copy is made when the post goes out, and each target's changes says what was done.

Text

  • Up to 2,200 (4,000 on photo), counted in UTF-16 code units, as JavaScript's length counts them: most emoji count 2. Rizamo counts the same way, so POST /v1/posts/validate refuses what TikTok would.
  • A first comment takes up to 1,200 characters.

Options

Under options.tiktok on a target. Each says which formats take it.

TikTok has no defaults: before each post, read the account's creator info (GET /v1/accounts/{id}/tiktok/creator-info, get_tiktok_creator_info in MCP) and ask the person every required choice. A draft (draft: true) needs none.

OptionTypeWhat it does
disableCommentsbooleanRequired. Turns comments off. Ask the person; true when the account's creator info says comments are off.
disableDuetbooleanRequired for videos. Turns Duet off. Ask the person; true when the account's creator info says Duet is off.
disableStitchbooleanRequired for videos. Turns Stitch off. Ask the person; true when the account's creator info says Stitch is off.
isYourBrandbooleanRequired. The post promotes the person's own business: TikTok labels it "Promotional content".
isBrandedContentbooleanRequired. A paid partnership with a third party: TikTok labels it "Paid partnership". It cannot be private (only_me).
isAiGeneratedbooleanRequired for videos. Labels the video as AI-generated.
privacyLeveleveryone, friends, followers, only_meRequired for photos (videos are always public): one of the account's privacyLevels from its creator info.
titlestringPhotos: a title shown above the caption, up to 90 characters.
autoAddMusicbooleanPhotos: let TikTok pick the music. Not together with music.
musicobjectMusic from TikTok's library, for a video or photo post that publishes (not a draft, not with autoAddMusic). Photos take only trackId.
coverOffsetMsintegerVideos: the frame this many milliseconds in becomes the cover. It must be within the video: TikTok fails a post whose cover is past its end. TikTok's default is 0, the first frame. Not with coverMediaId, nor in a draft, where TikTok ignores it.
coverMediaIdstringVideos: an image uploaded to Rizamo, by its media id, as the cover: JPG, PNG or WebP, at least 360 by 360 pixels. TikTok downloads covers only from Rizamo's own media links, so a cover is media, not a link. Not with coverOffsetMs.
coverIndexintegerPhotos: which photo is the cover, from 0 (the first, TikTok's default).
draftbooleanSend it to the creator's TikTok inbox as a draft instead of publishing. The person finishes it in the TikTok app, where TikTok asks for every other choice; the target is published once it reaches the inbox, with no link.
consenttrueRequired to publish: the person saw the post, the account's name and these choices, and agreed to TikTok's Music Usage Confirmation (and its Branded Content Policy for branded content). Never set it without asking.

First comment

firstComment goes out right after the post, as a comment by the account, up to 1,200 characters. Not on a draft (draft: true), which has no post to comment on yet, nor with disableComments. One it would not take is refused when the post is made (400), with the reason. If it fails once the post is live, the post stays published.

Music

Music from TikTok's library, for a video or photo post that publishes (not a draft, not with autoAddMusic). Photos take only trackId. Find a track with GET /v1/accounts/{id}/music (search_music in MCP). The video's own sound plays under the track at volume 50 of 100 unless videoVolume says otherwise.

After publishing

  • Edits: TikTok does not change a live post's text: an update to a live post is not_supported.
  • Deleting: TikTok keeps its posts: deleting one in Rizamo leaves it live there (removal: not_supported), to delete in TikTok's app.

Inbox

Comments on the account's videos and photo posts are read every 15 minutes for a post's first 48 hours, hourly to day 14 and daily to day 90, then no longer, and answered as the account.

  • Replies to comments: up to 1,200 characters.
  • Messages: none. TikTok does not offer its messaging API to accounts in the EEA, Switzerland or the UK.
ActionPeople's commentsThe account's own
Hideyesno
Deletenoyes
Likenono

Comment automations

Comment automations are off for TikTok: they answer by private message, and TikTok does not offer its messaging API to accounts in the EEA, Switzerland or the UK.

Daily caps

Up to 15 posts an account in 24 hours, counting every post sent, live or not yet. Up to 6 a minute. A post over a cap waits for room (Limits).

Analytics

Days run on UTC. Numbers come up to 48 hours late: posts are first read 24 to 48 hours after they go out. TikTok stops updating a post's numbers a year after it goes out. On connecting, Rizamo reads back the posts of the last 12 months (up to 500) and 59 days of the account's numbers. How Rizamo reads numbers.

Posts

MetricTikTok's nameFormatsNote
viewsvideo_viewsall
reachreachall
likeslikesall
commentscommentsall
sharessharesall
savesfavoritesall
watch_timetotal_time_watchedallNeeds video.insights
avg_watch_timeaverage_time_watchedallNeeds video.insights
followsnew_followersallNeeds video.insights
profile_visitsprofile_viewsallNeeds video.insights
engagementsRizamo adds up likes, comments, shares and savesall

Its posts' details, what is not a count (a post's details, the latest read only: Details):

DetailTikTok's nameFormatsNote
completion_ratefull_video_watched_ratevideoNeeds video.insights
traffic_sourcesimpression_sourcesallNeeds video.insights
viewer_typesaudience_typesallNeeds video.insights
retentionvideo_view_retentionvideoNeeds video.insights
viewer_demographicsaudience_gendersallNeeds video.insights
viewer_demographicsaudience_countriesallNeeds video.insights
viewer_demographicsaudience_citiesallNeeds video.insights

Account

MetricTikTok's nameNote
reachunique_video_viewsNeeds user.insights
viewsvideo_viewsNeeds user.insights
accounts_engagedengaged_audienceNeeds user.insights
likeslikesNeeds user.insights
commentscommentsNeeds user.insights
sharessharesNeeds user.insights
profile_visitsprofile_viewsNeeds user.insights
followsdaily_new_followersNeeds user.insights
unfollowsdaily_lost_followersNeeds user.insights

Its audience: who follows the account, by age, gender, country and city, for accounts with 100 followers or more. TikTok gives shares of the followers: Rizamo turns them into counts of today's followers, so they are estimates. With it, the hours its followers are active (activeHours, from audience_activity, accounts with advanced access or a verified business account, and 100 followers or more).

No clicks on its posts. A post's profile visits, and the account's reach, accounts engaged, follows and unfollows, come only for accounts with TikTok's advanced access or verified business accounts: otherwise they are missing, with a note.

On this page