YouTube API Quota: Limits, Costs, Reset Time, Increases

By Nick ReyesPublished 8 min read

The short answer

The YouTube Data API gives each Google Cloud project 10,000 units a day for most methods, plus separate buckets of 100 videos.insert and 100 search.list calls. Reads cost 1 unit, most writes 50. Quotas reset at midnight Pacific Time. To get more, pass the YouTube API Services audit. Adeli's YouTube app has passed it and is approved for higher quota tiers.

The YouTube API quota is a daily allowance per Google Cloud project: 10,000 units for most YouTube Data API v3 methods, plus separate buckets of 100 videos.insert calls and 100 search.list calls. Every request spends units, including failed ones, and everything resets at midnight Pacific Time. The usual pain is a quotaExceeded error mid-day with no clear idea which call used up the budget. This guide covers the buckets, the cost of each call, the errors, and how to get more.

What is the YouTube API quota?

The YouTube API quota is the number of units a Google Cloud project can spend on the YouTube Data API v3 each day. Google's quota cost page sets the defaults. Since June 2026 the quota sits in separate buckets, not one pool:

Bucket Default per project Cost per call Methods
Main pool 10,000 units a day 1 to 450 units Every method not listed below
Video uploads 100 calls a day 1 videos.insert
Search 100 calls a day 1 search.list
Video stats 10,000 units a day 1 videos.batchGetStats

Google's revision history dates the split. On June 1, 2026, videos.insert and search.list moved to their own buckets, and on June 3, 2026 the new videos.batchGetStats method arrived with a bucket of its own. Before that, an upload cost about 1,600 units from the shared pool until December 4, 2025, then about 100. Guides written before mid-2026 quote those older numbers.

The quota belongs to the project, not the API key or the user. A project with one OAuth client and 500 connected channels has the same 10,000 units as a project with one channel.

What does each YouTube Data API call cost?

YouTube Data API reads cost 1 unit and most writes cost 50. Uploads and searches cost 1 unit each, but from their own 100-call buckets. Here are the costs from Google's quota cost table for the calls an app that publishes and manages videos makes most:

Method Units What it does
videos.list 1 Read video details, status, statistics
channels.list 1 Read channel details
playlistItems.list 1 List a channel's uploads
commentThreads.list 1 Read top-level comments
videos.insert 1 (upload bucket) Upload a video
search.list 1 (search bucket) Search
videos.update 50 Edit title, description, privacy
thumbnails.set 50 Set a custom thumbnail
playlistItems.insert 50 Add a video to a playlist
comments.insert 50 Reply to a comment
captions.list 50 List caption tracks
captions.insert 400 Upload a caption track
captions.update 450 Replace a caption track

Pagination costs per page. Google's quota page says a method that returns several pages charges the full cost again for each extra page. Reading 5,000 comments at 100 per page is 50 calls, so 50 units.

When does the YouTube API quota reset?

The YouTube API quota resets at midnight Pacific Time every day, per Google's quota page. That's 07:00 UTC during daylight saving time and 08:00 UTC in winter, so don't hard-code a UTC hour.

A quota error at 3 p.m. in London means waiting until 8 a.m. the next morning there. Compute the reset in Pacific Time and hold work until then:

from datetime import datetime, timedelta
from zoneinfo import ZoneInfo
 
PACIFIC = ZoneInfo("America/Los_Angeles")
 
 
def next_quota_reset() -> datetime:
    """Midnight Pacific Time, when YouTube API quotas reset."""
    today = datetime.now(PACIFIC).date()
    return datetime.combine(today + timedelta(days=1), datetime.min.time(), tzinfo=PACIFIC)

What does "YouTube API quota exceeded" mean?

"YouTube API quota exceeded" means your project has spent a bucket's daily allowance, and calls drawing from that bucket fail until midnight Pacific. The error you get depends on the bucket:

Error What happened What to do
403 quotaExceeded: "The request cannot be completed because you have exceeded your quota." The 10,000-unit pool is spent Stop calls until the reset
429 rateLimitExceeded with "Quota exceeded for quota metric 'Video Uploads' and limit 'Video Uploads per day'" The 100-upload bucket is spent Queue uploads until the reset
403 or 429 rateLimitExceeded with no daily-limit message Too many requests in a short span Back off for seconds, then retry
400 uploadLimitExceeded One channel hit YouTube's own upload cap Pause that channel only

The quotaExceeded text comes from Google's YouTube Data API errors page. The upload-bucket message is from a May 2026 bug report on Google's Python client. The bucket uses the same rateLimitExceeded reason as a short-term throttle, so read the message, not just the reason.

Watch your client library's retries. In google-api-python-client (2.201.0), num_retries retries every 429 response. That's right for a short throttle and wrong for a spent upload bucket, which won't clear for hours. Sort the error before you retry:

import json
 
from googleapiclient.errors import HttpError
 
 
def error_reason(err: HttpError) -> str:
    try:
        return json.loads(err.content)["error"]["errors"][0]["reason"]
    except (ValueError, KeyError, IndexError, TypeError):
        return ""
 
 
def classify_quota_error(err: HttpError) -> str:
    status, reason = err.resp.status, error_reason(err)
    if status == 403 and reason == "quotaExceeded":
        return "daily_pool"     # wait for next_quota_reset()
    if status == 429 and "Video Uploads" in err.reason:
        return "daily_uploads"  # queue uploads until next_quota_reset()
    if reason in ("rateLimitExceeded", "userRateLimitExceeded"):
        return "short_term"     # back off with jitter, then retry
    return "other"

What do developers get wrong about the YouTube API quota?

Most "quota exceeded" mysteries come from counting quota differently from Google: old cost numbers, retries against a daily limit, or the wrong console row. Developers keep posting the same few:

"The app still charged every upload 1600 units from the 10,000-unit pool… so after 6 uploads it logged 9600 of 10000 units used today, held every further upload until the next Pacific day"

— pjmagee on GitHub (HeroesReplay), October 2026

"Uploads fail after roughly 7 uploads/day with: Quota exceeded for quota metric 'Video Uploads' and limit 'Video Uploads per day'"

— k3v on GitHub (google-api-python-client), May 2026

"Google now says we've exceeded our quota, but when I go into the Cloud Console to view quota usage, there are literally 20 requests in the past 30 days"

— LinuxGnut on Stack Overflow, December 2020

In that second report, the console showed the main pool well under 100% while uploads kept failing, because the upload bucket is a separate row. In each case, the quota the developer counted and the quota Google counted had drifted apart. To keep them in line:

  • Stale cost tables. A local quota tracker still charging 1,600 units per upload stops your own app long before Google would. Re-read the cost page whenever Google posts a quota change.
  • Retrying daily limits. A spent bucket fails every retry until midnight Pacific, and each failed call can still cost a unit. Retry short-term throttles only.
  • Looking at the wrong number. The pool, the upload bucket, and the search bucket each have their own row in the console. A pool at 1% tells you nothing about uploads.
  • The wrong project. An API key from one project and an OAuth client from another split your usage across two quotas, and the console shows only the one you opened.

How do I check my YouTube API quota usage?

Check YouTube API quota usage on the Quotas page of the Google Cloud console, under the YouTube Data API v3 for your project. Google's getting started guide points there. Each bucket shows as its own row. One developer's console snapshot from October 2026 listed these:

Quota row Default
Queries per day 10,000 (the main pool)
Video Uploads per day 100
Search Queries per day 100
Video Batch Get Stats Queries per day 10,000
Queries per minute 1,800,000

Log your own spend per call as well, using the current cost table, so you can see which feature used the budget before the console tells you it's gone.

How do I increase my YouTube API quota?

To increase your YouTube API quota, pass a YouTube API Services compliance audit by submitting the Audit and Quota Extension Form. Google's quota and compliance audits page says you "must first complete an audit to show that your project is in compliance with the YouTube API Services Terms of Service" before you get more than the default.

  1. Get compliant first. Read the YouTube API Services Developer Policies, including the rules on how long you store API data and when you delete it. The audit checks your app against the YouTube API Services Terms of Service.
  2. Submit the form. File the YouTube API Services Audit and Quota Extension Form. The developer policies say you "must specify the use case for which you need the extension," so describe what your app does and which calls it makes.
  3. Wait for contact. Google says "A member of YouTube's API Services team will contact you as soon as possible."
  4. Ask again later with the same form. If you passed an audit in the last 12 months and need more, you file the same form for an extra extension.
  5. Appeal if you fail. A failed audit has its own Appeals Form.

Granted quota is tied to your use case. The developer policies say "you must use the additional quota granted only for the approved use case," and a new use case means a new audit. Asking for more upload quota for one product and spending it on another breaks that rule.

Ask per method. Google's June 1, 2026 entry says the split "simplifies the path to quota increases by allowing YouTube to more easily verify and approve requests based on specific method usage." Say how many videos.insert calls you need, not just a total unit count. For how long the audit takes compared with other platforms' reviews, see our social media API review times.

Is there a faster way to work within the YouTube API quota?

Yes: publish through an API whose YouTube app has already passed the audit. Adeli's YouTube app has passed the YouTube API Services audit and is approved for higher quota tiers, so your product doesn't start on Google's default buckets or wait on its own audit.

With Adeli's YouTube API, your customers connect their own channels through Adeli's hosted sign-in, and you send one request to publish a video. Adeli keeps the two limits apart in its errors:

  • 429 quota_exhausted when YouTube's daily quota is spent, with the reset time in the message.
  • 422 upload_limit_exceeded when one channel hits YouTube's own upload cap, so the rest keep publishing.

The same posting API covers Instagram, TikTok, X, LinkedIn, and Bluesky. It's free to start, and pricing grows with the customers you serve, not with the calls you make.

faq

Frequently asked questions

Can I buy more YouTube API quota?

Google's quota pages describe no paid tier. The only documented way past the default allocation is the YouTube API Services compliance audit, requested through the Audit and Quota Extension Form. If YouTube approves extra quota, its developer policies say you may use it only for the use case you described in the audit.

Is the YouTube API quota per API key or per project?

Per Google Cloud project. Every API key and OAuth client in the same project draws from the same 10,000-unit pool and the same upload and search buckets, no matter how many users or channels sign in. A second key in the same project adds no quota.

Do failed YouTube API requests use quota?

Yes. Google's quota page says all API requests, including invalid ones, cost at least one point. A loop that retries a malformed request or a revoked token keeps spending units, so stop retrying on 400 and 401 responses instead of backing off and trying again.

How long does a YouTube quota extension take?

Google doesn't publish a timeline. Its audit page says only that someone from YouTube's API Services team will contact you as soon as possible. Plan for weeks, and file before your product depends on the extra quota.

Power your next project
with one ads & social media API

Give your users publishing, scheduling, and analytics through one integration your team can actually maintain.

Try with agents

Start with free credits. No credit card required.