Back to Blog
YouTube

YouTube Data API Quota in 2026: Search Now Has Its Own 100-a-Day Limit

October 30, 2026
8 min read
S
By SociaVault Team
YouTube APIYouTube Data APIAPI quotaYouTube searchdevelopers

YouTube Data API Quota in 2026: Search Now Has Its Own 100-a-Day Limit

The YouTube Data API gives every project 10,000 quota units a day, but search no longer comes out of that pool. Since June 2026, search.list and video uploads each have their own bucket of 100 calls a day. Everything else still shares the 10,000 units.

That's a real change. A lot of guides, including ones published this year, still say a search costs 100 units of your 10,000. It doesn't anymore. Here's how the quota works now, what it buys, and where it runs out.

How the quota works in 2026

BucketDefault daily limitWhat uses it
Main quota10,000 unitsAlmost every method, at 1 unit for most reads
Search100 callssearch.list, 1 per call
Uploads100 callsvideos.insert, 1 per call
Batch stats10,000 unitsvideos.batchGetStats, 1 unit per call

Three rules apply everywhere. Every request costs at least one unit, including invalid ones. Each extra page of results costs the same as the first. And all quotas reset at midnight Pacific Time.

These limits come from Google's quota calculator, last updated 15 October 2026.

What changed this year

DateChange
4 December 2025A video upload dropped from about 1,600 units to about 100
1 June 2026Granular quotas: search.list and videos.insert moved to their own buckets
3 June 2026New videos.batchGetStats method, 1 unit, with its own 10,000-unit bucket
27 August 2026Public views now count when a video starts playing, for long-form, Live and Shorts

All of these are in YouTube's revision history. The view count change matters even if you never touch quota: it changed what viewCount means. We measured what it did to the numbers in our study of the view count change. On the median channel, likes per view fell by 41% for videos published after it.

What each read call costs

MethodCostReturns per call
videos.list1 unitUp to 50 videos
videos.batchGetStats1 unit (own bucket)Views, likes, comments and duration for a list of video IDs
channels.list1 unitUp to 50 channels
playlistItems.list1 unitUp to 50 items, so a channel's uploads, 50 at a time
commentThreads.list1 unitUp to 100 top-level comments
comments.list1 unitReplies to a comment
search.list1 call of 100 a dayUp to 50 results
captions.list50 unitsThe caption tracks on a video
captions.download200 unitsOne caption track, only for videos you can edit

Writes cost more. Inserting a comment, a playlist or a subscription, updating a video, rating one or setting a thumbnail each cost 50 units.

What 10,000 units actually buys

For reading public data, the main quota goes a long way:

JobCallsUnitsFits in a day?
Stats for 10,000 videos200 videos.list calls200Yes, 50 times over
Every upload from 100 channels with 500 videos each1,000 playlistItems.list pages1,000Yes
50,000 top-level comments500 commentThreads.list pages500Yes
100 keyword searches100 search.list callsSearch bucketJust
500 keyword searches500 search.list callsSearch bucketNo, 5 days
Transcripts for 100 videos you don't ownNot possibleNoneNo

If your job is stats and comments for videos you already know, the official API is hard to beat. It's free, and 10,000 units covers a lot of ground. Add videos.batchGetStats and you get another 10,000 units a day just for view, like and comment counts.

Where the official API runs out

  • Search. 100 searches a day, at up to 50 results each, is 5,000 results. Brand monitoring across many keywords, or finding new creators every day, needs more.
  • Transcripts. captions.download only works on videos you have permission to edit. You can't pull the transcript of someone else's video, however much quota you have.
  • More quota. Going past the defaults means a compliance audit and the quota extension form. It's free, but it takes time and you need to fit YouTube's policies.
  • Setup. You need a Google Cloud project and an API key, plus OAuth for anything tied to a channel.

When to use the official API, and when not to

Use the official API for your own channel, for anything that writes (uploads, comments, playlists), and for bulk stats on videos you already have IDs for. It's free, it's official, and the quota is generous for reads.

Use a data API when you need more than 100 searches a day, transcripts of videos you don't own, or one key that also covers TikTok, Instagram and other platforms. SociaVault's YouTube endpoints have no daily quota. Each call costs 1 credit:

EndpointReturnsCost
SearchVideos for a keyword, with paging1 credit per page
Channel videosAbout 30 long-form uploads with views, likes, comments and length1 credit
Channel ShortsA channel's Shorts1 credit
Video transcriptThe transcript of any public video1 credit
Video commentsAbout 20 comments per page1 credit

Many teams use both: the official API for stats on known videos, and a data API for search and transcripts.

Code: the same search both ways

With the official API, a search uses one of your 100 daily calls. In JavaScript (Node 18 or later, as an .mjs file):

const params = new URLSearchParams({
  part: "snippet",
  q: "home workout",
  type: "video",
  maxResults: "50",
  key: process.env.YOUTUBE_API_KEY,
});
const res = await fetch(
  `https://www.googleapis.com/youtube/v3/search?${params}`,
);
// Once the day's quota is gone, this fails with 403 quotaExceeded
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
for (const item of (await res.json()).items ?? []) {
  console.log(item.id.videoId, item.snippet.title);
}

And in Python:

import os
import requests

r = requests.get("https://www.googleapis.com/youtube/v3/search", params={
    "part": "snippet",
    "q": "home workout",
    "type": "video",
    "maxResults": 50,
    "key": os.environ["YOUTUBE_API_KEY"],
}, timeout=30)
r.raise_for_status()  # once the day's quota is gone, this fails with 403 quotaExceeded
for item in r.json().get("items", []):
    print(item["id"]["videoId"], item["snippet"]["title"])

The official search returns IDs and titles. Views and lengths need a second call to videos.list (1 unit for up to 50 videos).

With SociaVault, the results already include views and length, and there's no daily cap. In JavaScript:

// Lists can come back as arrays or as objects with numbered keys
const asList = (x) => (Array.isArray(x) ? x : Object.values(x ?? {}));

const params = new URLSearchParams({
  query: "home workout",
  uploadDate: "this_month",
});
const res = await fetch(
  `https://api.sociavault.com/v1/scrape/youtube/search?${params}`,
  {
    headers: { "x-api-key": process.env.SOCIAVAULT_API_KEY },
  },
);
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
const data = (await res.json()).data ?? {};
for (const v of asList(data.videos)) {
  console.log(v.id, v.viewCountInt, v.lengthSeconds, v.title);
}

And in Python:

import os
import requests

def as_list(x):
    # Lists can come back as lists or as dicts with numbered keys
    return list(x.values()) if isinstance(x, dict) else (x or [])

r = requests.get("https://api.sociavault.com/v1/scrape/youtube/search",
                 headers={"x-api-key": os.environ["SOCIAVAULT_API_KEY"]},
                 params={"query": "home workout", "uploadDate": "this_month"},
                 timeout=60)
r.raise_for_status()
for v in as_list((r.json().get("data") or {}).get("videos")):
    print(v.get("id"), v.get("viewCountInt"), v.get("lengthSeconds"), v.get("title"))

Frequently Asked Questions

What is the YouTube Data API quota limit?

10,000 units a day by default for most methods. Since June 2026, search.list and videos.insert each have a separate limit of 100 calls a day, and videos.batchGetStats has its own 10,000 units.

How many searches can I do with the YouTube API per day?

100 by default, each returning up to 50 results. Searches no longer use your main 10,000-unit quota.

How much does a YouTube API search cost in units?

It's now counted as 1 call in the search bucket, which allows 100 a day. The old rule of 100 units per search, out of 10,000, no longer applies.

When does the YouTube API quota reset?

At midnight Pacific Time, every day.

Can I get transcripts from the YouTube Data API?

Only for videos you have permission to edit, and each download costs 200 units. For other videos you need a different source, such as a transcript API.

How do I get more YouTube API quota?

Apply through YouTube's quota extension form. Going past the default quota requires passing an API compliance audit.


Need more than 100 YouTube searches a day, or transcripts of any video? Sign up for 50 free credits and try the search snippet above.

Found this helpful?

Share it with others who might benefit

Ready to Try SociaVault?

Start extracting social media data with our powerful API. No credit card required.