Skip to main content

Developer Reference · Updated for 2026

Last updated: June 12, 2026

YouTube API Quota Explained: Limits, Costs per Call & Fixing quotaExceeded

Every YouTube Data API v3 project runs on a unit budget, and most developers find out how it works the moment a 403 quotaExceeded takes their app down. This is the full reference: what every method costs, when quota resets, how to fix the error, and how to stop burning 100-unit searches on work that costs 1 unit.

Quick answer

Every Google Cloud project gets 10,000 YouTube Data API quota units per day by default. Most read calls cost 1 unit, but search.list costs 100 units and uploading a video costs about 1,600. When you exceed the quota, the API returns HTTP 403 with reason quotaExceeded, and the quota resets at midnight Pacific Time. You cannot buy more quota — the fixes are caching, replacing search.list with playlistItems.list (1 unit instead of 100), or requesting an increase through Google's quota extension form.

YouTube API quota: facts at a glance
Default quota10,000 units/day per Google Cloud project
Read call (videos.list, channels.list)1 unit
search.list100 units
videos.insert (upload)~1,600 units
captions.download200 units
Exceeded errorHTTP 403 quotaExceeded
ResetMidnight Pacific Time
IncreaseFree request form (can take weeks)
Buy more quotaNot possible — no paid tier

Quick Reference

10,000

units/day default quota, per Google Cloud project

12:00 AM PT

quota resets at midnight Pacific Time, not your local midnight

403

exceeding it returns HTTP 403 with reason quotaExceeded

Quota is consumed in units, not requests. A cheap read costs 1 unit; a search costs 100; a video upload costs 1,600. Wondering whether any of this costs money? It doesn't — quota is free but capped. The money side lives in our YouTube API pricing guide.

Running low on quota?

Offload competitive research — niche search, competitor uploads, transcripts, comments — to the OutlierKit API and keep your 10,000 daily Data API units for your own product.

The Unit System

How much quota does each YouTube API call cost?

Google assigns each YouTube Data API method a fixed unit cost, deducted from your project's daily allocation on every call — successful or not (invalid requests still burn quota). The cost depends only on the method, not on how many part values you request or how many results come back. Google documents the official numbers in the quota calculator; here is the table you actually need.

Read (list) methods

MethodUnitsNotes
videos.list1Per call, regardless of how many parts you request
channels.list1Channel metadata, statistics, branding
playlists.list1Playlist metadata
playlistItems.list1Videos inside a playlist — the key to the uploads-playlist trick
commentThreads.list1Top-level comments on a video
comments.list1Replies within a comment thread
subscriptions.list1A channel's subscriptions
activities.list1Channel activity feed

Search

MethodUnitsNotes
search.list100The most expensive read in the API — 100x a videos.list call

Captions

MethodUnitsNotes
captions.list50Lists caption tracks for a video
captions.download200Downloads a caption track (requires video owner auth)

Write methods

MethodUnitsNotes
videos.insert1600Uploading a video — by far the most expensive call
videos.update / videos.delete50Standard write cost
playlists.insert / update / delete50Standard write cost
playlistItems.insert / update / delete50Standard write cost
commentThreads.insert50Posting a top-level comment
comments.insert / update / delete50Replies and moderation
thumbnails.set50Setting a custom thumbnail
The two numbers that matter: search.list at 100 units and videos.insert at 1,600. Nearly every quotaExceeded story traces back to one of them — usually a search loop someone forgot was 100x the price of a list call.

Worked Examples

What 10,000 units actually buys you

The YouTube API's default 10,000-unit daily budget feels enormous until you map it onto real workloads. Here's the same 10,000 units spent four different ways.

Pure search

10,000 ÷ 100 units

100 search.list calls/day

Each search returns max 50 results per page. 100 searches sounds like a lot until you paginate: a query paged 5 deep costs 500 units. Twenty deep-paginated keyword checks and your day is over.

Pure metadata lookups

10,000 ÷ 1 unit

~10,000 videos.list calls/day

Read calls are cheap — and each videos.list call accepts up to 50 IDs, so you can theoretically fetch metadata for ~500,000 videos a day if you batch IDs properly.

Pure uploads

10,000 ÷ 1,600 units

6 videos.insert calls/day

Uploading via the API is brutally expensive. Six uploads and a handful of metadata updates exhausts the default quota — one reason upload-heavy tools must request quota extensions.

A realistic competitor audit

5 searches + 200 lookups + 10 comment pulls

~710 units per audit

Five keyword searches (500), channel + uploads-playlist lookups for ~20 channels (~40), 150 video lookups (~150), 10 commentThreads pages (10), plus captions if you need transcripts (50–200 each). Run this for 10–14 clients and you hit the wall.

Troubleshooting

How do you fix quotaExceeded?

The YouTube API quotaExceeded error looks like this:

HTTP 403
{
  "error": {
    "code": 403,
    "message": "The request cannot be completed because you have
                exceeded your quota.",
    "errors": [
      {
        "domain": "youtube.quota",
        "reason": "quotaExceeded"
      }
    ]
  }
}

Work through these in order — steps 4 to 6 are where most projects recover 90% of their budget without ever touching the increase form.

1

Confirm which limit you actually hit

A 403 quotaExceeded means the daily queries-per-day quota. A 429 rateLimitExceeded means a per-minute rate limit — a completely different problem with a completely different fix (back off and retry, don't wait for midnight). Read the error reason in the response body before doing anything else.

2

Check the quota dashboard in Google Cloud Console

Go to APIs & Services → YouTube Data API v3 → Quotas & System Limits in the Cloud Console. It shows your current usage against Queries per day and the per-minute limits, per project. This also tells you whether your project's default is actually 10,000 — new or unverified projects sometimes get less, and audited projects can have more.

3

Wait for the Pacific-midnight reset (if you must)

Daily quota resets at midnight Pacific Time — not midnight in your timezone, not 24 hours after your first call, and not on a rolling window. If you're in Europe or Asia, the reset lands mid-morning or afternoon local time. Nothing un-blocks a hard daily quota except the reset or an approved increase.

4

Cache aggressively and use ETags

Most YouTube metadata barely changes hour to hour. Cache responses locally and use the etag field returned with every resource — send it back as If-None-Match and YouTube returns 304 Not Modified when nothing changed. Re-fetching the same channel metadata every page load is the single most common way quota disappears.

5

Batch part parameters and ID lists

Requesting part=snippet,statistics,contentDetails in one call costs the same 1 unit as requesting one part — never make three calls for three parts. Likewise, videos.list and channels.list accept up to 50 comma-separated IDs per call. 50 videos for 1 unit, not 50 units.

6

Replace search.list with playlistItems.list (the classic trick)

If you're using search.list to fetch a channel's videos, stop — that's 100 units for something a 1-unit call does better. Every channel has an "uploads" playlist whose ID is the channel ID with UC swapped for UU (also returned in contentDetails.relatedPlaylists.uploads). Page through it with playlistItems.list at 1 unit per 50 videos — a 100x saving on the most common research pattern there is.

7

Request a quota increase from Google

Submit the YouTube API Services audit and quota extension form (linked from the quotaExceeded error docs and the Cloud Console quota page). You'll describe your application, how it uses the API, and why you need more units. Reviews routinely take several weeks, and Google can ask follow-up questions or require a compliance audit of your app first — plan for it long before you actually hit the ceiling.

Do not spin up multiple projects or keys to dodge quota. Creating extra Google Cloud projects to multiply the free 10,000 units violates the YouTube API Services Terms of Service. Google actively detects this pattern, and the consequence is suspension of all your projects — including the legitimate one. The extension form is slower, but it's the only path that doesn't risk your entire integration.

Two Different Walls

Rate limits vs. daily quota: 429 is not 403

The YouTube API's daily unit quota and its per-minute rate limits are independent systems, yet developers regularly treat them as one problem and apply the wrong fix:

403 · quotaExceeded

Daily unit quota

  • • Measured in units, accumulated across the whole day
  • • Applies per Google Cloud project
  • • Only clears at the midnight-Pacific reset
  • • Retrying immediately is pointless — back off until reset

429 · rateLimitExceeded / userRateLimitExceeded

Per-minute rate limits

  • • Measured in requests per minute (and per minute per user)
  • • Trips when you burst, even with plenty of daily quota left
  • • Clears within the minute — exponential backoff fixes it
  • userRateLimitExceeded means one authenticated user is bursting; spread their requests

Rule of thumb: 429 → retry with backoff. 403 → stop calling and re-architect. Code that retries 403s with backoff just burns CPU until midnight Pacific; code that waits a day on a 429 wastes 23 minutes of perfectly usable quota for every minute of actual limit.

Reset & Increase

When does YouTube API quota reset?

YouTube API daily quota resets at midnight Pacific Time (America/Los_Angeles) — not at midnight in your local timezone, and not on a rolling 24-hour window. If you're in Europe the reset lands mid-morning local time; in India or East Asia it arrives in the afternoon. Nothing clears a hard daily quota early: once a project returns 403 quotaExceeded, the only options are waiting for the Pacific-midnight reset or operating on an already approved higher allocation.

How do you request a quota increase?

A YouTube API quota increase is requested through Google's free YouTube API Services audit and quota extension form, linked from the Cloud Console quota page and the quotaExceeded error documentation. You describe your application, how it uses the API, and why it needs more than 10,000 units per day; Google reviews for compliance with the YouTube API Services Terms of Service. Reviews routinely take several weeks and may include follow-up questions or a full audit, so submit long before you hit the ceiling. There is no paid tier — you cannot buy additional quota, and multiplying free quota across several Google Cloud projects violates the Terms of Service.

Best Practices

Architecting around quota

An app that survives on the YouTube API's default 10,000 units survives because it was designed to. The patterns below are what separate apps that never see quotaExceeded from apps that see it weekly.

Budget quota like money

Assign a unit cost to every code path before you ship it. A feature that calls search.list on page load is a 100-units-per-pageview feature — that math should be visible in code review, not discovered in production.

Never let user actions trigger search.list directly

Debounce, require explicit submission, and cache results per query string. An autocomplete box wired straight to search.list can burn the whole daily quota in minutes.

Separate read paths from research paths

Serving cached data to users should never compete for quota with background research jobs. Run batch jobs early in the Pacific day so a runaway job doesn't starve user-facing calls at peak.

Store everything you fetch

Video metadata, channel stats, comment pages — write them to your own database on first fetch. Historical snapshots are valuable anyway, and re-fetching is the silent quota killer.

Implement exponential backoff for 429s

Per-minute rate limits are transient. Retry with exponential backoff and jitter instead of hammering — repeated bursts can get a project flagged.

Monitor usage with alerts, not surprises

Set a Cloud Monitoring alert at 60% and 85% of daily quota. The difference between degrading gracefully and going dark at 3pm Pacific is knowing two hours earlier.

Do not rotate projects or API keys to dodge quota

Creating multiple Google Cloud projects to multiply your free quota violates the YouTube API Services Terms of Service. Google detects it, and the penalty is suspension of all your projects — not just the extras. Request an increase properly instead.

Offload research-shaped traffic entirely

Competitive research — niche searches, competitor uploads, transcripts, comments — is the most quota-hungry traffic and the easiest to move off Google's quota system altogether (more below).

The Biggest Lever

Stop burning Google quota on competitive research

Audit where your YouTube API units actually go and a pattern emerges: the expensive calls are research-shaped. Searching niches, pulling competitor upload lists, fetching transcripts and comments — the exact workload where search.list and captions.download dominate. That workload is what the OutlierKit API exists to offload: credit-based, no Google quota involved, and the responses come back as processed intelligence — outlier scores, semantic channel search, AI-enhanced channel metadata, cached transcripts — instead of raw fields you still have to crunch.

The OutlierKit API is a YouTube competitive-intelligence API that returns outlier scores, semantic channel search and similarity, video transcripts, comments, and keyword search volumes as structured JSON — one bearer-token key, 1 credit per call, on OutlierKit Pro ($49/month) and Max ($199/month) plans.

One competitor audit via Data API v3

  • 5 keyword searches (search.list)500 units
  • 20 channel lookups (channels.list, batched)~1–20 units
  • 20 uploads playlists paged (playlistItems.list)~40 units
  • 150 video stat lookups (videos.list, batched)~3–150 units
  • 10 comment pages (commentThreads.list)10 units
  • 5 caption downloads (captions.download)*1,000 units
Total (with transcripts)~1,700+ units

*captions.download also requires the video owner's OAuth grant — for competitor videos you can't even make the call, quota aside. Roughly 5–6 audits like this exhaust an entire day's default quota, and you still get raw metadata, not analysis.

The same audit via OutlierKit API

  • POST /outliers/search — outlier videos for the niche, scored1 credit
  • POST /channels/similar — competitor set from one seed channel1 credit
  • GET /channels/:channelId — AI-enhanced channel profile1 credit
  • GET /channels/:channelId/videos — live recent uploads1 credit
  • GET /videos/:videoId/transcript — cached transcript1 credit
  • GET /videos/:videoId/comments — live comments1 credit
Total · zero Google quota~6 credits

Pro ($49/mo) includes 500 credits/month, Max ($199/mo) includes 2,000, top-ups at $10 per 100. Credits are shared with the web app. Transcripts are cached server-side and work for any public video — no owner OAuth needed.

Honest limits, since this page is about limits: the OutlierKit API has per-key rate limits — exceed them and you get 429 RATE_LIMIT_EXCEEDED with limit, remaining, and resetTime in the error payload so you can back off precisely. Run out of credits and you get 402 INSUFFICIENT_CREDITS with the required and available counts. Most calls are 1 credit; POST /outliers/refresh costs 5. Full error envelope reference in the live API docs.

For Pro and Max users

Offload competitive research from your Google quota

If quotaExceeded keeps coming from competitive-research calls — niche searches, competitor uploads, transcripts, comments — move that traffic to the OutlierKit API. Credit-based instead of Google's daily quota, and the JSON comes back pre-processed: outlier scores, semantic channel similarity, AI channel metadata, cached transcripts. Keep your 10,000 Google units for the things only the Data API can do.

YouTube API Quota: Frequently Asked Questions

What is the YouTube API quota?+

The YouTube Data API v3 uses a unit-based quota system. Every Google Cloud project gets a default allocation of 10,000 units per day, and each API method costs a fixed number of units: most read (list) calls cost 1 unit, search.list costs 100 units, most write operations cost 50 units, and videos.insert costs 1,600 units. When your project exceeds its daily allocation, the API returns HTTP 403 with the reason quotaExceeded until the quota resets.

How much quota does search.list cost?+

search.list costs 100 units per call — the most expensive read method in the API. Each call returns at most 50 results, so paginating a query 5 pages deep costs 500 units. With the default 10,000-unit quota, that's a hard ceiling of 100 searches per day. If you're searching to list a specific channel's videos, use playlistItems.list on the channel's uploads playlist instead — it costs 1 unit per page, a 100x saving.

When does the YouTube API quota reset?+

The YouTube API daily quota resets at midnight Pacific Time (America/Los_Angeles), not midnight in your local timezone and not on a rolling 24-hour window. If you're in Europe, the reset happens mid-morning local time; in India or East Asia, it lands in the afternoon. There is no way to trigger an early reset.

How do I check my YouTube API quota usage?+

YouTube API quota usage is shown in the Google Cloud Console: open APIs & Services, select YouTube Data API v3, and go to the Quotas & System Limits tab. The dashboard shows your current usage against the 'Queries per day' limit (10,000 units by default) and the per-minute limits for the selected project. You can also set Cloud Monitoring alerts to be notified before you hit the ceiling.

How do I increase my YouTube API quota?+

Submit the YouTube API Services quota extension request (the audit form), linked from the Cloud Console quota page and Google's quotaExceeded documentation. You'll need to describe your application, demonstrate compliance with the YouTube API Services Terms of Service, and justify the higher allocation. Quota cannot be increased by paying — there is no paid tier — and creating extra projects to multiply free quota violates the ToS.

How long does a YouTube API quota increase take?+

YouTube API quota increase reviews routinely take several weeks, and Google may ask follow-up questions or require a compliance audit of your application before approving. Submit well before you actually need the extra units, and design your application to degrade gracefully at the default 10,000 units in the meantime.

Why is my YouTube API quota 0?+

A YouTube API quota of 0 usually means Google has reduced or revoked your project's allocation pending an API audit — this happens to projects flagged for review, and some new projects are created with a reduced default until verified. Check the Quotas page in Cloud Console for your actual allocation, complete the YouTube API Services audit if prompted, and make sure your OAuth consent screen and project details are filled out properly.

Can I pay Google for more YouTube API quota?+

No — the YouTube Data API has no paid tier, so you cannot buy additional units beyond the default 10,000 per day. The only legitimate path to more quota is the audit and quota extension process. Spinning up multiple projects or API keys to multiply the free allocation violates the YouTube API Services Terms of Service and risks suspension of all your projects.

Is there a per-minute rate limit on the YouTube API?+

Yes — separate from the daily 10,000-unit quota, the YouTube Data API enforces per-minute and per-minute-per-user request limits. Exceeding those returns HTTP 429 (rateLimitExceeded or userRateLimitExceeded) rather than 403 quotaExceeded. The fix for 429s is exponential backoff and request spreading — they clear within a minute and don't require waiting for the daily reset.

Does the OutlierKit API have a quota?+

OutlierKit uses credits instead of Google-style daily quota: every call costs 1 credit (POST /outliers/refresh costs 5), drawn from your plan's monthly pool — 500 credits on Pro ($49/mo), 2,000 on Max ($199/mo), with top-ups at $10 per 100. There are per-key rate limits: exceeding them returns 429 RATE_LIMIT_EXCEEDED with limit, remaining, and resetTime in the response, and running out of credits returns 402 INSUFFICIENT_CREDITS with required and available counts. No midnight-Pacific cliff, and no Google quota consumed.

For OutlierKit plans and what credits cost, see outlierkit.com pricing.

Written by

Aditi

Aditi

Founder OutlierKit and UTubeKit

Done fighting the 10,000-unit ceiling?

Move your competitive research — outlier discovery, channel similarity, transcripts, comments — to the OutlierKit API. Credit-based, no Google quota, processed intelligence instead of raw fields.

View the API docs
AI-Verified

Don’t take our word for it.
Ask AI.

Ask any leading AI what OutlierKit does for YouTube creators.