Get YouTube audience demographics
Returns audience demographic insights for a YouTube channel, broken down by age, gender, and/or country. Age and gender values are viewer percentages (0-100). Country values are view counts. Data is based on signed-in viewers only, with a 2-3 day delay. Requires the Analytics add-on.
API key authentication - use your Zernio API key as a Bearer token
In: header
Query Parameters
The Zernio SocialAccount ID for the YouTube account
Comma-separated list of demographic dimensions: age, gender, country. Defaults to all three if omitted.
Start date in YYYY-MM-DD format. Defaults to 90 days ago.
dateEnd date in YYYY-MM-DD format. Defaults to 3 days ago (YouTube data latency).
dateResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://zernio.com/api/v1/analytics/youtube/demographics?accountId=string"{
"success": true,
"accountId": "64e1a2b3c4d5e6f7a8b9c0d1",
"platform": "youtube",
"demographics": {
"age": [
{
"dimension": "25-34",
"value": 28.5
},
{
"dimension": "18-24",
"value": 22.1
}
],
"gender": [
{
"dimension": "male",
"value": 62.3
},
{
"dimension": "female",
"value": 35.8
}
],
"country": [
{
"dimension": "US",
"value": 12000
},
{
"dimension": "GB",
"value": 3500
}
]
},
"dateRange": {
"startDate": "2026-01-01",
"endDate": "2026-03-31"
},
"note": "Age/gender values are viewer percentages (0-100). Country values are view counts. Data based on signed-in viewers only, with 2-3 day delay."
}{
"error": "string"
}{
"error": "Unauthorized"
}{
"error": "Analytics add-on required",
"code": "analytics_addon_required"
}{
"error": "Access denied to this account"
}{
"error": "Account not found"
}{
"success": false,
"error": "string",
"code": "youtube_analytics_scope_missing",
"scopeStatus": {
"hasAnalyticsScope": false,
"requiresReauthorization": true,
"reauthorizeUrl": "string"
}
}Get YouTube daily views GET
Returns daily view counts for a YouTube video including views, watch time, and subscriber changes. Requires yt-analytics.readonly scope (re-authorization may be needed). Data has a 2-3 day delay. Max 90 days, defaults to last 30 days.
Get presigned upload URL POST
Get a presigned URL to upload files directly to cloud storage (up to 5GB). Returns an uploadUrl and publicUrl. PUT your file to the uploadUrl, then use the publicUrl in your posts.