SocialAPI.ai
Blog

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

Erwan Prost

Erwan Prost

Founder, SocialAPI.ai

Published
Reading time
8 min
On this page

A Google Cloud project with the YouTube Data API v3 enabled can call videos.insert 100 times per day. Since 1 June 2026, videos.insert and search.list each draw on their own bucket of 100 calls per day at 1 unit per call, and every other method shares a separate 10,000-unit daily pool. Quota resets at midnight Pacific Time, and exhaustion returns HTTP 403 with reason quotaExceeded (quota cost page, checked 18 October 2026).

What changed in the YouTube API quota on 1 June 2026?

Google split two methods out of the shared pool. The revision history entry for 1 June 2026 describes "transitioning to a granular quota system covering smaller sets of methods". It says calls to videos.insert and search.list "will be charged to their own respective quota buckets" and calls to all other methods "will be charged to the existing quota bucket" (checked 18 October 2026).

Before the change, an upload cost roughly 1,600 units until 4 December 2025, then roughly 100 units, and in both cases it came out of the same 10,000-unit pool as your comment reads. Now an upload costs 1 unit in a bucket that nothing else touches, so a day of uploads can no longer starve your reads.

Default daily allocation for a newly enabled project

videos.insert

100 calls

own bucket, per day

search.list

100 calls

own bucket, per day

All other methods

10,000 units

shared pool, per day

Three buckets as listed on the YouTube quota cost page on 18 October 2026. Each videos.insert and search.list call costs 1 unit of its own bucket.

The quota cost page also keeps an older rule: "All API requests, including invalid requests, incur a quota cost of at least one point." A malformed upload request still spends one of your 100. A second granular method followed within days: the revision history lists videos.batchGetStats on 3 June 2026 at "1 unit in its own granular quota bucket" with a default of 10,000 units per day. Expect the list of separately metered methods to grow.

Three scoping facts matter for planning. The quota belongs to the Google Cloud project that owns the API key or OAuth client, so every channel your app connects shares the same buckets. YouTube exposes no endpoint that returns the remaining quota, so you track spend yourself or read it from the Quotas page in the Cloud console.

How much quota does videos.insert cost in 2026?

videos.insert costs 1 unit, charged to the upload bucket of 100 calls per day (checked 18 October 2026). The table lists the methods whose cost this post checked. Reads cost 1 unit, so the default pool tolerates heavy polling. Writes cost 50 units, so the same pool tolerates only 200 of them per day, and captions.update at 450 units is the most expensive ordinary call listed.

MethodUnits per callBucket
videos.insert1Video uploads, 100 calls/day
search.list1Search, 100 calls/day
videos.list1Default, 10,000 units/day
channels.list1Default
playlistItems.list1Default
commentThreads.list1Default
comments.list1Default
videos.getRating1Default
videos.update50Default
videos.delete50Default
videos.rate50Default
thumbnails.set50Default
playlistItems.insert50Default
playlists.insert50Default
subscriptions.insert50Default
comments.insert50Default
commentThreads.insert50Default
comments.setModerationStatus50Default
comments.delete50Default
captions.list50Default
captions.insert400Default
captions.update450Default
liveChatMessages.insert20Default
liveChatBans.insert200Default

The quota cost page lists more methods than this table. Source: Quota cost for API requests, checked 18 October 2026.

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

The answer is the smaller of two numbers: the 100-call upload bucket, and however many videos the default pool can finish once you count the follow-up calls each video needs. A bare upload costs 1 unit of the upload bucket and nothing from the default pool, so 100 uploads fit and the default pool is untouched.

Most real pipelines do more than upload. Add a custom thumbnail (thumbnails.set, 50 units) and 100 videos use 5,000 default units. Add a playlist entry (playlistItems.insert, 50) and a metadata fix after processing (videos.update, 50) and each video costs 150 default units. The pool then fits 66 videos (10,000 divided by 150, rounded down), and videos 67 to 100 fail on the follow-up calls with a 403 even though their uploads succeeded.

Per-video workflowDefault units per videoVideos per day
Upload only0100 (upload bucket)
Upload and thumbnail50100 (upload bucket)
Upload, thumbnail, playlist entry, metadata update15066 (default pool)
Upload, thumbnail, captions45022 (default pool)
Videos per day by workflow, against a flat 100-upload ceiling
Upload only100Upload and thumbnail100Upload, thumbnail, playlist, update66Upload, thumbnail, captions22

Computed from the cost table: 10,000 divided by 150 is 66, and 10,000 divided by 450 is 22, both rounded down.

Source: YouTube Data API, Quota cost for API requests

Reads shrink these numbers further, because they share the pool. 2,000 comment reads at 1 unit each remove 2,000 units, which takes the 150-unit workflow from 66 videos to 53 ((10,000 minus 2,000) divided by 150). If 100 uploads is not enough, the route is a higher allocation: Google's quota and compliance audits page covers the audit and extension request.

When does YouTube API quota reset?

Daily quotas "reset at midnight Pacific Time (PT)" (YouTube quota cost page, checked 18 October 2026). That is 07:00 or 08:00 UTC depending on daylight saving, so a job scheduled for UTC midnight sits in the middle of a quota day. If you track your own counters, key them on the Pacific date, not the UTC date, or your count will reset hours early or late.

Does YouTube return 429 when quota is exceeded?

No. Exhaustion is HTTP 403 with reason quotaExceeded. The errors reference lists it with the description "The request cannot be completed because you have exceeded your quota" (checked 18 October 2026), so a retry loop keyed on 429 never fires. The JSON below is an example of the usual Google error shape with placeholder values. It is not a captured response.

json
{
  "error": {
    "code": 403,
    "message": "The request cannot be completed because you have exceeded your <a href=\"/youtube/v3/getting-started#quota\">quota</a>.",
    "errors": [
      {
        "message": "The request cannot be completed because you have exceeded your <a href=\"/youtube/v3/getting-started#quota\">quota</a>.",
        "domain": "youtube.quota",
        "reason": "quotaExceeded"
      }
    ]
  }
}

The errors reference documents only the status, reason and description, so branch on reason. The payload does not say which bucket is empty. Infer it from the method you called: a videos.insert that fails with quotaExceeded while reads still work means the upload bucket is spent. The error is terminal until the Pacific reset, and retrying within seconds only spends quota, since every request costs at least one unit.

Why does commentThreads.list with allThreadsRelatedToChannelId return 403?

commentThreads.list takes allThreadsRelatedToChannelId, which the reference describes as returning "all comment threads associated with the specified channel" for 1 unit (checked 18 October 2026). One call covers every video on the channel, which makes it the cheapest way to poll comments against a 10,000-unit pool. Two behaviours below are first-party observations from August 2026 and are not in that reference.

First, in August 2026 we saw that when a single video on the channel has comments disabled, the channel-wide query returns a 403 for the whole channel. The error carried reason commentsDisabled and location: videoId, although the request sent no videoId, so you cannot tell which video caused it. The documented meaning of commentsDisabled is "The video identified by the videoId parameter has disabled comments". The fallback is per-video listing at 1 unit per video.

Second, in August 2026 the same endpoint sometimes returned an empty page (items: []) that still carried a nextPageToken, on credentials that worked per video. A sync that treats an empty page as "nothing new" and advances its checkpoint skips every comment posted since the last good poll. Follow the token until it is absent, and only move a checkpoint forward on comments you actually received.

Questions developers ask about YouTube API quota

How many videos can I upload per day with the YouTube API?
100 per Google Cloud project as of 18 October 2026, because videos.insert has its own bucket of 100 calls per day at 1 unit per call. If each video also needs a thumbnail, a playlist entry and a metadata update, the 10,000-unit default pool caps you at 66 videos.
When does YouTube API quota reset?
At midnight Pacific Time, which is 07:00 or 08:00 UTC depending on daylight saving (YouTube quota cost page, checked 18 October 2026). Key any counters you keep on the Pacific date rather than the UTC date.
Does YouTube return 429 when quota is exceeded?
No. The errors reference lists quota exhaustion as HTTP 403 with reason quotaExceeded (checked 18 October 2026). Branch on reason, and treat the error as terminal until the Pacific reset.
How much quota does videos.insert cost in 2026?
1 unit per call, charged to its own bucket of 100 calls per day since 1 June 2026. Before that it cost roughly 1,600 units until 4 December 2025, then roughly 100 units, drawn from the shared 10,000-unit pool.
Is the YouTube API quota per channel or per project?
Per Google Cloud project, the one that owns the API key or OAuth client. Every channel your app connects shares the same three buckets, and YouTube has no endpoint that returns the remaining quota.

The YouTube platform page lists what SocialAPI.ai supports for YouTube. If a Google fact on this page is wrong, tell us and it gets corrected with a date.

Every Google claim above traces to a page on developers.google.com, each checked 18 October 2026. The comment-listing behaviours are first-party observations from August 2026. YouTube Data API, Quota cost for API requests, YouTube Data API, Revision history, YouTube Data API, Errors, YouTube Data API, CommentThreads: list, YouTube Data API, Quota and compliance audits

Keep reading

Ready to unify your social interactions?

Free tier available. No credit card required. Ships with the MCP server.