YouTube

YouTube Scheduling API

Schedule a YouTube upload for a future publish time via API — and the one thing YouTube won’t let you automate.

Quick answer

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.

01

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.

02

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.

Schedule an uploadPostGate API
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"]
  }'
03

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.

04

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.

Build it with PostGate

One API for every social platform your customers care about — sandboxed, documented, and ready today.

Start building Read the docs