How to Automate TikTok Posting
TikTok's Content Posting API publishes video and photo posts unattended. But TikTok restricts everything an unaudited API client posts to private viewing, so the only question that matters when picking a tool is whether its client is audited. Every vendor tells you to switch to a Creator or Business account, though TikTok's own docs never require it, and your tool may apply its own per-day cap well below anything TikTok documents.
Unaudited clients can only post in private
Before you compare tools, read the line that decides whether any of this works. TikTok’s own Content Posting API documentation says: “All content posted by unaudited clients will be restricted to private viewing mode.” If the tool you picked has not passed TikTok’s audit, nothing it sends reaches an audience. Either the call is refused outright or the post lands restricted to private viewing. The restriction is documented both ways, and neither way puts your video in front of anyone.
TikTok states it twice, in the prerequisites of the get-started guide and again in the Direct Post API reference. The fix is also documented: once a developer has tested their integration, their API client has to go through an audit against TikTok’s Terms of Service before the visibility restriction lifts.
TikTok’s two statements on this do not quite agree, and the difference decides what you will actually see. The prerequisites note says content from unaudited clients is “restricted to private viewing mode”, which reads as a post that publishes and then hides. The error table says something stricter: unaudited_client_can_only_post_to_private_accounts means the publish attempt is blocked outright at the init call. On a public creator account, which is what you have if you are automating TikTok at all, expect the blocked version and a post your tool reports as failed. Either way the test is the same, and either way the tool is unusable until its client is audited.
The first question to ask a vendor is not how pretty the calendar is. It is whether their API client is audited for Direct Post. An unaudited one is an expensive private-upload machine, and no pricing page on earth mentions it.
The restriction is useful exactly once. If you are building your own integration, the pre-audit state is a free staging environment: push a hundred test posts, watch the pipeline work end to end, nothing goes live by accident.
What changed when the API opened
TikTok opened its API to social management tools in 2023. That date explains the workflow half the older guides still describe: the tool holds your video, pushes a notification at the scheduled time, and you finish the upload by hand. Before that there was no sanctioned route to publish without you, so reminders were the honest best anyone could do.
What exists now is a real publishing endpoint: the Content Posting API posts both video and photo content directly to a creator’s account. Photo posts take a photo_images array, so multi-image photo posts are supported rather than being a single-image workaround, and the request carries a cover index and an auto-add-music flag.
Stories are the gap. They are not documented in the get-started guide at all, so treat them as unverified rather than as unsupported, and post them by hand until TikTok documents a route. If a tool advertises scheduled TikTok Stories, ask what endpoint it calls.
This audit-and-scope pattern repeats on every network with its own quirks. If you are setting TikTok up alongside the rest, our guide to posting across platforms covers how the pieces line up.
Account type, approval, and what the docs actually require
Nearly every tool’s help page tells you to switch to a Creator or Business account first, and it is worth doing. What is worth knowing is that TikTok’s own Direct Post documentation does not say so. Its prerequisites are entirely app-level: a registered app, the Direct Post configuration enabled, an approved video.publish scope and your authorisation of it. No account-type rule appears on the page.
So switch anyway, before you connect anything rather than after, because it is what the vendors assume. Just do not expect a documented error that names your account type if something fails: the documented failures are about scopes and audits, so that is where to look first.
Those app-level requirements are the developer’s problem rather than yours, except the authorisation. You, the target TikTok user, have to authorise the app for the video.publish scope. Miss it and the API returns scope_not_authorized, which most tools surface as a vague “reconnect your account”.
Before publishing, a client has to call the creator-info query endpoint, which returns the creator’s current privacy options, whether comments, duet and stitch are available, and that creator’s own maximum post duration. TikTok then requires the client to display those options and honour your choice; a privacy level that is not in the returned list fails with privacy_level_option_mismatch. So a tool that does not let you pick a privacy level per post is cutting a corner TikTok explicitly tells it not to cut.
Note the duration field: the API hands back a per-creator limit rather than one platform-wide number, so a clip that publishes from one account can be refused from another.
Three ways to automate TikTok posting, and only one publishes
Every tool in this category does one of three things, and the marketing copy is vague about which.
- True auto-publish. The tool holds a TikTok token, calls Direct Post at the scheduled time, and the video goes out with nobody watching. This is what you are paying for.
- Reminder, or notification publishing. At the scheduled time you get a push notification and finish the upload yourself. Legitimate, still sold, and useless for batching.
- Private auto-publish. The tool calls the API through an unaudited client, so posts are either refused at init or forced to private viewing. The hardest of the three to spot, because the dashboard can still say “published”.
Three questions separate them before you pay. Does the feature list claim “TikTok auto publish”, or only put TikTok in a “reminder” column? Is the API client audited? And can you see a published test post from a logged-out browser? That last one takes two minutes. The same reminder-versus-publish split decides which Instagram tool to buy, which is the first thing we check in Instagram auto-publishing too.
Then there are the caps, which come from two places. TikTok enforces its own, and your tool enforces its own on top. Some clip and short-form tools set a per-day posting cap well below anything TikTok documents, usually tied to your plan tier: a product decision rather than a platform rule. Ask for the number on your plan before you buy, because a cap of a handful of posts a day defeats the point of batch filming.
TikTok’s own limits are better documented than people realise, because they appear as error codes rather than a tidy table.
| What you hit | What TikTok’s documentation says | How it shows up in a tool |
|---|---|---|
| The audit | “All content posted by unaudited clients will be restricted to private viewing mode”; unaudited_client_can_only_post_to_private_accounts blocks the publish init call | Posts marked published that nobody can find |
| A daily post cap per user | spam_risk_too_many_posts: “The daily post cap from the API is reached for the current user.” The number itself is not published | A queue that stops part-way through the day |
| A daily quota per client | reached_active_user_cap: the daily quota for active publishing users from that client is reached | An agency tool failing for some accounts and not others |
| Request rate | “Each user access_token is limited to 6 requests per minute” | Bulk pushes that have to be paced |
| The upload window | The returned upload_url is valid for one hour after issuance | Large files failing on slow connections |
| Pulling from your own URL | url_ownership_unverified: a developer using PULL_FROM_URL must verify the domain or URL prefix | Self-built workflows that cannot hand TikTok a link to their own bucket |
| Privacy level | privacy_level_option_mismatch: the submitted level must be one the creator-info query returned | A tool that silently posts at the wrong visibility |
Two things follow. TikTok does not print the per-user cap number, so anyone quoting you a precise figure is guessing. And an account-level cap plus a client-level quota means a shared tool can run out of room because of other people’s posting, not yours. YouTube is worse, where the upload quota that breaks Shorts workflows is a hard documented ceiling. For the tools that handle this per-network mess properly, our rundown of the best social media automation tools is the shortlist.
Scheduling a month of batched video
You filmed twenty clips on Sunday. You want them queued by Sunday night.
Bulk schedule TikTok. Drag-and-drop bulk upload is common. CSV import, where you map a filename to a caption and a publish time in a spreadsheet, is the feature that saves the afternoon, and it is far less common. It tends to sit behind a higher tier, so check the plan before you commit. SchedPilot includes CSV import in its bulk scheduling, and TikTok is one of the nine networks it connects, though it has no free plan, only a trial, so budget for it as a paid tool from day one. Apply the test above to it too: whether its client is audited for Direct Post is not something we verified, so ask.
Captions. The caption goes in the request’s title field, with a documented maximum of 2,200 UTF-16 runes, and TikTok parses hashtags and mentions out of that same text rather than as a separate list. Writing captions in a spreadsheet works because of that: one column, hashtags inline, no special handling. Twenty captions in twenty modal dialogs does not.
Covers. The Direct Post video request sets the cover with video_cover_timestamp_ms, a frame timestamp in milliseconds. Uploading a separate cover image is not documented on that endpoint. So if your thumbnails matter, bake the cover frame into the clip at edit time, because no documented route attaches one after the fact.
Sounds. Trending audio is the single biggest reason TikTok automation stays partly manual. The Direct Post video request body documents no field for selecting a sound; the photo endpoint has an auto_add_music flag, and that is the extent of it. So a scheduled video carries whatever audio is in the file. If your format depends on a sound trending this week, that post is a manual post, and pretending otherwise is how queues fill with stale audio.
Aspect ratio. Export 9:16. It is not an API requirement, it is what the feed is shaped like, and a 16:9 clip in a queue looks exactly like what it is.
Captions are the one part of this that scales cleanly across networks, which is why the spreadsheet habit pays off beyond TikTok. The mechanics differ by platform, and scheduling threads on X is the clearest contrast: there the post structure is what you template.
From clip tool to published post
Most people running volume on TikTok have the same four-stage pipeline, assembled from two or three products.
Stage one is a long recording. Stage two is clip detection, which finds the moments worth cutting and exports them vertical with burned-in subtitles. Stage three is captions and metadata. Stage four is the scheduler, holding the TikTok token and calling the API.
The handoff between stages two and four is where most setups leak. Clip tools and schedulers are often separate products, and the clip tool’s own export cap, not TikTok’s, is frequently the binding constraint. If you are picking the front half, our comparison of repurposing tools covers which ones export cleanly into a queue.
Four things need a human eye before a batch goes out.
- Where the clip cuts. Automatic detection ends clips mid-sentence often enough that scanning the first and last second of each is worth it.
- Burned-in subtitles. Auto-captioning mangles names, jargon and numbers, and the error is now part of the video file.
- The privacy level on each post. Confirm one published post is visible from a logged-out browser before you trust the other nineteen.
- Disclosure flags. The TikTok content API carries a brand-content toggle for paid partnerships, a brand-organic toggle for promoting your own business, and an
is_aigcflag that labels a post as AI-generated. If your tool does not expose them, you declare nothing on posts that may need a declaration.
What not to automate on TikTok
Publishing through the Content Posting API and running a bot on your account are not the same activity, and TikTok’s rules treat them differently. One quote gets waved around to argue otherwise.
TikTok’s Community Guidelines say: “We strictly prohibit automation tools, scripts, or other tricks designed to bypass our systems.” Read the end of that sentence, and note where it sits: the section on Deceptive Behaviors and Fake Engagement, between a passage on services that artificially boost engagement and the line on removing fake likes. The subject throughout is manufactured engagement. The Content Posting API is TikTok’s system: TikTok documents it, versions it, gates it behind an approved scope, and audits the clients that use it. Scheduling your own videos through an audited client is the sanctioned route, not a loophole.
What falls on the wrong side of that line is engagement automation: auto-commenting, bulk following and unfollowing, and anything that manufactures likes or views are the bypass category the guidelines describe. TikTok also states that where it detects inauthentic metrics it removes fake likes and followers, which is the consequence worth planning around: the metrics you buy get deleted, so you pay for numbers that evaporate while the account keeps the risk.
There is a practical reason too. Comments are where TikTok distribution compounds, and a reply in your own voice on the first ten does more for a video than any scheduling change. It is the one part of this job that does not scale, which is why automating it reads as fake.
One claim you will meet that we will not make: that scheduled TikToks get less reach. No reliable source supports it, no platform’s developer documentation says API-published posts are ranked differently, and planning around a penalty nobody has demonstrated is how people talk themselves back into uploading by hand.
Schedule TikTok posts in four steps
Switch the account to Creator or Business first, for the vendors rather than for TikTok. Then shortlist on one criterion only, whether the vendor’s API client is audited for Direct Post, and verify it with one test post checked from a logged-out browser. Third, find the tool’s own per-day cap for TikTok on your plan and confirm it clears your filming volume. Fourth, put captions in a spreadsheet and use CSV import if you have it.
Keep two things manual on purpose: posts that depend on a trending sound, and your comment replies. Everything else in a batch of twenty can go out while you sleep.
If TikTok is one of four or five networks you are keeping fed, the per-network quirks stack up fast, and the broader playbook for how to automate your social media without a tab open all day is the place to start.
Questions people actually ask
Can you schedule TikTok posts automatically?
Yes, through TikTok's Content Posting API, which publishes video and photo posts directly to a creator's account with nobody watching. The catch is the audit. TikTok's documentation describes two outcomes for an unaudited client, a publish call refused at init or content restricted to private viewing mode, and neither puts your video in front of an audience. Verify one test post from a logged-out browser.
Do you need a Business account to schedule TikTok?
Switch to one, but not for the reason you have been told: TikTok's Direct Post documentation states no account-type requirement at all, and the tools simply assume you have made the switch. Do it before you connect any tool rather than after. Separately, the app you connect through needs the Direct Post configuration enabled and an approved video.publish scope, which is the vendor's job rather than yours.
How many TikToks can you schedule per day?
TikTok enforces a daily post cap per user and a daily quota of active publishing users per API client, but it does not publish either number, so treat any precise figure you are quoted as a guess. It also limits each user access token to six requests per minute. Your scheduling tool usually applies its own per-day cap on top, tied to your plan tier.
Can you bulk upload TikTok videos?
Yes. Most schedulers accept drag-and-drop bulk uploads, and the feature that genuinely saves time is CSV import, where you map filenames to captions and publish times in a spreadsheet. CSV import is much less common than bulk upload and often sits on a higher plan tier, so check which plan it is on before paying. Captions parse hashtags and mentions inline.
Do scheduled TikToks get less reach?
There is no reliable evidence that they do. No platform's developer documentation says API-published posts are ranked differently, and no independent research testing it was found. What does cost you reach is stale trending audio, since the publishing API documents no field for selecting a sound, and clips that end mid-sentence because nobody reviewed the automatic cuts.
Can you automate TikTok comments?
No, and this is the line worth not crossing. TikTok's Community Guidelines say it strictly prohibits automation tools, scripts or other tricks designed to bypass its systems, and auto-commenting sits squarely in that category, unlike publishing through the documented API. TikTok also states that where it detects inauthentic metrics it removes fake likes and followers, so bought engagement gets deleted while the account keeps the risk.
Read next
How to Automate Facebook Pages and Groups
Personal profiles cannot be scheduled at all. Here is the compliant route for a Page, why Groups have no documented one, and…
Does Scheduling TikTok Videos Affect Reach?
TikTok documents one rule that explains most zero-view scheduled posts: content from unaudited client apps is restricted to private viewing mode.
Automate Instagram Posts, Reels and Stories
What Instagram genuinely auto-publishes, the account type it needs, and which tools quietly just send you a reminder instead.


