All questionsYouTube

YouTube Data API quota exceeded. What now?

Your Google Cloud project used up one of its daily quotas. Since June 1, 2026, there are two you will meet: 10,000 units a day shared by most calls, and 100 search calls a day by default. Running out of one does not stop the other. Calls that use the empty quota fail until midnight Pacific Time.

You can spend fewer units, ask YouTube for more through its audit, or move public reads to an API that bills per request.

Openhandle has no daily quota. It reads public channels, videos, comments, transcripts, and search for $0.0025 per request.

Checked October 2026 · request and response run against the API · no affiliate links

GET /v1/youtube/search/posts?q={query}&type=short
curl "https://api.openhandle.dev/v1/youtube/search/posts?q=synthetic&type=short" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
TypeScript SDK
import { OpenHandle } from '@openhandle/sdk';

const openhandle = new OpenHandle({ apiKey: process.env.OPENHANDLE_API_KEY! });
const page = await openhandle.youtube.search.posts.list({ q: 'synthetic', type: 'short' });

for (const short of page.data) console.log(short.url, short.metrics.views);
200 OK
{
  "platform": "youtube",
  "resource": "post",
  "capturedAt": "2026-10-26T18:33:16Z",
  "source": "live",
  "data": [
    {
      "id": "synthvid001",
      "type": "short",
      "title": "Synthetic video 1",
      "url": "https://www.youtube.com/shorts/synthvid001",
      "duration": 30,
      "metrics": { "views": 1200000, "isApproximate": true }
    }
  ],
  "meta": { "cursors": { "next": "b3BhcXVlLWN1cnNvcg" } }
}

Trimmed to one Short and the fields this question needs. The query hits the Test dataset, so you can run it on a free Test key.

Spend fewer units

  • —Read uploads, do not search them. To list a channel’s videos, read its uploads playlist with playlistItems.list. One unit gets up to 50 videos, and it does not touch your searches.
  • —Cache what does not change. Titles, channel names, and old videos rarely change. Store them and only refresh counts.
  • —Watch caption calls. Listing caption tracks costs 50 units, and downloading one costs 200. A few of those use the quota fast.
  • —Fix failing calls. Invalid requests cost at least 1 unit too. A retry loop on a bad request spends quota for nothing.

Ask for more quota

Fill in YouTube’s Audit and Quota Extension Form from the quota and compliance audits guide. YouTube checks that your project follows its API terms, then decides. Google names no fee and no time frame.

Move public reads off the quota

  • —No reset to wait for. Openhandle bills per request from your balance. There is no daily quota, only 10 requests per second per key.
  • —Search like any other call. Search videos or Shorts by keyword, sort, duration, and upload date. It costs the same as reading one video.
  • —Keep both. Keep the Data API for your own channel and uploads. Send the public reads that burn your quota to Openhandle.

See the YouTube Data API alternative for a call-by-call map.

When this does not work

These answers are definitive. Store them, do not retry them.

SituationStatusCode
The channel or video does not exist404PROFILE_NOT_FOUND or POST_NOT_FOUND
The search type is not video or short400INVALID_PARAMETER
The cursor came from another search400CURSOR_MISMATCH
400 Bad Request
{
  "error": {
    "code": "CURSOR_MISMATCH",
    "message": "This cursor does not match the request.",
    "requestId": "req_01m5…",
    "retryable": false
  }
}

Every new workspace starts with 100 free live requests, no card needed.

Read next

More YouTube questions

Send your agent ahead.

Paste the prompt into your agent and it sets everything up. Or come yourself, it takes five minutes.

For agents

100 free requests. No card needed.