YouTube API quota reset time: midnight Pacific, errors cost 1
YouTube's quota page says daily quota resets at midnight Pacific Time and even invalid requests cost a point. What that means for Shorts upload batches.

YouTube Data API daily quota resets at midnight Pacific Time, according to YouTube's quota calculator page. The same page says every API request costs at least one quota point, even an invalid one, so a retry loop on a failing call drains quota without doing any work.
Everything below comes from the quota calculator and the quota and compliance audits guide, both read 2026-10-02.
The default allocation
The audits guide lists the baseline for a project: 100 search.list calls, 100 videos.insert calls, and 10,000 units per day combined for all other endpoints. Costs for methods that sit in the 10,000-unit pool are below.
| Method | Cost | Note |
|---|---|---|
| videos.list | 1 point | Read call |
| channels.list | 1 point | Read call |
| thumbnails.set | 50 points | Per thumbnail upload |
| playlistItems.insert | 50 points | Per playlist add |
| captions.insert | 400 points | Per caption track |
| search.list | 1 point per call | Capped at 100 calls per day |
Doing the sums
With only the shared pool and nothing else running, 10,000 units allows 200 thumbnail uploads (10,000 divided by 50), or 25 caption uploads (divided by 400). Mixed workloads share that one pool, so a batch that sets a thumbnail and a playlist entry per Short spends 100 units per video, which is 100 videos per day, the same number as the upload bucket.
Extra result pages also cost points, per the calculator page, so paging a list call is not free.
What midnight Pacific means in UTC
Pacific Time is UTC minus 7 hours during daylight saving time and UTC minus 8 hours after it ends. Today, 2026-10-02, daylight time still applies, so the reset lands at 07:00 UTC. Schedule a resumed queue after that moment, and avoid hard-coding the offset: use a timezone-aware library for America/Los_Angeles.
Rules for a batch worker
- Validate the request locally before sending it; an invalid call still costs a point.
- Do not retry a
quotaExceededresponse until after the reset. - Check the Quotas page in Google Cloud console, which the audits guide names for monitoring usage.
- Need more than the default? That is a compliance audit, covered in the audit forms post.
Where Sume fits
Sume does not spend your YouTube quota, because it never calls the YouTube API for you. It can render the files ahead of time: a bulk run queues up to 100 Format runs, so a quota-limited day of uploads can draw from a finished stock.
The takeaway for schedulers
Because the reset is tied to a fixed clock and not to the time of your first call, a worker that starts at noon has no more quota than one that started at 00:05 Pacific. Plan the busiest part of the batch just after the reset, and keep a small reserve for retries and read calls.
Since invalid requests still cost a point, a bad payload in a loop is the most expensive kind of bug. Validate file paths, titles and field lengths locally first, then send. That one habit protects both your quota and your upload window.
Sources
Related posts
More in Developers
- YouTube captions.insert: 100 MB, 400 quota units, and an SRT build
YouTube captions.insert costs 400 quota units and takes a 100 MB file. Sume returns words and segments, not SRT, so here is the 20-line conversion to upload.
- YouTube notifySubscribers=false: uploading a Shorts backlog quietly
videos.insert takes a notifySubscribers parameter that defaults to true. Why to set it false when you upload a batch of Sume-made Shorts in one sitting.
- YouTube playlistItems.insert costs 50 units: adding Shorts in bulk
YouTube's playlistItems.insert page lists 50 quota units per add. What that caps per day, the series-playlist duplicate error, and how to plan episodes.
- YouTube publishAt in the past publishes now: a guard for batches
The Videos resource says a past publishAt publishes the video immediately, and it works only on private videos. A Python guard for scheduled Shorts batches.
Written by Sume