Can You Schedule TikTok Drafts With Our API?
A TikTok draft, an inbox upload and a scheduled post are different. Use a finished video and a documented API workflow to publish later.

Short answer: Not by pointing our API at a saved TikTok app draft. Status 200 Uploads documents scheduling a post from media you provide, not retrieving your TikTok drafts. Start with a finished video file you control, upload or import it, then schedule that media. Also distinguish this from TikTok's developer “Upload draft” flow: TikTok says that path asks the user to continue editing and complete the post through an inbox notification—not that the upload itself schedules publication. Sources: our API reference and TikTok's upload guide.
Key Takeaways
| Point | Details |
|---|---|
| A saved draft is not our API input | Our documented post request takes media IDs or media URLs, not a TikTok draft identifier. |
| An inbox upload is a handoff | TikTok's upload guide tells users to open the inbox notification and complete the post. |
| Scheduling needs an explicit time | Our API uses post.scheduledFor with a time zone. |
| Check before committing | A request with dryRun: true validates without sending or scheduling anything. |
The workflow below follows our API reference. It is a finished-file scheduling workflow, not a way to reach inside TikTok's draft editor.
First, separate three things people call a draft
A draft can mean the work you are still editing, a file an app has handed off to TikTok for your review, or a finished post waiting in a scheduler. Those are different workflow states. Naming the state first prevents a misleading “schedule my draft” button from becoming your whole implementation plan.
TikTok's own developer guide calls one section Upload draft to TikTok. Its description is precise: upload videos or photos “for the user to review and post.” The next instruction says users must click on inbox notifications to continue editing and complete the post. That is the documented handoff, not evidence of a timed publishing promise. TikTok upload guide.
Our API reference describes a different contract: supply media and create a post, either now or with a future post.scheduledFor. The public documentation checked for this guide does not expose an endpoint that lists or imports saved TikTok app drafts. Do not substitute an imagined draft ID for a file ID.
| What you have | What this guide recommends |
|---|---|
| Work that exists only in your TikTok editing flow | Finish it there, or locate a finished source file you already control. Do not assume our API can retrieve it. |
| A TikTok inbox upload waiting for review | Follow that review flow; do not treat the notification as a scheduled-post confirmation. |
| A finished video file | Upload it into our Media library or use a documented import path, then schedule it. |
| A scheduled post ID from our API | Read its status rather than creating another post to check whether the first worked. |
This guide does not promise a particular mobile export button, that all editing effects can be transferred, or that audio permissions carry over between publishing paths. If you cannot obtain an appropriate finished file, stop at that boundary instead of building automation around an assumption.
Prepare a finished file, not a draft reference
The following preparation steps are workflow advice. Keep the final video, caption, intended profile, privacy choice and posting time together in your review notes. Give the file a clear name so that the person approving the post knows which version will be used.
Check the video against the current platform file limits, then upload it into the dashboard's Media library or follow the API's documented media import or upload-link process. Our API reference says imported media returns a file_id; media that is still processing must become ready before it can be posted. Use that ready file's ID in the request, not a filename from your computer.
For a scheduled post, the API documentation says imported or uploaded media referenced by mediaID is kept until the post goes out. By contrast, mediaUrls are fetched at publishing time and no copy is kept. A URL that worked while you prepared the schedule can therefore become an operational dependency later. Prefer an uploaded file ID for this workflow. API reference.
Before choosing the TikTok privacy setting, read the profile's posting options. The documentation describes GET /api/v2/accounts/{profile_id}/options and says to send only a TikTok privacy value that the account allows. Do not assume one account's options apply to another.
Validate the scheduled request before creating it
This example combines the documented TikTok request fields, scheduling field and dry-run flag. It is illustrative: no authenticated request was executed for this article. Replace the profile and file ID, use a future time, and replace the privacy value if your profile's options require another value.
curl -X POST 'https://status200uploads.com/api/v2/posts' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer rl_your_api_key' \
-d '{
"dryRun": true,
"post": {
"accountId": "@myprofile",
"platform": "tiktok",
"scheduledFor": "2026-11-10T18:00:00+01:00",
"content": {
"text": "A finished video, ready for review.",
"mediaID": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
},
"tiktok": {
"privacyLevel": "PUBLIC_TO_EVERYONE"
}
}
}'
dryRun: true means this request schedules nothing. The API reference says a dry run runs the publishing checks and returns an outcome; a dry run with a time can report schedule. Read the complete result, including warnings and any refusal reason, rather than checking only that the HTTP request returned an answer. API reference.
Once the content and result are reviewed, a separate, explicitly approved request without the dry-run flag creates the schedule. Do not let a validation example become an unreviewed publishing instruction in a production workflow.
Confirm the schedule, then confirm the result
Our API documentation describes the schedule confirmation as HTTP 202 with code: scheduled and a scheduled_post_id. Save that ID. It is the object you can read or cancel; it is not a reference to an unfinished TikTok app draft.
A scheduled post can be read through GET /api/v2/posts/{scheduled_post_id}. The documentation says the response can be read before publishing and afterwards for each network's result. A scheduled time is not the same as a confirmed successful TikTok post, so keep those two checks separate. API reference.
Do not send the same create request again just because you want reassurance. The documented Idempotency-Key mechanism lets a retry with the same key and body return the original answer within its supported window instead of making another schedule. For a finished schedule, prefer reading its saved ID.
If the workflow you need is simply general TikTok scheduling rather than draft handoff, see our TikTok scheduling overview. This guide deliberately concentrates on the asset boundary, not claims about reach or a universal best posting hour.
A practical review checklist
Before calling the work ready, ask: do we have a finished file, the correct profile, an allowed privacy value, a time with its zone, a successful validation result and a saved schedule confirmation? Then assign someone to inspect the final result after the scheduled time.
Treat any missing item as unfinished work, not an opportunity to guess. If the only available asset is still in a draft editor, resolve that first. If a file has changed since approval, review the changed file. If you are testing the workflow, keep the validation flag visible in your example so nobody confuses the test with a created schedule.
You can review the Free plan and available plans before deciding how to run the workflow. No plan purchase turns an undocumented draft-import endpoint into a documented feature.
FAQ
Can our API retrieve a saved TikTok app draft? Our public API documentation does not describe that capability. It documents posts built from media IDs or media URLs you provide.
Does TikTok's Upload draft endpoint schedule the post? The cited TikTok guide describes a review-and-post handoff through inbox notifications. It does not establish a timed schedule from that upload.
Does the example create a scheduled post? No. It uses dryRun true, which validates without scheduling or sending anything.
What should I save after creating a schedule? Keep the scheduled_post_id from the schedule confirmation, then read that object for status and results.
Should I send a file ID or a URL for later publishing? A ready mediaID avoids depending on a public URL at publishing time. Our docs say media referenced by ID is kept until the scheduled post goes out.
Sourced
- Status 200 Uploads API reference, checked November 8, 2026: media inputs, processing, scheduling, privacy options, validation, idempotency and status reads.
- TikTok for Developers: Get Started — Upload, checked November 8, 2026: inbox review-and-post flow.
- Status 200 Uploads file limits, checked November 8, 2026.
- Status 200 Uploads pricing, checked November 8, 2026; no allowance-count claim made here.