{"openapi":"3.0.3","info":{"title":"GetYouTubeTranscript API","version":"1.0.0","description":"YouTube transcripts, search, channel, and playlist data. Every request needs an API key, obtained from the dashboard or via the self-service /v1/signup flow. 1 credit = 1 successful request; failed and rate-limited requests are never charged. See https://getyoutubetranscript.com/docs for full human-readable docs and https://getyoutubetranscript.com/youtube-mcp-server for the MCP server.","contact":{"url":"https://getyoutubetranscript.com/contact"},"license":{"name":"Proprietary - see Terms","url":"https://getyoutubetranscript.com/terms-and-conditions"}},"servers":[{"url":"https://getyoutubetranscript.com/api/v1","description":"Production"}],"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authorization: Bearer sk_live_..."},"apiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key","description":"x-api-key: sk_live_..."}},"schemas":{"Error":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}},"paths":{"/transcript":{"get":{"operationId":"getTranscript","summary":"Get a YouTube video transcript","description":"Full transcript for one video, plus title/author/thumbnail metadata. One block of text - no per-segment timestamps.","x-credit-cost":1,"parameters":[{"name":"v","in":"query","required":true,"schema":{"type":"string"},"description":"YouTube video URL (full or short) or an 11-character video ID."},{"name":"language","in":"query","required":false,"schema":{"type":"string","default":"en"},"description":"Caption language code, e.g. 'en', 'es'."}],"responses":{"200":{"description":"Transcript retrieved.","content":{"application/json":{"example":{"success":true,"data":{"video_id":"jNQXAC9IVRw","language_code":"en","title":"Me at the zoo","author_name":"jawed","author_url":"https://www.youtube.com/channel/UC4QobU6STFB0P71PVoOGeMg","thumbnail_url":"https://i.ytimg.com/vi/jNQXAC9IVRw/hqdefault.jpg","transcript":"All right, so here we are, in front of the elephants...","word_count":39}}}}},"400":{"description":"Bad request - missing or invalid parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"missing":{"value":{"success":false,"code":"MISSING_API_KEY","message":"Provide an API key via the Authorization: Bearer header or the x-api-key header."}},"invalid":{"value":{"success":false,"code":"INVALID_API_KEY","message":"This API key is invalid or has been revoked."}}}}}},"402":{"description":"Out of credits.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"paymentRequired":{"value":{"success":false,"code":"PAYMENT_REQUIRED","message":"You have used all your credits. Buy a top-up or upgrade your plan.","creditsLeft":0,"topupCreditsLeft":0}}}}}},"404":{"description":"Video unavailable or no transcript/captions found.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"429":{"description":"Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"rateLimited":{"value":{"success":false,"code":"RATE_LIMITED","message":"Rate limit exceeded for your plan tier.","requestsThisMinute":61}}}}}}}}},"/search":{"get":{"operationId":"searchYoutube","summary":"Search YouTube videos or channels","description":"Provide 'q' for a first page, or 'page_token' (from a previous response's data.pagination.next_page_token) to continue. 'type' restricts results to one kind - it does not mix both.","x-credit-cost":1,"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":2},"description":"Search query. Required unless 'page_token' is set."},{"name":"page_token","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque continuation token from a previous response. Do not construct this yourself."},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["video","channel"]},"description":"'video' (default) or 'channel'."},{"name":"country","in":"query","required":false,"schema":{"type":"string"},"description":"Two-letter region code, e.g. us."},{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"Result language hint, e.g. en."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Max results for this page."}],"responses":{"200":{"description":"Search results.","content":{"application/json":{"example":{"success":true,"data":{"query":"lofi beats","video_results":[{"title":"lofi hip hop radio - beats to relax/study to","videoId":"jfKfPfyJRdk","channel":{"name":"Lofi Girl"}}],"pagination":{"next_page_token":"CBkSDBIKMjAyM..."}}}}}},"400":{"description":"Bad request - missing or invalid parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"missing":{"value":{"success":false,"code":"MISSING_API_KEY","message":"Provide an API key via the Authorization: Bearer header or the x-api-key header."}},"invalid":{"value":{"success":false,"code":"INVALID_API_KEY","message":"This API key is invalid or has been revoked."}}}}}},"402":{"description":"Out of credits.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"paymentRequired":{"value":{"success":false,"code":"PAYMENT_REQUIRED","message":"You have used all your credits. Buy a top-up or upgrade your plan.","creditsLeft":0,"topupCreditsLeft":0}}}}}},"429":{"description":"Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"rateLimited":{"value":{"success":false,"code":"RATE_LIMITED","message":"Rate limit exceeded for your plan tier.","requestsThisMinute":61}}}}}}}}},"/resolve":{"get":{"operationId":"resolveChannelHandle","summary":"Resolve a channel handle/URL to a channel ID","description":"Free (0 credits) - still requires an API key and is still rate-limited, since it triggers a real lookup.","x-credit-cost":0,"parameters":[{"name":"handle","in":"query","required":true,"schema":{"type":"string"},"description":"Channel @handle, channel URL, or UC... id."}],"responses":{"200":{"description":"Channel resolved.","content":{"application/json":{"example":{"success":true,"data":{"channel_id":"UCBJycsmduvYEL83R_U4JriQ","title":"Marques Brownlee","handle":"http://www.youtube.com/@mkbhd","resolved_via":"scrape"}}}}},"400":{"description":"Bad request - missing or invalid parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"missing":{"value":{"success":false,"code":"MISSING_API_KEY","message":"Provide an API key via the Authorization: Bearer header or the x-api-key header."}},"invalid":{"value":{"success":false,"code":"INVALID_API_KEY","message":"This API key is invalid or has been revoked."}}}}}},"404":{"description":"No channel found matching that handle or URL.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"429":{"description":"Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"rateLimited":{"value":{"success":false,"code":"RATE_LIMITED","message":"Rate limit exceeded for your plan tier.","requestsThisMinute":61}}}}}}}}},"/credits":{"get":{"operationId":"getCredits","summary":"Check the remaining credit balance for this key","description":"Free (0 credits) - still requires an API key and is still rate-limited. Same data the MCP get_credits tool returns.","x-credit-cost":0,"parameters":[],"responses":{"200":{"description":"Credit balance and plan info.","content":{"application/json":{"example":{"success":true,"data":{"plan_credits_left":87,"topup_credits_left":0,"plan":"monthly","rate_limit_per_minute":200}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"missing":{"value":{"success":false,"code":"MISSING_API_KEY","message":"Provide an API key via the Authorization: Bearer header or the x-api-key header."}},"invalid":{"value":{"success":false,"code":"INVALID_API_KEY","message":"This API key is invalid or has been revoked."}}}}}},"429":{"description":"Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"rateLimited":{"value":{"success":false,"code":"RATE_LIMITED","message":"Rate limit exceeded for your plan tier.","requestsThisMinute":61}}}}}}}}},"/playlist":{"get":{"operationId":"listPlaylistVideos","summary":"List every video in a playlist","description":"Fully paginated. Provide 'list' for a first page, or 'continuation' (from a previous response's data.continuation_token) to fetch the next page. The token is opaque - don't inspect or construct it.","x-credit-cost":1,"parameters":[{"name":"list","in":"query","required":false,"schema":{"type":"string"},"description":"Playlist ID or URL. Required unless 'continuation' is set."},{"name":"continuation","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque continuation token from a previous response."}],"responses":{"200":{"description":"Playlist page.","content":{"application/json":{"example":{"success":true,"data":{"playlist_id":"PLillGF-RfqbYE6Ik_EuXA2iZFcE082B3s","title":"Example playlist","videos":[{"position":1,"id":"jNQXAC9IVRw","title":"Me at the zoo","channel":{"name":"jawed"}}],"has_more":true,"continuation_token":"CAUqA..."}}}}},"400":{"description":"Bad request - missing or invalid parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"missing":{"value":{"success":false,"code":"MISSING_API_KEY","message":"Provide an API key via the Authorization: Bearer header or the x-api-key header."}},"invalid":{"value":{"success":false,"code":"INVALID_API_KEY","message":"This API key is invalid or has been revoked."}}}}}},"402":{"description":"Out of credits.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"paymentRequired":{"value":{"success":false,"code":"PAYMENT_REQUIRED","message":"You have used all your credits. Buy a top-up or upgrade your plan.","creditsLeft":0,"topupCreditsLeft":0}}}}}},"404":{"description":"Playlist not found, private, or deleted.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"429":{"description":"Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"rateLimited":{"value":{"success":false,"code":"RATE_LIMITED","message":"Rate limit exceeded for your plan tier.","requestsThisMinute":61}}}}}}}}},"/channel/latest":{"get":{"operationId":"getChannelLatestVideos","summary":"Get a channel's metadata and latest uploads","description":"Free (0 credits). Returns full channel metadata plus whatever \"Latest Videos\" shelf the channel's home tab shows. For the complete, paginated upload history use /channel/videos instead.","x-credit-cost":0,"parameters":[{"name":"channel","in":"query","required":true,"schema":{"type":"string"},"description":"Channel @handle, channel URL, or UC... id."}],"responses":{"200":{"description":"Channel metadata and recent uploads.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"object","description":"Channel metadata plus a home-tab video shelf. Field set is passed through from upstream and may grow over time - treat as loosely typed.","additionalProperties":true}}}}}},"400":{"description":"Bad request - missing or invalid parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"missing":{"value":{"success":false,"code":"MISSING_API_KEY","message":"Provide an API key via the Authorization: Bearer header or the x-api-key header."}},"invalid":{"value":{"success":false,"code":"INVALID_API_KEY","message":"This API key is invalid or has been revoked."}}}}}},"404":{"description":"Channel not found.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"429":{"description":"Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"rateLimited":{"value":{"success":false,"code":"RATE_LIMITED","message":"Rate limit exceeded for your plan tier.","requestsThisMinute":61}}}}}}}}},"/channel/search":{"get":{"operationId":"searchChannelVideos","summary":"Search within one channel's videos","description":"Provide ('channel' and 'q') for a first page, or 'continuation' (from a previous response's data.continuation_token) to fetch the next page.","x-credit-cost":1,"parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string"},"description":"Channel @handle, URL, or UC... id. Required unless 'continuation' is set."},{"name":"q","in":"query","required":false,"schema":{"type":"string","minLength":2},"description":"Query to search within the channel. Required unless 'continuation' is set."},{"name":"continuation","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque continuation token from a previous response."}],"responses":{"200":{"description":"Matching videos from the channel.","content":{"application/json":{"example":{"success":true,"data":{"videos":[{"id":"jNQXAC9IVRw","title":"Me at the zoo","length":"0:19","published_time":"20 years ago","thumbnail":"https://i.ytimg.com/vi/jNQXAC9IVRw/hqdefault.jpg"}],"has_more":true,"continuation_token":"EqAA..."}}}}},"400":{"description":"Bad request - missing or invalid parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"missing":{"value":{"success":false,"code":"MISSING_API_KEY","message":"Provide an API key via the Authorization: Bearer header or the x-api-key header."}},"invalid":{"value":{"success":false,"code":"INVALID_API_KEY","message":"This API key is invalid or has been revoked."}}}}}},"402":{"description":"Out of credits.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"paymentRequired":{"value":{"success":false,"code":"PAYMENT_REQUIRED","message":"You have used all your credits. Buy a top-up or upgrade your plan.","creditsLeft":0,"topupCreditsLeft":0}}}}}},"429":{"description":"Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"rateLimited":{"value":{"success":false,"code":"RATE_LIMITED","message":"Rate limit exceeded for your plan tier.","requestsThisMinute":61}}}}}}}}},"/channel/videos":{"get":{"operationId":"listChannelVideos","summary":"List every video a channel has uploaded","description":"The channel's full /videos tab, paginated - not just the home-tab shelf /channel/latest returns. Provide 'channel' for a first page, or 'continuation' (from a previous response's data.continuation_token) to fetch the next page.","x-credit-cost":1,"parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string"},"description":"Channel @handle, URL, or UC... id. Required unless 'continuation' is set."},{"name":"continuation","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque continuation token from a previous response."}],"responses":{"200":{"description":"Page of the channel's uploaded videos.","content":{"application/json":{"example":{"success":true,"data":{"videos":[{"id":"jNQXAC9IVRw","title":"Me at the zoo","length":"0:19","published_time":"20 years ago","thumbnail":"https://i.ytimg.com/vi/jNQXAC9IVRw/hqdefault.jpg"}],"has_more":true,"continuation_token":"EgZ..."}}}}},"400":{"description":"Bad request - missing or invalid parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"missing":{"value":{"success":false,"code":"MISSING_API_KEY","message":"Provide an API key via the Authorization: Bearer header or the x-api-key header."}},"invalid":{"value":{"success":false,"code":"INVALID_API_KEY","message":"This API key is invalid or has been revoked."}}}}}},"402":{"description":"Out of credits.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"paymentRequired":{"value":{"success":false,"code":"PAYMENT_REQUIRED","message":"You have used all your credits. Buy a top-up or upgrade your plan.","creditsLeft":0,"topupCreditsLeft":0}}}}}},"404":{"description":"Channel not found.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}},"429":{"description":"Rate limit exceeded for the key's plan tier (60/200/300 requests per minute on free/monthly/annual).","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]},"examples":{"rateLimited":{"value":{"success":false,"code":"RATE_LIMITED","message":"Rate limit exceeded for your plan tier.","requestsThisMinute":61}}}}}}}}},"/signup":{"post":{"operationId":"requestSignupOtp","summary":"Agent self-signup, step 1: request an email OTP","description":"No API key required - this is how a new caller gets one. Sends a 6-digit code good for 10 minutes.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"Code sent.","content":{"application/json":{"example":{"success":true,"message":"A 6-digit code was sent to this email. It expires in 10 minutes."}}}},"400":{"description":"Missing or invalid email.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}}}}},"/signup/verify":{"post":{"operationId":"verifySignupOtp","summary":"Agent self-signup, step 2: verify the OTP and mint an API key","description":"On success, creates the account if it does not exist yet (or signs in an existing one) and returns a freshly minted API key. The raw key is shown once - store it, it cannot be retrieved again.","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","otp"],"properties":{"email":{"type":"string","format":"email"},"otp":{"type":"string","minLength":6,"maxLength":6}}}}}},"responses":{"200":{"description":"Verified - API key issued.","content":{"application/json":{"example":{"success":true,"api_key":"sk_live_..."}}}},"400":{"description":"Missing fields, or an invalid/expired code.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","enum":[false]},"code":{"type":"string"},"message":{"type":"string"}},"required":["success","code","message"]}}}}}}}}}