YouTube API quota calculator
Type how many calls your app makes in a day. See your use of the shared pool and the separate search and upload limits, what is left, and which method costs you most. The costs come from Google’s own table.
This YouTube API quota calculator adds up your daily calls per method and shows how much of each quota bucket you use, how much is left, and which method costs you the most. It is for developers, makers of small YouTube tools, and anyone who uses the API through scripts or AI agents and wants to know before launch if a plan fits inside the free limit.
A lot of the advice online is out of date. Many guides still say a search costs 100 units and an upload costs 1,600. Google changed both. I read Google's quota cost table on 2 November 2026 to build this tool, and checked it again on 3 November 2026. That page was last updated on 15 October 2026. Every cost in the calculator matches it.
I work with this limit every day, because TubeMind runs on the same public API. The lesson is simple: a design that works on paper at 100 users can quietly break at 1,000, and it is much cheaper to find that out on this page than in production.
What changed in 2025 and 2026
If you learned the YouTube API a few years ago, two of your numbers are now wrong. Google's revision history records the changes:
- 4 December 2025: the cost of a video upload dropped from about 1,600 units to about 100 units.
- 1 June 2026: Google started a "granular" quota system. videos.insert and search.list moved into their own buckets. Every other method stayed in the old shared pool.
- 3 June 2026: a new method, videos.batchGetStats, was added with its own bucket. Google says it costs 1 unit a call, with a default of 10,000 units a day.
So today a search does not eat 100 units of your shared pool. It uses 1 of your 100 search calls for the day. In plain words: under the old rules, 50 searches would have used half of your 10,000 units. Now 50 searches use half of your search bucket and none of your shared pool. Your videos.list and channels.list calls are not touched at all.
The three daily limits
| Bucket | Default limit | What counts |
|---|---|---|
| Shared pool | 10,000 units a day | Everything except search.list and videos.insert |
| search.list | 100 calls a day | Each call costs 1 of the 100 |
| videos.insert | 100 calls a day | Each call costs 1 of the 100 |
Read this table as three separate wallets. Each one has its own money and you cannot move money between them. Say you use all 100 searches by noon. Your search calls now fail until the reset, but your videos.list calls keep working, because they come from the shared pool. The other way round is also true: if you have 9,000 pool units left, they cannot buy you a 101st search. That is why the calculator shows each bucket on its own line and never one grand total.
These are the defaults Google gives a new project. Google gives these defaults to each project, so every API key in the same Google Cloud project shares them. Your own project may have a higher limit if Google approved an extension.
What each call costs
The calculator covers the 14 methods most apps use. Here are their costs from Google's table:
| Method | Cost | Bucket |
|---|---|---|
| videos.list, channels.list, playlistItems.list, commentThreads.list | 1 unit | Shared pool |
| liveChatMessages.list | 5 units | Shared pool |
| videos.update, thumbnails.set, commentThreads.insert, playlistItems.insert | 50 units | Shared pool |
| captions.list | 50 units | Shared pool |
| captions.insert | 400 units | Shared pool |
| captions.update | 450 units | Shared pool |
| search.list | 1 call | Search bucket (100 a day) |
| videos.insert | 1 call | Upload bucket (100 a day) |
The pattern is easy to remember. Reading is cheap, writing costs 50 times more, and captions are the expensive exception. For example, 50 videos.update calls cost 2,500 units, which is a quarter of your pool, while 50 videos.list calls cost only 50 units. One captions.update call costs as much as 450 videos.list calls.
Two odd costs are worth knowing. captions.list costs 50 units even though it only reads, so do not poll it often. liveChatMessages.list costs 5 units, and a live chat bot that polls every few seconds can spend thousands of units in one stream.
Google's full table has more methods than the calculator lists. A few you may meet:
| Method | Cost |
|---|---|
| comments.list, playlists.list, subscriptions.list, activities.list, videoCategories.list | 1 unit |
| comments.insert, playlists.insert, subscriptions.insert, videos.rate, videos.delete | 50 units |
| liveChatMessages.insert | 20 units |
| liveChatBans.insert, liveChatModerators.insert | 200 units |
If you use one of these, look at the cost here, multiply it by your calls, and add the result to the shared pool total the calculator gives you. Say you send 40 comments.insert replies a day: that is 40 times 50, or 2,000 extra pool units.
About videos.batchGetStats: it is in its own bucket, so it does not touch the shared pool. The calculator does not include it, and its reference page does not say how many ids one call can take, so plan it on its own: one call, one unit, out of 10,000 a day by default.
How to use the calculator
- List the calls your app makes in a day. Count calls, not items. One videos.list call with 50 ids is one call.
- Type the number next to each method you use. Commas are fine, so 1,000 works. Leave the methods you do not use empty.
- Press Add it up.
- Read the status line at the top. It says if you are inside the default limits or names the bucket you are over.
- Look at the second table to find the method with the biggest total. Cache or batch that one first.
If you press the button with every box empty, the tool asks you to enter calls for at least one method. Zero and negative numbers are ignored.
How the numbers are worked out
The sum is plain multiplication, done in your browser. Nothing is sent to Google or to our server.
- For each method: calls a day times the cost each gives the total for that line.
- For each bucket: the totals of its methods are added together. The shared pool has 12 of the methods. The search bucket has only search.list, and the upload bucket has only videos.insert.
- Left = the default limit minus what you used. A negative number means you are over.
The limits used are 10,000 units, 100 search calls and 100 upload calls. The tool does not know your own project's limits, so if Google raised yours, compare the "Used" column with your real limit.
A worked example
Say your app refreshes stats for 4,000 videos a day, looks up 2,000 channels one at a time, updates 20 video descriptions, runs 30 searches and uploads 3 videos.
| Method | Calls a day | Cost each | Total |
|---|---|---|---|
| videos.list (50 ids a call) | 80 | 1 | 80 units |
| channels.list (1 id a call) | 2,000 | 1 | 2,000 units |
| videos.update | 20 | 50 | 1,000 units |
| search.list | 30 | 1 | 30 of 100 calls |
| videos.insert | 3 | 1 | 3 of 100 calls |
The 4,000 videos are only 80 calls, because videos.list takes up to 50 ids in one call. Your shared pool use is 80 plus 2,000 plus 1,000, which is 3,080 of 10,000, with 6,920 left. Searches are 30 of 100, so 70 are left. Uploads are 3 of 100, so 97 are left.
Now look at what moved the number. The 2,000 single channel lookups cost 25 times more than the 4,000 videos, only because they were not batched. Send 50 channel ids per call and 2,000 calls become 40. Your pool use falls from 3,080 to 1,120. Batching is usually the first and biggest saving.
A second example shows how fast captions eat the pool. Say a tool uploads 10 new caption tracks a day and fixes 10 old ones. That is 10 times 400 plus 10 times 450, which is 8,500 units. Only 1,500 units are left for everything else your app does that day.
Count pagination properly
Google's table says each request for an extra page of results costs the same as the first. This is where many plans go wrong.
If you read a channel's uploads with playlistItems.list, each page holds up to 50 videos and costs 1 unit. A channel with 1,000 uploads needs 20 pages for a full read. Do that for 500 channels a day and you spend 10,000 units: the whole pool. Read only the newest page of each channel and the cost falls to 500 units.
Search is the same. Each extra page of search.list results is one more call from your 100. If you fetch 4 pages for every keyword, you can only check 25 keywords a day. So in the calculator, type pages times calls, not just calls.
How to read your result
The first box tells you if you are inside the default limits. If not, it names the bucket that is over. Below it, the bucket table shows each bucket with what you used, the limit and what is left. The method table lists only the methods you entered, with calls, cost and total, so you can see which line is doing the damage.
Being inside the limit is not the same as being safe. I would treat 80 percent as the point to start worrying. A retry loop, a crawl that runs long or a sudden rush of users can use the rest in an hour. So if your pool use is 8,000 or more, or your searches are 80 or more, act now.
When a bucket runs out, Google's error list says calls fail with a 403 quotaExceeded error until the reset. Do not confuse it with rateLimitExceeded, which means too many requests in a short time. The fix for that is to slow down and retry later. The fix for quotaExceeded is to wait for the reset or use fewer units.
Plan your heavy jobs around the reset time. Midnight Pacific Time is 8:00 UTC in winter and 7:00 UTC in summer. In Pakistan that is 1 pm in winter and 12 pm in summer, and in India it is 1:30 pm or 12:30 pm. So the reset lands in the middle of the working day there. A crawl that starts at 9 am Pakistan time runs on the tail of yesterday's quota.
Ways to use less quota
- Batch your ids. Send up to 50 ids in one videos.list or channels.list call. Our video ID extractor and channel ID finder help you collect clean ids first.
- Avoid search when you know the channel. To list a channel's videos, read its uploads playlist with playlistItems.list from the shared pool and save your 100 searches for finding new videos.
- Ask only for the parts you need. The part parameter does not change the cost of a call in Google's table, but smaller responses are faster and keep your code clear about what it uses.
- Cache sensibly. Do not re-read what has not changed. Follow Google's developer policies on how long you may store data.
- Check input first. Google says all requests, including invalid ones, cost at least one unit. A typo in an id still costs you.
- Stop pagination early. Each page costs a call, so read only as deep as you need.
- Keep a margin. Plan for retries and for a busy day, and never sit at 100 percent.
Mistakes to avoid
- Using old costs. If a guide says search costs 100 units or an upload costs 1,600, it was written before December 2025 or June 2026.
- Adding all buckets into one number. 50 searches and 9,950 pool units is not "10,000 of 10,000". Each bucket has its own limit.
- Counting items instead of calls. 4,000 videos in batches of 50 is 80 calls, not 4,000.
- Forgetting failed calls and retries. They cost units too.
- Thinking more API keys means more quota. The quota belongs to the project, and Google's policies do not allow splitting one app across many projects to get around limits.
- Forgetting extra pages. Each page is a full new call.
Ways to work out your quota
There are three ways to do this, and they answer different questions.
| Way | Good for | Weak point |
|---|---|---|
| Quotas page in the Google Cloud console | Your own limits and your use so far today | Shows the past, not a plan for next month |
| A spreadsheet with Google's table | Any method, any formula you like | Easy to copy an old cost or mix the buckets |
| This calculator | A fast plan with current costs and three buckets | Covers 14 common methods and default limits only |
In plain words: use this page before you build, to see if the idea fits. Use the console after you launch, to see what happened. If the two disagree, trust the console, because it knows your project. You can open it from Google's getting started guide.
When you need more quota
You can ask for more through Google's quota extension form. Google says the new granular buckets make it easier to approve requests for one method, so ask only for the bucket you need, for example more searches. The usual route includes a compliance audit, so have your arithmetic ready per method and be ready to show how you use and store the data. The tables from this calculator are a good start for that.
Do not try to get around the limit with many projects or keys for one app. Google's developer policies do not allow it, and it puts your access at risk.
What this tool does not do
- It does not connect to your Google project or see your usage. It is a planning sum.
- It uses the default limits. If Google raised yours, the "Left" column will be too low.
- It lists 14 methods. For others, add their cost from Google's table by hand.
- It has no pages field. Multiply calls by pages yourself before you type them.
- It does not include videos.batchGetStats, which has its own bucket.
- Costs can change. The tool shows the date we last checked Google's table, so compare it with the "last updated" date on Google's page.
To see these methods at work on live videos, try the video stats tool, the playlist length calculator or the comment finder.
Questions
What is the YouTube API daily quota?
By default, a project gets 10,000 units a day in a shared pool, plus 100 search.list calls and 100 videos.insert calls in their own buckets.
How much does a search cost in the YouTube API?
Since June 2026, each search.list call costs 1 from its own limit of 100 calls a day. Guides that say 100 units from the shared pool are out of date.
How much quota does a video upload cost?
Each videos.insert call uses 1 of 100 upload calls a day. Google cut the upload cost from about 1,600 units to about 100 in December 2025, then moved uploads to their own bucket in June 2026.
How many videos can I upload through the API each day?
The default is 100 videos.insert calls a day. Your project may have a different limit if Google changed it.
When does the YouTube API quota reset?
Google says daily quotas reset at midnight Pacific Time. That is 1 pm in Pakistan in winter and 12 pm in summer.
How many API calls can I make per day for free?
It depends on the methods. At 1 unit each you get up to 10,000 read calls like videos.list, plus 100 searches and 100 uploads. At 50 units each, you get only 200 write calls.
Do failed API calls use quota?
Yes. Google says all requests, including invalid ones, cost at least one unit.
How much does videos.list cost?
1 unit per call, and one call can carry up to 50 video ids. So 4,000 videos can cost just 80 units.
How much do captions cost in the YouTube API?
captions.insert costs 400 units, captions.update costs 450 and captions.list costs 50. They are the most expensive common methods.
Do extra pages of results cost more quota?
Yes. Each request for another page costs the same as the first one, so 4 pages of search results use 4 of your 100 searches.
Does the part parameter change the quota cost?
No. Google's cost table gives one cost per method. Ask only for the parts you need anyway, because responses are smaller and faster.
What happens when I run out of quota?
Calls to the bucket that ran out fail with a 403 quotaExceeded error until the reset. Other buckets keep working.
What is the difference between quotaExceeded and rateLimitExceeded?
quotaExceeded means a daily limit is used up. rateLimitExceeded means too many requests in a short time, so slow down and retry.
Is the quota per API key or per project?
Per project. All API keys in the same Google Cloud project share the same limits.
Can I use several projects or API keys to get more quota?
Do not. Google's developer policies bar splitting one app across projects to get around limits, and it puts your access at risk.
How do I get more YouTube API quota?
Use Google's quota extension form for YouTube API Services. Expect a compliance audit, and ask for the bucket you need.
Where do I see my actual usage?
On the Quotas page in the Google Cloud console. This calculator cannot see your project.
Is the YouTube Data API free?
Yes, the default quota is free. You pay with limits, not money, and you ask Google for more when you need it.
Why is videos.batchGetStats not in the calculator?
It has its own bucket, with a default of 10,000 units a day at 1 unit per call, so it does not touch the shared pool. Plan it separately.
Related tools
Ask about this page in ChatGPT · Claude · Perplexity