youtube

Channel › Videos

Returns recent videos published by a channel, each with title, view count, duration, thumbnail, and publish date; pass includeExtras=true to add like and comment counts.

Use it for a channel's regular uploads; channel/shorts covers Shorts, channel/lives covers streams, channel/community-posts covers text posts.

Metered: 10–20 credits. We reserve the ceiling when the call starts and charge what it actually used when it finishes.

Paginates by cursor: see Pagination.

get/v1/youtube/channel/videos

Request

  • Base URL: https://api.insightsocial.app
  • URL: https://api.insightsocial.app/v1/youtube/channel/videos
  • Auth: API key in header x-api-key

Query parameters

channelIdstring

YouTube channel ID. Provide at least one of: channelId, handle.

handlestring
Example:MrBeast

YouTube channel handle without the @ symbol. Provide at least one of: channelId, handle.

sincestring
Example:2026-09-01

Only videos published on or after this date: YYYY-MM-DD (midnight UTC) or an ISO 8601 timestamp. Older videos are left off the page, and the page that reaches one ends the walk: next_cursor is not returned and pagination.stopped_at is since. Pinned videos sit out of date order and never end the walk. The page still costs what a page costs, so a daily poll pays for the pages it walks and no more.

stop_at_idstring

The id (post.id) or URL (post.url) of the newest video you already hold. The page stops just before it: that video and everything after it are left off, next_cursor is not returned, and pagination.stopped_at is known_id. A pinned video never counts as the stop point. If it is not on this page the page is returned in full with its cursor, so keep walking. pagination.stopped_at is end when the list ran out first and null while there is more to walk.

sort'latest' | 'popular'

Sort by latest or popular

includeExtrasstring

Set to true to add the like count and comment count (post.engagement.likes / .comments) and the video description (post.ext.description). For the full per-video detail use /v1/youtube/video. Slows the response slightly.

is_paid_promotionsstring

Set to 'true' to search YouTube's public paid product placement / sponsorship / endorsement surface: returns normal videos where the creator disclosed a paid promotion.

include'channel'

Set to channel (one token only) to add the channel's subscriber count to every row (post.ext.author_followers, YouTube's own figure, rounded to three significant figures above 1,000) plus post.author.display_name, .avatar_url and author.id where missing. Adds well under a second (never more than 8).

exact_dates'true' | 'false'

Exact publish dates are on by default and free. Set to false to skip the lookup: rows then carry YouTube's own date estimate (a day-granular or coarser label truncated to midnight UTC), marked by post.ext.published_precision and post.ext.published_label, and the listing title, marked by post.ext.title_maybe_translated.

untilstring

Only rows published on or before this date: YYYY-MM-DD (that whole UTC day is included) or an ISO 8601 timestamp. Newer rows are left off each page and the walk does not stop, so older pages follow. A row with no date is kept.

cursorstring

The pagination.next_cursor from the previous page, sent back unchanged. Omit it for the first page.

dry_run'1'

Set to 1 to get the price of this call without making it: data.dry_run carries credits_min and credits_max. Nothing is charged.

Response

Success.

successtrue required
platformstring required
endpointstring required
schema_version'2' required
unavailablestring[] required
credits_usedinteger required
credits_remaininginteger required
request_idstring required
cachedboolean required
idempotent_replayboolean required
charge_reasonstring required
free_callboolean required

Changes

No recorded changes to this operation across all 1 revision of this API.