Skip to main content

Request to Add YouTube Video-Level Demographics API

We are using Zernio’s YouTube Analytics APIs for our content publishing dashboard.

Currently, the /v1/analytics/youtube/demographics endpoint returns audience demographics at the YouTube account/channel level. However, in our “Content Publishing Details” view, we need the audience profile for each specific video, not the account-level audience profile.

YouTube Analytics API appears to support this by querying reports with filters=video==VIDEO_ID, for example:

  • Age and gender: dimensions=ageGroup,gender, metrics=viewerPercentage

  • Country distribution: dimensions=country, with metrics such as views

Would it be possible for Zernio to add video-level demographics support, either by extending the existing endpoint with a videoId parameter or by adding a new endpoint such as:

GET /v1/analytics/youtube/video-demographics

Example request:

GET /v1/analytics/youtube/demographics?accountId=xxx&videoId=yyy&breakdown=age,gender,country&startDate=2026-06-01&endDate=2026-06-28

Expected response fields would include:

  • accountId

  • videoId

  • dateRange

  • demographics.age

  • demographics.gender

  • demographics.country

  • scopeStatus

  • Any notes about data delay, signed-in viewers only, or data suppression for low-volume videos

This would help us show accurate per-video audience profiles in our content publishing details page and avoid showing account-level demographics where users expect video-level data.

Status: Completed1 comment

Log in to comment and vote

Comments1

  • Miquel Palet López

    Team•

    Aug 26

    This works today on the endpoint you are already calling: GET /v1/analytics/youtube/demographics takes an optional videoId query param, which scopes the report to that single video using YouTube Analytics filters=video==VIDEO_ID. Your example request works verbatim, breakdown=age,gender,country included; the video has to belong to the connected channel, otherwise you get a 404 VIDEO_NOT_FOUND, and when videoId is set startDate defaults to the video's publish date so you get lifetime figures without passing dates.

    On the caveats you asked about: the data covers signed-in viewers only, YouTube finalizes it with a roughly 3 day delay (the response includes provisionalSince marking days that may still be revised), and YouTube suppresses demographic cells for videos with too few signed-in views, so low-traffic videos can return empty breakdowns.