New: image reposting, and Repostit for Claude and ChatGPT. See what’s new
RepostitLog inStart free trial
New: image reposting and AI plugins. See what’s new
RepostitTry it free

YouTube API Daily Limit 2026: 100 Uploads a Day and How the New Quota Works

· 5 min read

The YouTube Data API now allows 100 video uploads per day by default. Since June 1, 2026, videos.insert has its own quota bucket: each upload costs 1 unit from a daily allowance of 100 uploads per Google Cloud project, and it no longer eats into the 10,000-unit pool used by everything else. If you’ve read that the API only allows about 6 uploads a day, that was true until late 2025, when an upload cost about 1,600 units.

This guide covers the current limits, what changed and when, how the separate buckets work, the errors you’ll see, how to request more, and a working upload example in Python. Figures come from Google’s quota cost reference and revision history, checked on October 22, 2026.

YouTube Data API limits at a glance (2026)

Quota bucket Default daily limit Cost per call
videos.insert (uploads) 100 calls 1
search.list 100 calls 1
Everything else (shared pool) 10,000 units Varies by method

Common costs in the shared pool:

Method Cost (units) Used for
videos.list, channels.list, playlistItems.list 1 Reading video, channel and playlist data
videos.update 50 Changing title, description, privacy
thumbnails.set 50 Custom thumbnail
playlistItems.insert 50 Adding a video to a playlist
captions.insert 400 Uploading a caption track
videos.delete 50 Deleting a video

All quotas are per Google Cloud project, not per channel, and reset at midnight Pacific Time.

What changed, and when

Period Cost of one upload Uploads per day (default)
Until December 2025 ≈ 1,600 units from the 10,000 pool ≈ 6
December 4, 2025 ≈ 100 units from the 10,000 pool ≈ 100, minus anything else you used
From June 1, 2026 1 unit in a separate uploads bucket 100, independent of other calls
Bar chart: about 6 uploads a day until December 2025, about 100 from December 2025, 100 in a separate bucket since June 1 2026
Default quota per Google Cloud project.

The practical effect: a typical upload that also sets a thumbnail and adds the video to a playlist now costs 1 upload + 100 units, so the shared pool supports around 100 fully-processed uploads a day, matching the upload bucket.

Planning a day’s quota

Per video you… Uploads bucket Shared pool Videos/day before a limit
Upload only 1 0 100
Upload + thumbnail 1 50 100 (pool allows 200)
Upload + thumbnail + playlist 1 100 100
Upload + captions + thumbnail + playlist 1 500 20 (pool is the limit)
YouTube Data API quota buckets: 100 uploads, 100 searches, 10,000 units for everything else

Polling also costs: checking a video’s processing status with videos.list is 1 unit per call, so poll every 30–60 seconds rather than every second.

The API quota isn’t the only limit

Two other limits apply no matter how much API quota you have:

  • The channel’s own daily upload limit. YouTube limits how many videos a channel can upload per day, higher for verified channels, and doesn’t publish the number. Hitting it returns uploadLimitExceeded; it applies to uploads from YouTube Studio too. See how many videos you can post per day.
  • Unverified API projects post privately. Videos uploaded through projects that haven’t passed YouTube’s API compliance audit are locked to private. You need the audit for public uploads.

Errors you’ll see

Error Meaning Fix
403 quotaExceeded The project used its daily quota in that bucket Wait for midnight Pacific, or request more quota
403 uploadLimitExceeded The channel hit YouTube’s daily upload limit Wait 24 hours; verify the channel
403 rateLimitExceeded Too many requests in a short time Retry with exponential backoff
401 authError / invalid credentials OAuth token expired or revoked Refresh the token or re-authorize
400 invalidTitle / invalidDescription Metadata breaks length or character rules Titles ≤100 characters, no < or >

How to check your quota

  1. Open the Google Cloud Console and select your project.
  2. Go to APIs & Services → YouTube Data API v3 → Quotas & system limits.
  3. You’ll see separate rows for the uploads bucket, the search bucket and the shared units, each with today’s usage.

Your project’s allocation may differ from the defaults if Google has adjusted it, so always check here rather than assuming 100.

How to get more quota

Submit Google’s YouTube API quota extension form (linked from the quota page in Cloud Console). Expect to:

  • Pass, or have passed, the YouTube API Services compliance audit.
  • Explain what your app does, show it, and justify the numbers with real usage.
  • Wait days to weeks for review.

With 100 uploads a day now standard, most single-business tools no longer need an extension.

Uploading a Short with Python

A minimal resumable upload with the official client (pip install google-api-python-client google-auth-oauthlib). A vertical video of up to 3 minutes is treated as a Short; adding #Shorts to the title or description is optional.

from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload
from google_auth_oauthlib.flow import InstalledAppFlow

SCOPES = ["https://www.googleapis.com/auth/youtube.upload"]
creds = InstalledAppFlow.from_client_secrets_file(
    "client_secret.json", SCOPES).run_local_server(port=0)
youtube = build("youtube", "v3", credentials=creds)

request = youtube.videos().insert(
    part="snippet,status",
    body={
        "snippet": {"title": "How we pack 100 orders in an hour",
                    "description": "Behind the scenes #Shorts",
                    "categoryId": "22"},
        "status": {"privacyStatus": "public",
                   "selfDeclaredMadeForKids": False},
    },
    media_body=MediaFileUpload("short.mp4", chunksize=-1, resumable=True),
)

response = None
while response is None:
    status, response = request.next_chunk()
    if status:
        print(f"Uploaded {int(status.progress() * 100)}%")
print("Video ID:", response["id"])

That call uses 1 unit from the uploads bucket. Setting a thumbnail afterwards (thumbnails().set) uses 50 units from the shared pool. For a full walkthrough, see how to automate YouTube Shorts with Python.

Skip the quota work entirely

If you just want your TikToks or Reels on YouTube Shorts, you don’t need your own API project. Repostit publishes to YouTube through its own audited integration, with the TikTok watermark removed, and to Instagram, Facebook, X, Threads, LinkedIn and Pinterest at the same time. See TikTok to YouTube Shorts.

FAQ

How many videos can I upload per day with the YouTube API?

100 by default since June 2026, from a dedicated uploads bucket per Google Cloud project. Your channel’s own daily upload limit still applies.

Is it still 1,600 units per upload?

No. It dropped to about 100 units in December 2025, and since June 1, 2026 an upload costs 1 unit in its own bucket.

When does the YouTube API quota reset?

At midnight Pacific Time, every day.

Is the quota per channel or per project?

Per Google Cloud project. Several channels uploading through the same project share it.

Is the YouTube Data API free?

Yes, within the quota. Google doesn’t sell extra quota; you request it through the extension form.

Why are my API uploads private?

Your project hasn’t passed YouTube’s API compliance audit. Until it does, uploads are restricted to private.

Post once. Repostit shares it everywhere else.

14 days free. No credit card needed.

Start your free trial

Keep reading

Best Repost Apps for TikTok, Instagram Reels and YouTube Shorts (2026)
SoftwareBest Repost Apps for TikTok, Instagram Reels and YouTube Shorts (2026)Which repost app to use for sharing others’ posts, reposting your own videos to other apps, and bringing back old content, plus apps to avoid.Oct 22, 2026
How to Repost Top-Performing Content Automatically (Without Spamming Your Audience)
SoftwareHow to Repost Top-Performing Content Automatically (Without Spamming Your Audience)Find your proven evergreen posts, refresh them, automate cross-platform distribution, and measure each repost without flooding your audience.Aug 22, 2026
How to Build a Kick Chat Bot with Python (2026 Kick API Guide)
How ToHow to Build a Kick Chat Bot with Python (2026 Kick API Guide)How to Build a Kick Chat Bot with Python (2026 Kick API Guide) How to create a Kick chat bot? If you stream on Kick and want to automate chat interactions — greeting new viewers, running custom commands, moderating spam, or tracking subscriptions — you need a Kick chat bot. Unlike Twitch, where dozens of […]Mar 6, 2026