Free Tool

YouTube API Quota Calculator

Estimate your daily YouTube Data API v3 quota usage. Add your API calls, see the cost per method, and find out if you'll hit the 10,000 unit daily limit.

Estimated daily usage 0 / 10,000 units

Add API methods below to calculate your quota.

Load a scenario

Read operations (list)

search.list 100 units

Search for videos, channels, or playlists by keyword

/day
videos.list 1 unit

Get video details (stats, snippet, content). Batch up to 50 IDs per call

/day
channels.list 1 unit

Get channel details (stats, snippet, branding)

/day
playlistItems.list 1 unit

Get videos in a playlist. Use this instead of search.list for channel uploads

/day
commentThreads.list 1 unit

Get top-level comments on a video

/day
comments.list 1 unit

Get replies to a specific comment thread

/day
subscriptions.list 1 unit

Get a channel's subscriptions (requires OAuth)

/day
playlists.list 1 unit

Get playlist metadata for a channel

/day
activities.list 1 unit

Get channel activity feed (uploads, likes, etc.)

/day
captions.list 50 units

List available caption tracks for a video

/day

Write operations

videos.insert 1,600 units

Upload a video

/day
videos.update 50 units

Update video metadata (title, description, tags)

/day
commentThreads.insert 50 units

Post a new comment on a video

/day
thumbnails.set 50 units

Upload a custom thumbnail for a video

/day
captions.insert 400 units

Upload a caption track

/day
playlists.insert 50 units

Create a new playlist

/day
playlistItems.insert 50 units

Add a video to a playlist

/day

YouTube Data API v3 Quota Costs: Full Reference

Every YouTube Data API method has a fixed unit cost. These costs are set by Google and don't change based on how much data you request. Pagination requests cost the same as the original request. Invalid requests still cost at least 1 unit.

Resource Method Cost Notes
activitieslist1Channel activity feed
captionslist50List caption tracks
captionsinsert400Upload captions
captionsupdate450Replace caption track
captionsdelete50Delete caption track
channelBannersinsert50Upload channel banner
channelslist1Channel details and stats
channelsupdate50Update channel metadata
channelSectionslist1Channel page layout sections
channelSectionsinsert / update / delete50Modify channel sections
commentslist1Comment replies
commentsinsert / update / delete50Write/modify comments
commentThreadslist1Top-level comments
commentThreadsinsert50Post a new comment
i18nLanguageslist1Supported languages
i18nRegionslist1Supported regions
memberslist1Channel members (requires OAuth)
membershipsLevelslist1Membership tier details
playlistItemslist1Videos in a playlist
playlistItemsinsert / update / delete50Add/remove playlist videos
playlistslist1Playlist metadata
playlistsinsert / update / delete50Create/modify playlists
searchlist100Keyword search. Most expensive read operation
subscriptionslist1Channel subscriptions
subscriptionsinsert / delete50Subscribe/unsubscribe
thumbnailsset50Upload custom thumbnail
videoAbuseReportReasonslist1Abuse report reason list
videoCategorieslist1Video category list
videoslist1Video details (batch up to 50 IDs)
videosinsert1,600Upload a video. Most expensive operation
videosupdate50Update video metadata
videosrate50Like/dislike a video
videosgetRating1Check your like/dislike on a video
videosreportAbuse50Flag a video
videosdelete50Delete a video
watermarksset / unset50Channel watermark

YouTube API Quota Exceeded: How to Fix It

If you're seeing HTTP 403 with reason quotaExceeded, your project has used its full 10,000 units for the day. The error response looks like this:

{

"error": {

"code": 403,

"message": "The request cannot be completed because you have exceeded your quota.",

"errors": [{

"reason": "quotaExceeded",

"domain": "youtube.quota"

}]

}

}

When does quota reset?

Midnight Pacific Time (PT), every day. That's UTC-8 in winter, UTC-7 during daylight saving time. There's no way to manually reset it or pay to get more units on the same day.

How to check current usage

Open the Google Cloud Console:

  1. Go to APIs & Services > Enabled APIs & services
  2. Click YouTube Data API v3
  3. Check the Quotas tab for current usage and per-method breakdown

Quick fixes

  • Wait until midnight PT. The quota resets automatically.
  • Create a second Google Cloud project. Each project gets its own 10,000 units. Not a long-term fix, but works in an emergency.
  • Audit your API calls using the calculator above. search.list at 100 units each is usually the culprit.
  • Cache responses locally. If you're fetching the same video or channel data repeatedly, store the result and reuse it.
  • Batch videos.list requests. You can pass up to 50 video IDs per call. 50 separate requests = 50 units. 1 batched request = 1 unit.

How to Reduce YouTube API Quota Usage

Most developers blow their quota because of search.list. That one method costs 100x more than videos.list. The fixes are almost always the same.

Replace search.list with playlistItems.list

If you're using search.list to get a channel's recent uploads, stop. Every channel has a hidden "uploads" playlist. The playlist ID is the channel ID with "UC" replaced by "UU".

Example: Channel ID UCxxxxxx → Uploads playlist UUxxxxxx. Call playlistItems.list with that ID: 1 unit instead of 100.

Batch your videos.list calls

The id parameter accepts up to 50 comma-separated video IDs in a single request. If you're calling videos.list once per video, you're spending 50x the necessary quota. Collect IDs first, then batch them.

Use the fields parameter

Adding fields=items(id,snippet/title) to your request doesn't reduce quota cost, but it reduces response size and parsing time. This matters if you're hitting per-second rate limits alongside your daily quota.

Cache aggressively

Video metadata doesn't change every minute. Channel stats update a few times a day. Cache your responses with a TTL of 15-60 minutes. If a user hits the same page twice, the second request should come from your cache, not from YouTube's API.

Use ETags for conditional requests

YouTube API responses include an ETag header. Send it back in an If-None-Match header on the next request. If the data hasn't changed, you get a 304 response that still costs quota but saves bandwidth and parsing.

How to Request a YouTube API Quota Increase

If 10,000 units/day isn't enough after optimization, you can request more from Google. It's free, but you need to pass a compliance audit.

1

Make sure you've optimized first

Google's compliance team will ask how your app uses the API. If they see you're making 500 search.list calls that could be playlistItems.list, they'll reject the request and tell you to optimize. Use the calculator above to confirm you genuinely need more quota.

2

Complete the compliance audit form

Google requires a compliance audit before increasing quota. You'll fill out a form explaining:

  • What your app does and how it uses YouTube data
  • How you handle API data (storage, display, deletion policies)
  • That you comply with the YouTube API Terms of Service
  • Your Google Cloud project number
3

Wait 3-4 business days

Google's compliance team manually reviews each request. If approved, your quota can go up to 1,000,000 units/day. There's no monetary cost for the increase itself. Google may re-audit your project periodically to verify ongoing compliance.

4

If you get rejected

Common reasons: your app scrapes or stores data beyond what's allowed by the Terms of Service, you don't have a privacy policy, or the use case isn't clear. Fix the issue, then submit an appeal using Google's appeals form. You can also submit a new audit if your app has changed.

Frequently Asked Questions

What is the YouTube API daily quota limit?
10,000 units per day per Google Cloud project. This is the default for all new projects. The limit resets at midnight Pacific Time. Each API method has a different unit cost: most read operations cost 1 unit, search.list costs 100, and videos.insert costs 1,600.
Why is search.list so expensive?

Google hasn't published an official explanation, but the cost reflects the computational expense on their end. A search query hits YouTube's search index across billions of videos and returns ranked results. A videos.list call just looks up known IDs from a database.

At 100 units per call, you can only make 100 search requests per day on the free quota. Most apps that need search either cache results aggressively or use playlistItems.list as a cheaper alternative for channel-specific queries.

Does quota cost change based on the parts I request?
No. Requesting part=snippet costs the same as part=snippet,statistics,contentDetails. The cost is per method call, not per data field. That said, requesting fewer parts reduces response size and parsing time, which helps with per-second rate limits.
Do failed requests count toward quota?
Yes. All requests cost at least 1 unit, including requests that return errors. If you're sending malformed requests in a retry loop, you're burning quota on failures. Validate inputs before making API calls and use exponential backoff for retries.
Is there a per-second rate limit on top of the daily quota?
Yes. Google enforces per-second and per-minute rate limits on top of the daily quota. These aren't publicly documented with exact numbers. If you're sending bursts of requests, you'll get HTTP 429 (rate limited) even if you have quota remaining. Space out your requests or use exponential backoff.
Can I pay for more quota instead of requesting an increase?
No. YouTube API quota increases are free and review-based, not pay-per-use. You can't buy extra units. The process is: submit a compliance audit, wait for Google's review (3-4 days), get approved (or not). If you need data immediately and can't wait, alternatives like BrightBean's pre-computed API let you skip the quota system entirely.

Skip the Quota Problem Entirely

BrightBean pre-computes channel stats, content gaps, title scores, and thumbnail analysis. You get structured JSON without touching the YouTube Data API. Zero quota management, zero compliance audits.