YouTube Audience Demographics

YouTube audience demographics and video-level raw data API

Raw YouTube retention, traffic source, and demographic data through one API, without anyone opening YouTube Studio.

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: July 2026

One API key. No per-account fees. 15 platforms.

API key authScheduled publishing15 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
Official APIs500k+ connected accountsDirect engineer support

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.

Product architecture

Build social media workflows without rebuilding every platform

YouTube audience demographics and video analytics API

Agencies, creator platforms, media teams, and reporting tools need channel and video data together, and that is exactly where a direct YouTube analytics build gets expensive. Building it directly means two Google surfaces, a quota budget for every request, and an OAuth flow where an account owning both a personal and a brand channel can authorize the wrong one.

bundle.social collects raw channel and video data from connected YouTube channels and returns it through account-level and post-level analytics endpoints. Your product reads age splits, gender distribution, country reach, watch time, average view duration, and traffic sources without managing Google credentials or quota.

Channel data and video data answer different questions

Channel snapshots describe the audience a YouTube channel reaches and inform localization, targeting, and positioning. Video rows describe how an individual upload performed through views, likes, comments, watch time, and average view duration. Reporting that mixes the two can present a channel with a strong audience and weak retention as healthy.

The two scopes stay separate in the API so product teams can keep them separate in the interface. Both return raw JSON, which means creator briefs, agency reports, and customer dashboards can be built from the same data without a second integration.

Watch time and traffic sources as the reporting payoff

The YouTube metrics that change decisions are retention and discovery. Average view duration shows whether the opening of a video worked, and traffic sources show whether views came from search, suggested videos, external links, or direct visits, which separates content YouTube is recommending from content only your own promotion reached.

bundle.social keeps YouTube uploads, scheduling, status, video analytics, and audience snapshots in one workspace alongside Instagram, TikTok, and other channels. Because data is collected on a recurring basis, a video's trajectory and a channel's audience shift are both readable from the same API.

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

Visible post status

Track scheduled, processing, posted, retrying, and error states per post.

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.

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.