Is There an API to Schedule TikTok, Instagram Reels and YouTube Shorts?

· Giovanni Fu Lin · api, automation, short-video, tiktok, instagram, youtube, scheduling

Yes. TikTok, Instagram and YouTube each have their own publishing API with its own approval steps, and a scheduling tool stores the video and calls those APIs at the time you chose. SchedulePost wraps all of them in one REST API (https://schedulepost.fulinlabs.com/api/v1) where you upload once, list your connected accounts, and schedule or queue a post for several platforms in one request. I build SchedulePost, so this guide uses my own API as the worked example; the API reference is at schedulepost.fulinlabs.com/api-docs.

What does each platform’s API require?

Publishing is gated by each platform, not by the scheduler. I cover these in detail in can Claude post to TikTok and Instagram; in short:

  • TikTok: the Content Posting API publishes a video to a user who authorized your app. Public posts need an app that has passed TikTok’s audit; until then posts are drafts or private.
  • Instagram: the Graph API publishes Reels for professional or creator accounts, not personal ones.
  • YouTube: the Data API uploads videos with OAuth. Titles are limited to 100 characters; see Shorts title and description limits.

Building each integration yourself means three developer-app approvals and three upload flows. Using a scheduler’s API trades that for one key and the scheduler’s approved apps.

How do I schedule a video through the SchedulePost API?

Three calls. Examples follow the public API documentation as of November 11, 2026; check the live reference before depending on a field.

1. Upload the video. A multipart upload returns a public videoUrl. The media limit is 512 MB. For large files the documentation recommends requesting a presigned target from /api/v2/upload, with an exact contentLength.

curl -X POST -H "x-api-key: sp_xxx" \
  -F "file=@/path/to/video.mp4" \
  https://schedulepost.fulinlabs.com/api/v1/upload

2. List your connected accounts to get the connection IDs for TikTok, Instagram and YouTube:

curl -H "x-api-key: sp_xxx" https://schedulepost.fulinlabs.com/api/v1/connections

3. Schedule the post with an absolute ISO 8601 time. Use the videoUrl from step 1:

curl -X POST -H "x-api-key: sp_xxx" -H "Content-Type: application/json" \
  -d '{
    "mediaItems": [{ "url": "VIDEO_URL", "mediaType": "VIDEO" }],
    "caption": "New video out tomorrow",
    "connectionIds": ["CONNECTION_ID_1", "CONNECTION_ID_2"],
    "scheduledFor": "2026-11-20T15:00:00Z",
    "youtubeTitle": "New video"
  }' \
  https://schedulepost.fulinlabs.com/api/v1/schedule

The response includes postId and the confirmed scheduledFor. To let the service choose the time instead, post the same body without scheduledFor to /queue, which picks the next available slot; settings such as postsPerDay and allowedDays shape the choice.

What are the limits and safety features?

TopicBehaviour
Authenticationx-api-key header; new keys are read-only for 90 days; the posts:write permission is needed to publish, schedule, upload or delete
Rate limit120 requests per minute per key; a 429 response carries Retry-After
Media512 MB maximum per upload
RetriesSend an Idempotency-Key header; a repeat with the same intent returns the stored result, a changed request with the same key returns 409
Bulk changesReschedule or delete 1 to 100 selected posts atomically; no partial writes
ResultsA post.completed webhook fires when a post is published, partially published or failed
TikTok modetiktokPostMode is DIRECT_POST by default; MEDIA_UPLOAD sends a draft to the TikTok inbox

Two honest caveats. Platforms can still refuse a post for reasons a scheduler cannot control, such as a TikTok account-specific limit, so read the per-platform result instead of assuming success; the platform support page shows what has actually published in production, including failures. And Threads and X have only single test publishes there, so do not build on them without testing.

When is this not the right tool?

If you need a visual content calendar, approvals for a team, LinkedIn, Pinterest or Bluesky, a broader tool fits better; compare options in the best tools to schedule TikTok, Reels and Shorts. If you want to self-host, see Postiz and Mixpost without the Docker. If you post once a week, the native schedulers are enough.

Quick checklist

  • Create a key with posts:write only if the integration publishes.
  • Upload, list connections, then schedule or queue.
  • Send an idempotency key on every write.
  • Handle 429 using Retry-After and listen for post.completed.
  • Validate caption length before sending, using the caption limits.

FAQ

Is there an official API for scheduling TikTok posts?

TikTok has a Content Posting API for publishing videos. A scheduling tool holds the video and the publish time on its side and calls the API when the time arrives. Public posting requires an app that has passed TikTok's audit; before that, posts are limited to drafts or private visibility.

Can I schedule Instagram Reels through an API?

Yes, through the Instagram Graph API, for professional or creator accounts only. The API publishes a Reel when you call it; a scheduling tool calls it at the time you chose.

What does the SchedulePost API let me do?

Upload media, list your connected accounts, publish now, schedule for a given time, add a post to a smart queue that picks the next slot, list and delete scheduled posts, reschedule or delete up to 100 at once, and receive a webhook when a post completes.

How do I authenticate to the SchedulePost API?

Send an API key in the x-api-key header. New keys are read-only for 90 days by default; select the posts:write permission to publish, schedule, upload or delete. A missing permission returns 403 with insufficient_scope.

What are the API rate and size limits?

The documentation states 120 requests per minute per key and a 512 MB limit on uploaded media. A reused idempotency key with a different request returns 409, so retrying a request with the same key does not create a duplicate post.

Can an AI assistant use the same API?

SchedulePost also runs an MCP server, so a connected assistant can call the same publishing functions. See the separate guide on whether Claude can post to TikTok and Instagram.

Related project: SchedulePost by Fulin Labs