Channel Data
Pull About info, format overview, daily analytics, videos, shorts, and playlists for any channel.
Look up rich metadata for any YouTube channel by ID. All endpoints take a 24-char channel ID (UCxxxxxxxxxxxxxxxxxxxxxx). If you only have a @handle or URL, resolve it first via one of the search endpoints or the resolve endpoint.
Everything from a channel's About page in one call — name, description, subscriber and view counts, country, language, join date, topics, social links, trailer, banner, and more.
| Name | Type | Description |
|---|---|---|
| channel_id | string | 24-char YouTube channel ID (starts with UC). |
Aggregate stats for one of Algrow's 24 canonical channel formats — how many channels are tracked in the niche, average and median subscriber counts, and the biggest channels. The channel About endpoint returns each channel's format slug; feed it here.
| Name | Type | Description |
|---|---|---|
| slug | string | One of the 24 canonical format slugs (e.g. documentary, kids_content, challenge_videos). |
See how a channel has grown day-by-day across any date range you pick — subscribers, views, and uploads, plus a summary with total growth over the window.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| start_date | string | Optional | 30 days ago | ISO YYYY-MM-DD. |
| end_date | string | Optional | today | ISO YYYY-MM-DD. Max window 365 days (clamped). |
Browse a channel's longform uploads, newest first — with titles, view counts, durations, upload dates, and thumbnails.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| limit | integer | Optional | 30 | Max videos (1–100). |
Browse a channel's Shorts, newest first — the real Shorts tab, not short-duration regular videos.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| limit | integer | Optional | 30 | Max shorts (1–100). |
See every public playlist on a channel — title, description, video count, and thumbnail for each. Paginates in batches of 50.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| page_token | string | Optional | — | Pass the next_page_token from a previous response for subsequent pages. |
Subscriber counts — and channel-average views where we hold them — for many channels in one call. Channels already in the Algrow index are answered from our database and cost you nothing; anything we don't hold is resolved live from YouTube in batches. Use this instead of looping a per-channel endpoint when you are annotating a feed.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| channel_ids | string[] | Required | — | Channel IDs to look up. Must start with UC and be 24 characters. Duplicates and malformed entries are dropped silently; at most 300 per call. |
resolved against requested — a channel we can't resolve is simply absent from stats rather than present with zeroes. Each entry carries a source of algrow (from our index) or youtube (resolved live). avg_views_per_video is null for channels we haven't measured.Daily view counts and day-over-day movement for each of a channel's tracked videos. Use it to see which videos are still picking up views and which have gone flat.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| days | integer | Optional | 30 | How far back to read, from 1 to 365 days. |
videos: []. That is an empty series, not an error — render it as "not tracked yet" rather than treating it as a failure.viewIncrease24h can be null. Null means there is no earlier day to measure against, so the movement is unknown. It never means zero. likes and comments follow the same rule.The channel's typical view curve by video age — a low and high band for how many cumulative views a video on this channel usually has at a given number of minutes after publication. Plot a video's real curve against this band to see whether it is over- or under-performing for its own channel.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| videoIds | string[] | Optional | — | Restrict the band to these videos. Omit to use the whole channel. Every entry must be a valid video id or the call returns 400. |
estimated flag before you trust the band. When we hold enough sampled history it is false and the band is a real 25th-to-75th percentile of that channel's own videos. When we don't, it is true and the band is synthesized from what we do know — still useful for shape, but not a measurement. A channel with no usable videos returns trends: [].The sampled time series for one video: views, likes and comments at each point we recorded, plus the views-per-hour rate between consecutive points. Returns the last sample in each bucket, oldest first.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| granularity | string | Optional | hourly | Bucket size. One of hourly, daily, monthly. |
| from | string | Optional | — | Start of the window. Omit for the earliest sample we hold. |
| to | string | Optional | — | End of the window. Omit for the most recent sample. |
samples is empty for videos we have never recorded. vph is computed between the returned points, which means a wider granularity gives a smoother, lower-resolution rate.Record one point-in-time reading of a video's stats. This is the write side of stats-history — every observation you post becomes a point in that video's series.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| viewCount | integer | Required | — | The video's view count at the moment you read it. Must be a whole number. |
| likeCount | integer | Optional | — | Like count. Negative or non-integer values are stored as null rather than rejected. |
| commentCount | integer | Optional | — | Comment count. Same handling as likeCount. |
recorded tells you which happened: true means a new point was stored, false means one already existed inside the window. Neither is an error.
Algrow
Shorts Channels