Data access
The YouTube Data API for AI agents
By Jackson Gathondu. Published 1 November 2026. Updated .
The YouTube Data API is the most open of the big platforms' official APIs. With an API key, an AI agent can search public Videos, read their view counts and durations, look up channels and read comments. Most other platforms' APIs do not let you read a competitor's posts at all.
It still runs out fast for marketing research. Search has its own small daily quota, search results carry no view counts, and the API will not give you the captions of a Video you do not own. This guide covers what the API returns as of November 2026, where the limits sit, and when an agent is better served by a YouTube scraper or a data service.
What the YouTube Data API covers
The API reads public YouTube resources: Videos, channels, playlists, comments and search results. Read calls work with an API key. Writing, such as uploading a Video or editing a playlist, needs the account owner to sign in with OAuth.
For a Video, videos.list returns the title, description, publish date, duration and statistics: views, likes and comment count. The dislike count has been private since 13 December 2021 and only comes back to the Video's owner.
What it does not return is anything about the Video's content. There is no hook, no on-screen text, no format and no transcript of someone else's Video. If an agent needs to know how a Video opens, it has to watch or transcribe it some other way.
Where the quota bites
Every project gets a default allocation of 100 search.list calls a day plus 10,000 units a day for all other endpoints combined. Costs per call, from Google's quota page and method pages (last updated 15 October 2026):
| Method | Quota cost | What you get |
|---|---|---|
| search.list | 1 call from the separate search bucket of 100 a day | Up to 50 results a page, default 5. Snippet only: titles, channel and publish date, no view counts. |
| videos.list | 1 unit | Statistics, duration and details for the Videos you name. |
| channels.list | 1 unit | A channel's profile and totals. |
| commentThreads.list | 1 unit | Up to 100 top-level comments a page, default 20. |
| captions.list | 50 units | The caption tracks a Video has. |
| captions.download | 200 units | A caption file, but only if you have permission to edit the Video. |
What that means for an agent
The search quota runs out first. At 100 calls a day and 50 results a call, one project can see at most 5,000 search results a day, and each page of results needs a second videos.list call before the agent knows how many views anything got. An agent that tries several phrasings per question, for several people on a team, uses up the search calls quickly.
Transcripts of other people's Videos are out of reach. captions.download requires the youtube.force-ssl or youtubepartner scope and permission to edit the Video, so the API cannot give an agent the words spoken in a competitor's Video.
You also cannot ask search for Shorts. The videoDuration filter splits at four and 20 minutes, and the search.list page does not mention Shorts at all. You filter by duration yourself after a videos.list call.
YouTube's developer policies (last updated 1 November 2026) say an API client must delete or refresh stored API data after 30 calendar days, and must not scrape YouTube. You can ask for more quota through Google's quota extension request form for YouTube API Services.
YouTube scraper, the official API or a data service
Use the official API when it covers what you need: your own channel, a few hundred public Videos a day, view counts and comments. It is free within quota and stable.
A YouTube scraper you write yourself can reach what a logged-out visitor sees, including search pages with view counts. It also needs proxies, retries and an engineer to fix it when YouTube changes its pages, and a project that also holds an API key is bound by the developer policies above. Check YouTube's terms and your own legal advice before you build one.
A data service fits when the agent needs things the API does not return, such as the hook, on-screen text and transcript of other people's Videos, or more searches than the quota allows, and nobody wants to maintain collection code. ShortsIntel is one: an MCP server and REST API that reads public YouTube data and returns it with views, duration and analysis in one response.
YouTube Data API and ShortsIntel side by side
| Question | YouTube Data API | ShortsIntel |
|---|---|---|
| Search a phrase | 100 searches a day by default, no view counts in the results. | 3 credits per Platform per page, with views and duration on each Video. |
| One Video's stats | 1 unit with videos.list. | 3 credits for a lookup by link or id. |
| Transcript of someone else's Video | Not available: captions.download needs edit permission. | 10 credits for a transcript, or 23 credits for full analysis with a timed transcript. Analysis takes Videos up to 10 minutes. |
| Hook, on-screen text, format, call to action | Not available. | Part of a Video's analysis. |
| A channel and its recent uploads | channels.list for the profile, then more calls to list its uploads. | 6 credits for a channel lookup. Its videos are its Shorts only. |
| Works in Claude or ChatGPT | Only if someone wraps it as a tool. | Yes, as a connector. |
Data limits
ShortsIntel's YouTube data limits
- Our YouTube Creator data is Shorts only. A channel lookup returns the channel's Shorts, not its long-form uploads.
- Search and single Video lookups do return long-form Videos. Analysis and downloads work on Videos up to 10 minutes long.
- There are no Hashtags or Sounds on YouTube, so get_hashtag_or_sound does not work there. score_video is TikTok only; Scores still come back on a channel's Shorts through get_creator.
- Creator Trackers do not run on YouTube. Keyword Trackers do.
- Everything is public data. It never signs in to your channel, so watch time, retention and revenue are not available.
What an agent gets back
Two real responses from our own account, trimmed. The first is one YouTube Video from a Research, with the analysis the official API does not have. The second is what an Assistant gets over MCP when it reads a Keyword on YouTube: views and duration come back with the search, with no second call.
YouTube, via REST API
Read the Videos from a B2B SaaS marketing Research on YouTube. (GET /v1/research/{id}/videos, one of 49 shown)
{
"id": "02QPPnYwb0U",
"platform": "youtube",
"creator": { "name": "SelectHub", "handle": "SelectHub" },
"snapshot": { "views": 1286 },
"duration_seconds": 295,
"intelligence": {
"hook": {
"type": "PROBLEM",
"opening_line": "In a lot of companies, the CRM is seen as a sales tool and little more.",
"visual_hook": "man speaking directly to camera with hand gestures"
},
"tone": { "speaking_style": "INSTRUCTIONAL", "sentiment_label": "Neutral" },
"visual": {
"format": "TALKING_HEAD",
"on_screen_text": [
"Tip #1: Map the Journey, Not Just the Funnel",
"Tip #2: Set Up Scoring That Reflects Intent",
"Tip #3: Create Segment-Based Campaign Triggers",
...
],
"has_on_screen_captions": false
},
"content": {
"niche": "BUSINESS",
"transcript_segments": [
{ "text": "In a lot of companies, the CRM is seen", "start_ms": 0, "end_ms": 4800 },
{ "text": "as a sales tool and little more.", "start_ms": 2640, "end_ms": 7000 },
{ "text": "Marketing might dump in leads, glance at", "start_ms": 4800, "end_ms": 9240 },
...
]
}
}
}
(safety, keywords, scene breakdown and the rest of the transcript trimmed)YouTube, via MCP server
What do YouTube Videos about "saas marketing" get this month? (get_keyword, platform youtube)
{
"run": { "kind": "keyword_lookup", "status": "completed", "charge_credits": 3 },
"result": {
"phrase": "saas marketing",
"platform": "youtube",
"stats": { "sampled_videos": 15, "views_median": 263, "views_max": 73228 },
"top_videos": [
{
"url": "https://www.youtube.com/watch?v=QXxESN94Y6s",
"creator": { "name": "Starter Story", "handle": "starterstory" },
"snapshot": { "views": 73228 },
"duration_seconds": 785
},
{
"url": "https://www.youtube.com/watch?v=YB5YYnrCOPM",
"creator": { "name": "Henry SaaS", "handle": "HenrySaaS" },
"snapshot": { "views": 61567 },
"duration_seconds": 3972
},
...
]
}
}
(10 top Videos in all; the trend field is null on a first lookup)What it costs
ShortsIntel has no subscription. Each call that does work is a Run, paid from a prepaid Balance of Credits at 1,000 credits per US dollar. New accounts get 1,000 credits free, valid for 90 days. A Run that fails costs nothing, and a partial one is charged only for what finished.
On YouTube, a Keyword costs 3 credits, a Video lookup 3 credits, a channel lookup 6 credits, a Video's analysis 23 credits and a niche Research 1,036 credits for up to 50 analysed Videos. Every paid call can quote its price first. The full list is on the pricing page.
Connect your Assistant
The MCP server address is https://www.shortsintel.com/api/mcp for every Assistant. None of them needs an API key: you sign in to ShortsIntel and choose which organization pays. The YouTube MCP page lists every tool that works on YouTube.
Claude.ai
Web and desktop. No API key: Claude signs in to ShortsIntel for you.
- Open Claude's add connector page with ShortsIntel filled in, and choose Add. Or go to Settings, Connectors, Add custom connector, and paste the endpoint below.
https://www.shortsintel.com/api/mcp - Sign in to ShortsIntel, approve the connection and choose the organization whose Balance pays for Runs.
- In a chat, turn the ShortsIntel connector on and ask your question.
ChatGPT
Web and desktop, in Developer mode. No API key: ChatGPT signs in over OAuth.
- Open ChatGPT's connector settings and switch Developer mode on.
- Create a connector named ShortsIntel, paste the endpoint and choose OAuth.
https://www.shortsintel.com/api/mcp - Sign in to ShortsIntel and choose your organization.
- In a new chat, choose the + next to the message box, then Developer mode, and turn ShortsIntel on.
Claude Code
One command, then sign in from Claude Code.
- Add the server in your terminal.
claude mcp add --transport http --scope user shortsintel https://www.shortsintel.com/api/mcp - Run /mcp inside Claude Code, choose shortsintel and sign in.
Codex
One command; Codex signs in on first use.
- Add the server in your terminal.
codex mcp add shortsintel --url https://www.shortsintel.com/api/mcp - If no browser window opens to sign in, start it yourself.
codex mcp login shortsintel
Cursor and VS Code
One-click install links; each asks you to confirm.
- In Cursor, open the Cursor install link.
- In VS Code, open the VS Code install link.
- Sign in to ShortsIntel when the editor asks.
Questions
- What is the YouTube Data API quota?
- As of November 2026 each project gets 100 search.list calls a day plus 10,000 units a day for all other endpoints combined. Most read calls, such as videos.list, channels.list and commentThreads.list, cost 1 unit. captions.list costs 50 units and captions.download 200.
- Can I get a YouTube Video's transcript from the API?
- Only for Videos you have permission to edit. captions.download needs an OAuth scope and edit rights on the Video, so an agent cannot use it to read a competitor's captions.
- Does the YouTube Data API return view counts in search results?
- No. search.list returns snippets: titles, channel and publish date. To get views, likes and comment counts you call videos.list with the Video ids from the search.
- Can the YouTube Data API search Shorts only?
- Not directly. The search.list page does not mention Shorts, and its videoDuration filter only splits at four and 20 minutes. You filter by each Video's duration after a videos.list call.
- Is a YouTube scraper allowed?
- YouTube's developer policies say an API client must not scrape YouTube. Outside that, it depends on YouTube's terms, the data and your country, and this page is not legal advice. ShortsIntel reads only public data and never signs in to your channel.
- Does ShortsIntel cover long-form YouTube Videos?
- In search and single Video lookups, yes, and analysis works on Videos up to 10 minutes. Channel lookups return the channel's Shorts only, so our YouTube Creator data is Shorts only.
Try it in your Assistant
Connect ShortsIntel to the Assistant you already use and ask the question this guide answers, or try the calls in the Playground first.