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 |

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) |

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
- Open the Google Cloud Console and select your project.
- Go to APIs & Services → YouTube Data API v3 → Quotas & system limits.
- 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.
Repostit

