Twitch

Twitch User Videos API

Twitch channel VODs — lean rows, video-id cursor, filter/sort, top-level broadcaster{} (flat 2).

Pass a Twitch channel URL or username and get a clean videos[] list (not a profile dump). Each row: id, url, embedUrl, title, createdAt, durationSeconds, views, thumbnail (320x180 — {width}x{height} substituted; thumbnailTemplate kept), animatedPreviewUrl, broadcastType, game (+ gameId/gameSlug/box art), lowercase language. Channel identity is once at the top as broadcaster{id,handle,displayName,url,avatar,followers,isPartner,isAffiliate} — videos[] do not repeat channel{}/broadcaster/broadcasterProfileImage. The same lean row shape is used on profile.recentVideos[]. filterBy=ARCHIVE|HIGHLIGHT|UPLOAD (omit for all types — no default filter; an unset filterBy is omitted, not null). sortBy=TIME|VIEWS. nextCursor is the last video id on the page (stable within the window — not a raw offset). Hard ceiling: first 100 matching videos (windowMax=100); Twitch anonymous GQL rejects after-cursors with IntegrityCheckFailed, so deeper history is not available. Flat 2 credits per call.

Docs: https://captapi.com/apis/twitch-user-videos

get/v1/twitch/user-videos

Request

  • Base URL: https://api.captapi.com
  • URL: https://api.captapi.com/v1/twitch/user-videos
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Query parameters

urlstring required

Twitch channel URL or username, e.g. https://www.twitch.tv/shroud. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.

limitinteger

Max items to return (default 20, max 100). Flat 2 credits per call. Hard ceiling: first 100 matching videos only — deeper history is not available (windowMax=100).

filterBystring

ARCHIVE | HIGHLIGHT | UPLOAD. Omit for all types — there is no default filter (unset filterBy is omitted, not null).

sortBystring

TIME (default, newest first) or VIEWS.

cursorstring

Pagination cursor = last video id from the previous nextCursor. Leave empty for the first page. Pages the first 100 matching videos only (not a raw offset).

cacheboolean

Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Response

Success. The data object for this endpoint.

successunknown required

Changes

No recorded changes to this operation across all 3 revisions of this API.