YouTube API · upload · schedule · analyze

The YouTube API built for developers

Upload videos and Shorts to YouTube with one API call — no resumable-upload protocol, no quota math, no OAuth verification project. We run the YouTube Data API so you ship in hours, not weeks.

VideosShortsPrivacySchedulingAnalytics

✓ 5 minutes to first upload ✓ 99.92% uptime ✓ Videos, Shorts & scheduling

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Full build walkthrough — timestamps below.",
    "accounts": ["youtube"],
    "media": [{ "url": "https://media.outstand.so/walkthrough.mp4", "filename": "walkthrough.mp4" }],
    "youtube": { "title": "Building a Social API in 20 Minutes", "privacyStatus": "public" }
  }'

Uploads a video. Set youtube.isShort for a Short, or privacyStatus to publish privately or unlisted.

The YouTube Data API is powerful — and painful

Uploading through the YouTube Data API v3 means a Google Cloud project, OAuth consent verification, the resumable-upload protocol, and a daily quota where a single upload costs 1,600 of your 10,000 default units. Shorts have no dedicated endpoint. Outstand turns all of it into a single request.

Google Cloud project and OAuth consent verification
Connect once via OAuth — we manage the project and tokens, or bring your own
Resumable upload protocol with byte-range sessions
Pass a video URL; we run the resumable upload for you
A daily quota where one upload costs 1,600 of 10,000 units
We manage quota, batching and retries on your behalf
Shorts have no dedicated endpoint — just <60s vertical + #Shorts
Set youtube.isShort; we format the upload as a Short
made-for-kids / COPPA flag is mandatory on every upload
Set youtube.madeForKids; we send the compliance flag
OAuth tokens expire and need refresh
Automatic token refresh — you never see a 401

Everything YouTube publishing supports, through one endpoint

Every content type and capability available on YouTube via Outstand today.

Video uploads

Shorts

Privacy control

Comments

PublishingSchedulingAnalyticsMedia handlingComments

Plus titles, tags, category and made-for-kids flags. Live streams are not exposed via the posting endpoint.

Copy, paste, ship

The same accounts array also fans out to TikTok, Instagram, Vimeo and more — one request, many platforms.

Upload a Short

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "60 seconds on shipping faster ⚡",
    "accounts": ["youtube"],
    "media": [{ "url": "https://media.outstand.so/short.mp4", "filename": "short.mp4" }],
    "youtube": { "title": "Ship Faster in 60s #Shorts", "isShort": true, "privacyStatus": "public" }
  }'

Set tags, category & audience

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Deep dive into our architecture.",
    "accounts": ["youtube"],
    "media": [{ "url": "https://media.outstand.so/deepdive.mp4", "filename": "deepdive.mp4" }],
    "youtube": {
      "title": "Our Architecture, Explained",
      "tags": ["api", "tutorial", "architecture"],
      "categoryId": "28",
      "madeForKids": false,
      "privacyStatus": "unlisted"
    }
  }'

Schedule an upload (up to 30 days out)

bash
curl https://api.outstand.so/v1/posts/ \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Premieres Friday.",
    "accounts": ["youtube"],
    "media": [{ "url": "https://media.outstand.so/premiere.mp4", "filename": "premiere.mp4" }],
    "youtube": { "title": "The Big Reveal", "privacyStatus": "private" },
    "scheduledAt": "2026-07-03T16:00:00Z"
  }'

Read analytics

bash
curl https://api.outstand.so/v1/posts/{id}/analytics \
  -H "Authorization: Bearer $OUTSTAND_API_KEY"
# → views, likes, comments, watch_time, average_view_duration, subscribers_gained

Read & reply to comments

bash
# Read the comments on a published post
curl "https://api.outstand.so/v1/posts/{id}/replies?network=youtube" \
  -H "Authorization: Bearer $OUTSTAND_API_KEY"

# Reply to a comment (or comment on your own post)
curl https://api.outstand.so/v1/posts/{id}/replies \
  -H "Authorization: Bearer $OUTSTAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "content": "Thanks for watching! 🙏", "account_username": "yourbrand" }'

Live in three steps

From signup to your first upload in about five minutes.

1

Connect YouTube

Your user authorizes via OAuth. We store and refresh the token. Use our Managed Keys, or bring your own Google app for white-label.

2

Call POST /v1/posts/

Send a video with accounts: ["youtube"] and a youtube options block. Set isShort for a Short, or scheduledAt to schedule.

3

We do the Data API work

Resumable upload, quota management, metadata and retries — returned as a unified response with the published video ID.

More than a YouTube wrapper

One integration that grows with everything you ship next.

One API, 10+ platforms

One request publishes to YouTube and 10 more networks. Same JSON shape everywhere — learn one API, ship them all.

Managed Keys or BYOK

Skip the Google Cloud project and OAuth verification — use our Managed Keys, or bring your own Google app for white-label OAuth.

Built for scale

Intelligent rate limiting, automatic token refresh, webhook events and media processing.

Honest pricing

$19/mo includes 3,000 posts, then from $0.007/post. No seats, no annual lock-in.

What you can build

Same endpoints, same data shapes — pick what you ship.

Social schedulers

Let your users queue and auto-publish YouTube content from your app.

AI agents

Give Claude or GPT a tool to post to YouTube. MCP server included.

Analytics dashboards

Pull YouTube reach and engagement alongside every other platform.

Agencies & white-label

Run YouTube posting for clients under your own brand and app.

YouTube API FAQ

The questions developers ask before they build.

Does YouTube have an official API?

Yes — the YouTube Data API v3 lets approved apps upload videos, set metadata and privacy, manage comments and read stats. Outstand is a managed layer on top of it, so you skip the project setup, quota math and upload plumbing.

Can I upload videos to YouTube via API?

Yes. Send a video to POST /v1/posts/ with accounts: ["youtube"] and a youtube.title. Outstand runs the resumable upload and applies your metadata.

Can I post YouTube Shorts via API?

Yes. Set youtube.isShort: true with a short vertical video. YouTube has no dedicated Shorts endpoint — Outstand formats the upload so it is treated as a Short.

What is the YouTube API upload quota?

The Data API uses a daily quota (10,000 units by default) and a single upload costs ~1,600 units. Outstand manages quota usage, batching and retries so you do not hit hard stops unexpectedly.

Can I set privacy and the made-for-kids flag?

Yes. Use youtube.privacyStatus (public, unlisted or private) and youtube.madeForKids for the COPPA disclosure. Outstand sends both with the upload.

Can I read and reply to YouTube comments via the API?

Yes. Read the comments on a published video with GET /v1/posts/{id}/replies?network=youtube and post a reply with POST /v1/posts/{id}/replies.

Can I delete a YouTube video via the API?

Yes. YouTube supports deleting videos via the API, and Outstand exposes it through DELETE /v1/posts/{id}/remote.

Ship YouTube uploads today

Grab an API key and publish your first video in the next five minutes. 3,000 posts included, then from $0.005/post.