YouTube Audience Demographics

YouTube audience demographics and video-level raw data API

Access raw YouTube video-level data including watch time, audience retention, traffic sources, and demographic breakdowns by age, gender, and geography. Build reporting tools without the YouTube Studio dashboard.

Last updated: May 2026

API key authScheduled publishing14 platforms
Quick start
API request
1// Channel: GET /api/v1/analytics/social-account/raw?teamId=...&platformType=YOUTUBE2const channel = await fetch(3  "https://api.bundle.social/api/v1/analytics/social-account/raw?teamId=team_123&platformType=YOUTUBE",4  { headers: { "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY } }5);6const { socialAccount, items } = await channel.json();7// items[0].raw holds the YouTube Analytics snapshot we store for that account

Accessing YouTube analytics natively

YouTube Analytics API requires its own OAuth scope, quota allocation, and report configuration.
Video-level raw data and audience demographics live in different YouTube API reporting resources.
Building a custom analytics layer on top of the YouTube Data API is a non-trivial integration project.

What bundle.social handles

Pull raw YouTube audience demographics and video-level data through the bundle.social API without managing YouTube API quotas directly.
Get age splits, gender breakdown, country reach, watch-time trends, and traffic source data in one response.
Use the raw data to power custom dashboards, creator reports, or audience analysis tools.

YouTube channel data without the quota juggling

YouTube Analytics is powerful but expensive to build on directly. bundle.social collects raw video and audience data from connected channels and surfaces it through one API so you can focus on the insights, not the plumbing.

Workflow

How it works

Connect a YouTube channel, then use the raw social-account and post analytics endpoints to read stored YouTube Analytics payloads.

01

Connect a YouTube channel

Connect a YouTube channel via the OAuth connect URL flow. Standard and brand accounts are supported.

02

Pull raw channel and video analytics

GET /api/v1/analytics/social-account/raw for channel-level snapshots. GET /api/v1/analytics/post/raw?postId=...&platformType=YOUTUBE for per-video raw rows.

03

Build your reporting tools

Use age splits, watch time, traffic sources, and retention data to power dashboards, creator briefs, or campaign reports.

Capabilities

YouTube demographic and video data for custom reporting

Watch time, age groups, gender, countries, traffic sources, and retention. Raw YouTube data through one API.

Watch time and average view duration

Access total watch time and average view duration per video to measure content depth and retention.

Traffic sources

See where views come from: search, suggested videos, external links, direct, and other YouTube sources.

Video-level raw data

Pull per-video analytics data including views, likes, comments, and watch time for individual videos in the connected channel.

Country and geography reach

See which countries and regions your YouTube content reaches to guide localization and ad targeting.

Age group splits

See how your YouTube audience breaks down by age bracket across all connected channel videos.

Gender distribution

Understand the gender makeup of your YouTube channel audience for content and campaign planning.

Developer example

Fetch raw YouTube channel and post analytics

Examples use bundle.social's public API shape: API key authentication, a post date, selected social account types, and platform-specific data.

TypeScript
API request
1// Channel-level raw: GET /api/v1/analytics/social-account/raw?teamId=...&platformType=YOUTUBE2const channelRes = await fetch(3  "https://api.bundle.social/api/v1/analytics/social-account/raw?teamId=team_123&platformType=YOUTUBE",4  { headers: { "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY } }5);6const { socialAccount, items } = await channelRes.json();7const channelRaw = items[0]?.raw;89// Video-level raw: GET /api/v1/analytics/post/raw?postId=...&platformType=YOUTUBE10const postRes = await fetch(11  "https://api.bundle.social/api/v1/analytics/post/raw?postId=post_youtube_456&platformType=YOUTUBE",12  { headers: { "x-api-key": process.env.BUNDLE_SOCIAL_API_KEY } }13);14const { post, items: postItems } = await postRes.json();15// postItems[*].raw holds per-video YouTube Analytics rows we store

Supported content

Age group splitsGender distributionCountry reachWatch time by dayTraffic sourcesVideo-level raw dataAverage view duration

Honest limitations

  • YouTube analytics data availability depends on the connected channel's permissions and content publication status.
  • Some video-level data points require the video to have a minimum number of views before YouTube exposes them.

Guarantees

Developer-first infrastructure

2% error rate

We handle the platform edge cases, media processing, and rate limits so your requests succeed.

Verbose errors

When native APIs fail, we return human-readable error messages and actionable recovery steps.

Flat pricing

No per-post counting. Predictable pricing for teams managing many users, workspaces, and connected accounts.

Same-day support

Direct access to the engineers building the API. We respond to technical issues the same day. Sometimes the same hour. Test us c;

FAQ

Questions developers ask before building

What YouTube data is available through this API?

bundle.social provides raw YouTube audience demographics (age, gender, country), video-level metrics (views, watch time, likes, comments, traffic sources), and channel-level data for connected YouTube accounts.

Is this different from the YouTube Data API?

Yes. bundle.social wraps the YouTube Analytics API and Data API, handles quota management, and returns raw data through one endpoint. You do not need to manage YouTube API quotas directly.

Can I get watch time for individual videos?

Yes. The post analytics endpoint returns video-level watch time, average view duration, and other metrics for published YouTube content.

Can I use this data in my own dashboards?

Yes. The raw JSON response can be piped into any BI tool, reporting framework, or client dashboard.