YouTube channel data API
One YouTube channel's profile: its identity, stats and about-page details. To get these records, set mode to channel, which reads channelUrls, playlistUrls, and includeChannelAbout.
- Record type
channel- Fields
- 21
- From
- $3.60 per 1,000 records
- Billed as
channel-detail
Example request and record
The request below is the one this record answers, taken from a real run. The names, usernames, photos and contact details of people in it are fictional. Long text and long lists are shortened here. The download has the whole record.
{ "source": "youtube", "type": "channel", "channelId": "UCexample100000000000000", "title": "example_user_1", "handle": "@example_user_1", "url": "https://www.youtube.com/channel/UCexample100000000000000", "vanityUrl": "https://www.youtube.com/@example_user_1", "description": "SUBSCRIBE FOR A COOKIE!\nNew example_user_1 or example_user_1 Gaming … "keywords": [ "example_tag_1", "example_tag_2", "example_user_1" ], "subscriberCount": 516000000, "videoCount": 1003, "isVerified": true, "avatar": "https://example.com/avatars/1.jpg", "banner": "https://yt3.googleusercontent.com/mHMO_eEMp0dPvh0ADwXhPXNYb_GnjSVsLI8… "isFamilySafe": true, "isAgeRestricted": false, "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UCexample10000000… "tabs": [ "Home", "Videos", "Shorts" ], "country": "United States", "viewCount": 140422111922, "joinedDate": "Feb 19, 2012", "canonicalUrl": "https://www.youtube.com/@example_user_1", "links": [ { "title": "$1,000,000 Contest", "url": "https://www.themostdangerousgames.com/" }, { "title": "Follow", "url": "https://www.instagram.com/example_user_1/" }, { "title": "Twitter", "url": "https://twitter.com/example_user_1" } ], "hasBusinessEmail": true, "id": "UCexample100000000000000", "event": "channel-detail", "collectedAt": "2026-09-20T19:41:10.593Z"}Each field name links to its row in the field table. Long values are shortened.
| Field | Type | What it holds |
|---|---|---|
title | string | Channel's display name. |
description | string | Channel description text, or null. |
keywords | array | Array of the channel's hidden SEO keywords; empty when there are none. |
viewCount | integer | Total lifetime view count across the channel's videos, from the about panel, as an integer. |
channelId | string | Channel's ID. |
isFamilySafe | boolean | True when the channel is marked safe for all audiences, null when unknown. |
handle | string | Channel's @handle, or null. |
vanityUrl | string | Channel's vanity https URL, for example https://www.youtube.com/@example_channel, or null. |
subscriberCount | integer | Subscriber count as an integer. |
videoCount | integer | Total public video count as an integer. |
isVerified | boolean | True when the channel has YouTube's verified badge. |
avatar | string | URL of the channel's largest available avatar image. |
banner | string | URL of the channel's banner image, or null when it has none. |
isAgeRestricted | boolean | True when the channel requires age confirmation to view. |
rssUrl | string | RSS feed URL for the channel, or null. |
tabs | array | Array of the channel page's visible tab names, for example "Home" or "Videos". |
country | string | Country the channel reports in its about panel, or null. |
joinedDate | string | Date the channel joined YouTube, as display text, for example "Feb 19, 2012"; null when unknown. |
canonicalUrl | string | Canonical https URL of the channel from its about panel. |
links | array | Array of {title, url} external links shown in the about panel. |
hasBusinessEmail | boolean | True when the about panel shows a business-contact prompt. |
Fields
Every field of channel records, read from real YouTube records. Where a field does not apply to an item it is null or an empty list, not left out. Each record starts with the envelope: source, type, event, id, url, collectedAt.
| Field | Type | What it holds | Present on |
|---|---|---|---|
title | string | Channel's display name. | All |
description | string | Channel description text, or null. | All |
keywords | array | Array of the channel's hidden SEO keywords; empty when there are none. | All |
viewCount | integer | Total lifetime view count across the channel's videos, from the about panel, as an integer. | All |
channelId | string | Channel's ID. | All |
isFamilySafe | boolean | True when the channel is marked safe for all audiences, null when unknown. | All |
handle | string | Channel's @handle, or null. | All |
vanityUrl | string | Channel's vanity https URL, for example https://www.youtube.com/@example_channel, or null. | All |
subscriberCount | integer | Subscriber count as an integer. | All |
videoCount | integer | Total public video count as an integer. | All |
isVerified | boolean | True when the channel has YouTube's verified badge. | All |
avatar | string | URL of the channel's largest available avatar image. | All |
banner | string | URL of the channel's banner image, or null when it has none. | All |
isAgeRestricted | boolean | True when the channel requires age confirmation to view. | All |
rssUrl | string | RSS feed URL for the channel, or null. | All |
tabs | array | Array of the channel page's visible tab names, for example "Home" or "Videos". | All |
country | string | Country the channel reports in its about panel, or null. | All |
joinedDate | string | Date the channel joined YouTube, as display text, for example "Feb 19, 2012"; null when unknown. | All |
canonicalUrl | string | Canonical https URL of the channel from its about panel. | All |
links | array | Array of {title, url} external links shown in the about panel. | All |
hasBusinessEmail | boolean | True when the about panel shows a business-contact prompt. | All |
Options
These inputs and switches change what comes back. Every request also takes maxItems and maxItemsPerInput.
| Option | Type | Default | What it does |
|---|---|---|---|
channelUrls | array | none | e.g. @example_channel, https://www.youtube.com/@example_channel, UCexample000000000000000. In video / comments / transcript mode every video of the channel is processed (up to Max results per input). |
playlistUrls | array | none | e.g. https://www.youtube.com/playlist?list=PL... - the playlist's videos are listed (channel mode) or processed by the chosen per-video mode. |
includeChannelAbout | boolean | true | In channel mode, also collect the channel's About data: total views, joined date, country and external links. |
YouTube channels pricing
You pay once for each record you receive, at the price of the event it carries. A request that returns nothing costs nothing.
| Event | Per 1,000 records | Per record |
|---|---|---|
channel-detail | $3.60 | $0.00360 |
Edge cases
- A channel page that answers 404 or 410, asked for by channel id or @handle, comes back as a
not_foundrecord billed aschannel-detail. includeChannelAboutis on unless you turn it off. It merges the channel's About panel into the record; when the panel cannot be read, the record still arrives without it.- A playlist with no videos on its first page returns no record and costs nothing.