{"registry_version":"2026.1025.387","generated_at":"2026-10-25T06:27:00Z","content_sha256":"089d16f627d9365e3d0663cc8069203706d7cb23a76c332226e29686968811a5","signed":true,"signature":{"key_id":"ed25519:74ca19268e364242","algorithm":"ed25519","expires_at":"2026-11-24T06:27:09Z","expired":false,"manifest":"/registry/manifest.json"},"id":"google/youtube-data-api","name":"YouTube Data API v3 (keys, quota and compliance audit)","vendor":"Google","status":"researched","last_verified":null,"last_researched":"2026-10-25","summary":"Enable the YouTube Data API in a Google Cloud project and create an API key or OAuth client. The default quota is small (10,000 units a day plus 100 search and 100 upload calls); more quota, and public uploads from new projects, require passing a YouTube API Services compliance audit.","account_model":{"summary":"Everything lives in one Google Cloud project owned by your Google Account or organisation. YouTube's policies require exactly one Cloud project per API client (your app), and quota, audits and the API key or OAuth client all belong to that project. End users' YouTube channels are reached through OAuth, not through your own account.","accounts":[{"name":"Google Account or Google Workspace/Cloud organisation","kind":"organisation","owned_by":"the company or the person","required":true},{"name":"Google Cloud project (one per API client)","kind":"project","owned_by":"the company or the person","parent":"Google Account or Google Workspace/Cloud organisation","required":true,"note":"Using several projects for one app to get more quota breaks the policies."}],"notes":["Public data reads can use an API key; anything on a user's channel (uploads, edits, private data) needs OAuth 2.0 user authorisation."]},"prerequisites":[{"entry":"google/cloud-project-run","note":"Any Google Cloud project works; Cloud Run, Firestore and the domain parts are not needed."},{"entry":"google/oauth-verification","note":"Only if you use OAuth with YouTube scopes for public users; whether each YouTube scope counts as sensitive [to verify]."}],"identity_requires":["project_name","app_name","privacy_policy_url"],"have_ready":[{"kind":"app_privacy_policy_url","description":"Public privacy policy that users must accept before using the API features, linking to Google's privacy policy","why":"Required by the YouTube Developer Policies and checked in audits.","needed_for":["audit"],"auto_check":"website_live","source_url":"https://developers.google.com/youtube/terms/developer-policies"},{"kind":"live_website","description":"Live app or website showing how YouTube data is used and displayed (with YouTube branding)","why":null,"needed_for":["audit"],"auto_check":"website_live","source_url":"https://developers.google.com/youtube/terms/developer-policies"},{"kind":"demo_video","description":"Screencast or test account showing the API client in use [to verify which the audit asks for]","why":"Policies require you to provide test accounts when audited.","needed_for":["audit"],"auto_check":"none","source_url":"https://developers.google.com/youtube/terms/developer-policies"},{"kind":"other","description":"Quota estimate by endpoint (calls per day multiplied by unit cost) and a clear use case","why":"Extra quota is granted for a specific use case only.","needed_for":["audit"],"auto_check":"none","source_url":"https://developers.google.com/youtube/terms/developer-policies"}],"steps":[{"id":"project","title":"Choose the one Cloud project for this app","summary":"Create or pick a Google Cloud project dedicated to this API client.","route":"guided","gate":"human_submit","human_only":true,"gate_label":"You press submit","depends_on":[],"optional":false,"url":"https://console.cloud.google.com/projectcreate","lead_time":null,"preflight":[],"captures":null},{"id":"enable-api","title":"Enable YouTube Data API v3","summary":"In the API Library, enable \"YouTube Data API v3\" for the project.","route":"guided","gate":"human_submit","human_only":true,"gate_label":"You press submit","depends_on":["project"],"optional":false,"url":"https://console.cloud.google.com/apis/library/youtube.googleapis.com","lead_time":null,"preflight":[],"captures":null},{"id":"api-key","title":"Create an API key for public data","summary":"In Credentials, create an API key and restrict it to YouTube Data API v3 (and to your app's referrers, IPs or package) so it cannot be abused [to verify restriction options for your platform].","route":"guided","gate":"human_submit","human_only":true,"gate_label":"You press submit","depends_on":["enable-api"],"optional":false,"url":"https://console.cloud.google.com/apis/credentials","lead_time":null,"preflight":[],"captures":"YOUTUBE_API_KEY"},{"id":"oauth-client","title":"Create an OAuth client for channel actions","summary":"For uploads, edits or private data, configure the OAuth consent screen and create an OAuth client ID. Apps for the public need Google OAuth verification (see google/oauth-verification).","route":"guided","gate":"human_submit","human_only":true,"gate_label":"You press submit","depends_on":["enable-api"],"optional":true,"url":"https://console.cloud.google.com/apis/credentials","lead_time":null,"preflight":[],"captures":null},{"id":"check-quota","title":"Check quota and estimate usage","summary":"Open the Quotas page. Default is 10,000 units a day for most endpoints plus 100 search.list and 100 videos.insert calls. Reads usually cost 1 unit, writes 50. Work out whether you need more.","route":"guided","gate":"none","human_only":false,"gate_label":null,"depends_on":["enable-api"],"optional":false,"url":"https://console.cloud.google.com/apis/api/youtube.googleapis.com/quotas","lead_time":null,"preflight":[],"captures":null},{"id":"audit","title":"Pass the compliance audit (for more quota or public uploads)","summary":"Make sure the app complies with the YouTube API Services Terms and Developer Policies, then submit the Audit and Quota Extension Form. A YouTube API Services team member contacts you. New projects (after 28 July 2020) need this before uploads can be anything but private.","route":"guided","gate":"third_party_review","human_only":true,"gate_label":"The provider reviews it","depends_on":["check-quota"],"optional":true,"url":"https://support.google.com/youtube/contact/yt_api_form","lead_time":{"official":{"text":"No timeframe given; YouTube says the team will contact you as soon as possible.","source_url":"https://developers.google.com/youtube/v3/guides/quota_and_compliance_audits","source_title":"YouTube Data API – Quota and compliance audits"},"reported":{"text":"People report several weeks to several months, often with follow-up questions (vendor blog).","source_url":"https://www.getphyllo.com/post/is-the-youtube-api-free-in-2026-quota-limits-costs-when-to-pay","source_title":"Phyllo – Is the YouTube API free in 2026? (vendor blog)"},"typical_minutes":null},"preflight":[],"captures":null}],"gates":[{"step":"project","gate":"human_submit","label":"You press submit"},{"step":"enable-api","gate":"human_submit","label":"You press submit"},{"step":"api-key","gate":"human_submit","label":"You press submit"},{"step":"oauth-client","gate":"human_submit","label":"You press submit"},{"step":"audit","gate":"third_party_review","label":"The provider reviews it"}],"lead_times":[{"step":"audit","what":"Pass the compliance audit (for more quota or public uploads)","official":{"text":"No timeframe given; YouTube says the team will contact you as soon as possible.","source_url":"https://developers.google.com/youtube/v3/guides/quota_and_compliance_audits","source_title":"YouTube Data API – Quota and compliance audits"},"reported":{"text":"People report several weeks to several months, often with follow-up questions (vendor blog).","source_url":"https://www.getphyllo.com/post/is-the-youtube-api-free-in-2026-quota-limits-costs-when-to-pay","source_title":"Phyllo – Is the YouTube API free in 2026? (vendor blog)"}}],"outputs":[{"name":"YOUTUBE_API_KEY","description":"API key for public YouTube Data API calls","secret":true,"example_format":"AIza…","environments":["development","production"]},{"name":"YOUTUBE_OAUTH_CLIENT_ID","description":"OAuth 2.0 client id for user-authorised calls","secret":false,"example_format":"1234567890-abc123.apps.googleusercontent.com","environments":null},{"name":"YOUTUBE_OAUTH_CLIENT_SECRET","description":"OAuth 2.0 client secret (web server apps only)","secret":true,"example_format":"GOCSPX-…","environments":null}],"renewals":[{"what":"Re-audit when you need more quota again (an audit within the last 12 months can be reused via the same form) or when contacted for a periodic audit","every":"when requested (periodic audits) [to verify any fixed cycle]","every_days":null,"source_url":"https://developers.google.com/youtube/v3/guides/quota_and_compliance_audits"}],"estimated_minutes":null,"guide_url":"https://verapli.com/guides/google/youtube-data-api"}