Quota teardown · 2026

The YouTube Data API gives you 10,000 units a day. Here's exactly how fast you'll burn them.

One search costs 100 units. That's 100 searches before you go dark. This is the real quota math, the calls that quietly drain your budget, and where scraping the public pages is the only way through.

Open the YouTube Actor →

Almost everyone who builds something on top of YouTube starts the same way: get a Data API key, wire up a few calls, and feel clever for an afternoon. Then a quota error shows up, and the project stalls. The official YouTube Data API v3 is genuinely good for light use, but its cost model is unintuitive, and the day you scale past "a hobby" is the day you start fighting it. So before you write a line of code, do the arithmetic.

The unit budget, and why it disappears so fast

Every Google Cloud project gets 10,000 quota units per day for the YouTube Data API by default. The trap is that "units" are not "requests." Each endpoint has a wildly different price, and the ones you actually want are the expensive ones.

EndpointCost per call (units)What you getCalls/day at full quota
search.list100Up to 50 video/channel references (IDs + snippet)100
videos.list1Full stats for up to 50 video IDs10,000
channels.list1Channel metadata + subscriber/view counts10,000
playlistItems.list1Up to 50 video IDs from a playlist (incl. uploads)10,000
commentThreads.list1Up to 100 top-level comments10,000
captions.download200Transcript — your own videos only50

Look at the gap. A metadata lookup costs 1 unit; a search costs 100. That single fact dictates how every efficient YouTube pipeline is built: you avoid search and lean on the cheap list endpoints.

Worked example — "give me the top 1,000 videos for 20 keywords." Each keyword needs ~20 paginated search.list calls (50 results each) to reach 1,000 videos. That's 20 keywords × 20 pages × 100 units = 40,000 units — four full days of quota for one report. And you've spent it all on shallow snippets; you haven't pulled a single comment or full description yet.

The cheaper-than-search trick (and where it dead-ends)

Seasoned API users sidestep the 100-unit search almost entirely:

This gets you a long way — for known channels. It falls apart the moment your job is discovery ("what's ranking for this query right now") or depth ("every comment on these 200 videos," "the transcript of a competitor's video"). Those are exactly the jobs that matter for research, and they are exactly where the Data API's economics and permissions stop cooperating.

Three walls the official API won't let you past

1. Search depth is capped, hard

Beyond the per-unit cost, search.list will not page past roughly 500 results for any single query, no matter how much quota you throw at it. If you need the long tail of results for a term, the API physically cannot hand it to you.

2. Comments at scale bleed quota and hit walls

Comments are cheap per call (1 unit per 100), but a viral video has hundreds of thousands of them, and replies require a second pass per thread. The unit cost stays low, yet the request count explodes and you start hitting per-minute rate limits long before the daily quota. And if a creator has disabled comments via the API while leaving them visible on the page, you simply get nothing back.

3. Transcripts of other people's videos: flat no

This is the one that surprises people most. captions.download checks channel ownership through OAuth, so you can only pull captions for videos you uploaded. There is no sanctioned way to get the transcript of an arbitrary public video from the Data API. Transcript-driven products — summarizers, search-over-video, content analysis — cannot be built on the official API at all.

The pattern: the Data API is excellent for cheap, structured metadata on things you already have IDs for, and poor-to-impossible for discovery, deep comment pulls, and third-party transcripts. Those are where scraping the public watch pages earns its keep — no quota ceiling, no ownership check, and the same data a logged-out browser can already see.

What scraping adds over the API

A maintained YouTube actor reads the public pages the way a visitor's browser does, which sidesteps both the unit budget and the permission walls:

Driving it over HTTP

A run that searches a keyword, then returns each video with its stats, top comments and transcript, looks like this. No OAuth, no Cloud project, no quota dashboard:

curl -X POST "https://api.apify.com/v2/acts/renzomacar~youtube-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchKeywords": ["faceless youtube automation"],
    "maxResults": 200,
    "includeComments": true,
    "maxComments": 100,
    "includeTranscript": true,
    "sortBy": "viewCount"
  }'

You get one JSON object per video — id, title, channel, views, likes, publish date, description, an array of comments and the full transcript when captions exist. Append &format=csv to the dataset URL and it arrives as a spreadsheet instead. To track channels over time, swap searchKeywords for a list of channel URLs and run it on a schedule.

So which one should you reach for?

Be honest about the job:

The mistake isn't picking one; it's not noticing when you've crossed from the first world into the second. The day a quotaExceeded error costs you a report is the day to switch.

Skip the quota dashboard entirely

Our maintained YouTube Scraper returns videos, channels, search results, comments and full transcripts as clean JSON — no Cloud project, no 10,000-unit ceiling, no OAuth on captions. Free Apify credits to start.

Get the YouTube Scraper → Or get done-for-you leads

Disclosure: the links to Apify on this page are affiliate links. If you create a paid account through them we may earn a commission, at no extra cost to you. We recommend Apify because we build and ship the YouTube Scraper on it ourselves.