YouTube Scheduling API
Schedule a YouTube upload for a future publish time via API — and the one thing YouTube won’t let you automate.
YouTube has no separate scheduling endpoint. Upload the video with privacyStatus set to private and a future publishAt timestamp (RFC 3339), and YouTube flips it to public automatically at that instant. Through PostGate, set scheduled_at on POST /api/posts and it maps to that mechanism. Recurring templates are deliberately unsupported for YouTube.
YouTube does not have a "schedule this post" endpoint separate from upload. Scheduling is a property of the video resource itself: set its privacy status to private and give it a future publishAt timestamp, and YouTube flips it to public automatically at that instant. That single mechanism is also the one thing you cannot turn into a recurring template — every scheduled YouTube upload needs its own explicit video, title, and privacy decision.
How does YouTube actually model a scheduled release?
On the raw YouTube Data API v3, scheduling is two fields on the video's status object: privacyStatus: "private" and publishAt, an RFC 3339 timestamp. There is no separate scheduling resource — you upload the video as private with a future publishAt, and YouTube's own systems handle the transition to public at that time, per Google's videos.insert reference. This is a one-off timestamp per video, set at upload (or update) time — not a recurring or templated feature anywhere in the API.
Scheduling through PostGate
PostGate's post envelope maps a single scheduled_at field to the correct platform-native mechanism per target — for YouTube, that means setting privacy to private internally and passing your timestamp through as publishAt. You still supply the same options.youtube metadata as an immediate upload; only the timing changes.
curl -X POST "https://postgate.studio/api/posts?profile_group_id=grp_acme123" \
-H "Authorization: Bearer $POSTGATE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: yt-scheduled-001" \
-d '{
"post": {
"body": "Launch day.",
"scheduled_at": "2026-09-15T14:00:00Z",
"options": {
"youtube": {
"title": "Launch story",
"privacy": "private",
"made_for_kids": false,
"community_guidelines_confirmed": true
}
}
},
"profiles": ["pro_youtube123"],
"media": ["med_01JXYZ"]
}'Why does YouTube have no recurring schedule?
PostGate supports recurring schedule templates for most platforms — a cron-style expression that fills in a shared post body on a repeating cadence. YouTube is intentionally excluded from that feature. Every upload requires an explicit video file, an explicit audience declaration, and an explicit Community Guidelines confirmation; a generic recurring template has no video to attach and would risk publishing with stale policy settings. Use individual scheduled posts instead — see Delivery lifecycle for how a scheduled post's target status progresses from pending to published once its publishAt time arrives.
Scheduling does not change the quota cost
A scheduled upload still consumes one call against the same 100-calls-per-day videos.insert allowance as an immediate one — the cost is charged when the video is created, not when it goes public. See YouTube API Quota Cost per Upload for the full accounting.
Frequently asked questions
Is there a separate scheduling resource in the YouTube API?
No. On the raw YouTube Data API v3, scheduling is two fields on the video’s status object: privacyStatus: "private" and publishAt, an RFC 3339 timestamp. You upload the video as private with a future publishAt, and YouTube’s own systems handle the transition to public at that time — a one-off timestamp per video, set at upload or update time.
How does PostGate map scheduled_at for YouTube?
PostGate’s post envelope maps a single scheduled_at field to the correct platform-native mechanism per target — for YouTube, that means setting privacy to private internally and passing your timestamp through as publishAt. You still supply the same options.youtube metadata as an immediate upload; only the timing changes.
Why can’t I create recurring YouTube schedules?
YouTube is intentionally excluded from PostGate’s recurring schedule templates. Every upload requires an explicit video file, an explicit audience declaration, and an explicit Community Guidelines confirmation — a generic recurring template has no video to attach and would risk publishing with stale policy settings. Use individual scheduled posts instead.
Does scheduling a YouTube upload cost extra quota?
No. A scheduled upload still consumes one call against the same 100-calls-per-day videos.insert allowance as an immediate one — the cost is charged when the video is created, not when it goes public.
