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.listandchannels.listaccept 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 ofsearch.listwithchannelId(100 units). - Request only the parts you need:
part=snippet,statisticsrather 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.