How to get Twitch user videos
GET request to /v1/twitch/user-videos with your input. You get clean JSON back in seconds for 2 credits per call — no OAuth, scraping or platform SDKs. Twitch channel VODs — lean rows, video-id cursor, filter/sort, top-level broadcaster{} (flat 2).How to get Twitch user videos (step by step)
- 1
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 2
Call the Twitch User Videos API
Send an authenticated GET request to /v1/twitch/user-videos with your input. No OAuth, no scraping setup.
- 3
Read the JSON response
Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.
Code example
curl "https://api.captapi.com/v1/twitch/user-videos?url=https%3A%2F%2Fwww.twitch.tv%2Fshroud" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."What the response looks like
{
"success": true,
"data": {
"platform": "twitch",
"handle": "shroud",
"sortBy": "TIME",
"totalReturned": 2,
"nextCursor": "2888211641",
"hasMore": true,
"windowMax": 100,
"videos": [
{
"platform": "twitch",
"id": "2904296965",
"url": "https://www.twitch.tv/videos/2904296965",
"embedUrl": "https://player.twitch.tv/?video=2904296965&parent=captapi.com",
"title": "spamming runs + dailies + weeklies + getting ready for ludra",
"createdAt": "2026-10-18T16:16:06Z",
"durationSeconds": 30959,
"views": 2836,
"thumbnail": "https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/4a0105031e2feda1bb70_shroud_318398085848_1792340162//thumb/thumb0-320x180.jpg",
"thumbnailTemplate": "https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/4a0105031e2feda1bb70_shroud_318398085848_1792340162//thumb/thumb0-{width}x{height}.jpg",
"animatedPreviewUrl": "https://d2nvs31859zcd8.cloudfront.net/4a0105031e2feda1bb70_shroud_318398085848_1792340162/storyboards/2904296965-strip-0.jpg",
"broadcastType": "ARCHIVE",
"game": "AION 2",
"gameId": "771448419",
"gameSlug": "aion-2",
"gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/771448419_IGDB-144x192.jpg",
"language": "en"
},
{
"platform": "twitch",
"id": "2902494201",
"url": "https://www.twitch.tv/videos/2902494201",
"embedUrl": "https://player.twitch.tv/?video=2902494201&parent=captapi.com",
"title": "second season, first L. aion 2 after",
"createdAt": "2026-10-16T18:51:15Z",
"durationSeconds": 25326,
"views": 201322,
"thumbnail": "https://static-cdn.jtvnw.net/cf_vods/d2vi6trrdongqn/5a4761dfefde0dcc4a66_shroud_320780889692_1792176668//thumb/thumb0-320x180.jpg",
"thumbnailTemplate": "https://static-cdn.jtvnw.net/cf_vods/d2vi6trrdongqn/5a4761dfefde0dcc4a66_shroud_320780889692_1792176668//thumb/thumb0-{width}x{height}.jpg",
"animatedPreviewUrl": "https://d2vi6trrdongqn.cloudfront.net/5a4761dfefde0dcc4a66_shroud_320780889692_1792176668/storyboards/2902494201-strip-0.jpg",
"broadcastType": "ARCHIVE",
"game": "WARDOGS",
"gameId": "743893402",
"gameSlug": "wardogs",
"gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/743893402_IGDB-144x192.jpg",
"language": "en"
}
],
"broadcaster": {
"id": "37402112",
"handle": "shroud",
"displayName": "shroud",
"url": "https://www.twitch.tv/shroud",
"avatar": "https://static-cdn.jtvnw.net/jtv_user_pictures/c754eebf-745b-4e0a-814a-10bcaecaabbc-profile_image-300x300.png",
"followers": 11293985,
"isPartner": true,
"isAffiliate": false
}
}
}Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | 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. |
| limit | integer | No | 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). |
| filterBy | string | No | ARCHIVE | HIGHLIGHT | UPLOAD. Omit for all types — there is no default filter (unset filterBy is omitted, not null). |
| sortBy | string | No | TIME (default, newest first) or VIEWS. |
| cursor | string | No | 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). |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. |
Frequently asked questions
What does the Twitch User Videos API do?
The Twitch User Videos API lets you list items in bulk with metadata from a public Twitch video using one GET request to /v1/twitch/user-videos. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Twitch User Videos API cost?
Each successful call costs 2 credits. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a Twitch API key or OAuth?
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle access, rate limits, retries, and authentication for you.
Is the Twitch User Videos API suitable for production use?
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
Ready to get Twitch user videos?
Start free with 100 credits — no credit card required.
Get your free API key