Ssocialgraph.dev
Guides / Youtube

YouTube Data API quota explained, and how to stop managing it

What each YouTube Data API v3 call costs in quota units, why search burns 100 units, how the 10,000-unit daily limit runs out, and how to use the API without a Google project at all.

Updated October 18, 2026 · 2 min read

Every YouTube Data API v3 project gets 10,000 quota units a day by default. That sounds generous until your app makes its first hundred searches. This guide explains the costs, the error you'll hit, and two ways around it.

What calls cost

Google prices calls in units (official table):

Call Units
channels.list, videos.list, playlistItems.list, playlists.list, commentThreads.list, comments.list, activities.list 1
search.list 100
Writes (insert, update, delete) 50

So 10,000 units is 10,000 video lookups, or just 100 searches. Most quota problems come from search.

The error

When the quota is gone you get HTTP 403 with reason quotaExceeded, and every call fails until the quota resets at midnight Pacific time. If you see it at 9am in Europe, you have a long day ahead.

Option 1: request more quota

In Google Cloud Console → YouTube Data API v3 → Quotas, you can apply for an increase. Google asks for a compliance audit of your app, which takes days to weeks, and increases are not guaranteed.

Option 2: don't manage it at all

socialgraph.dev wraps the YouTube Data API with its own quota and key. You call the same endpoints, with the same parameters and the same response shapes, and pay per call in credits instead of units:

curl "https://socialgraph.dev/api/v1/youtube/videos?part=snippet,statistics&id=OYp5j2RihPE" \
  -H "Authorization: Bearer YOUR_API_KEY"
  • Most YouTube endpoints cost 1 credit (US$0.002); search costs 10, reflecting Google's 100 units.
  • No Google Cloud project, no API key of your own, no daily reset to plan around.
  • Beyond the Data API, there are endpoints Google doesn't offer: video transcripts and audience demographics.

Reducing quota use either way

  • Batch IDs: videos.list and channels.list accept up to 50 IDs per call for the same 1 unit.
  • Avoid search for listing a channel's videos: use the uploads playlist with playlistItems.list (1 unit) instead of search.list with channelId (100 units).
  • Request only the parts you need: part=snippet,statistics rather than every part.
  • Cache: channel statistics and video details change slowly; a few hours of caching cuts calls dramatically.

Browse the YouTube endpoints to see the full set, each with a live demo.

Start with 100 free credits

Create an account in seconds. No card, no subscription. Credits never expire.

Create free account →