Twitch · Guide

How to get Twitch user videos

TL;DR
To get Twitch user videos, sign up for a free Captapi key, then send one 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. 1

    Get a free API key

    Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.

  2. 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. 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",
    "username": "shroud",
    "filterBy": null,
    "sortBy": "TIME",
    "broadcaster": {
      "id": "37402112",
      "username": "shroud",
      "displayName": "shroud",
      "url": "https://www.twitch.tv/shroud",
      "profileImage": "https://static-cdn.jtvnw.net/jtv_user_pictures/c754eebf-745b-4e0a-814a-10bcaecaabbc-profile_image-300x300.png",
      "followers": 11293237,
      "isPartner": true,
      "isAffiliate": false
    },
    "totalReturned": 3,
    "nextCursor": "2827054673",
    "hasMore": true,
    "windowMax": 100,
    "videos": [
      {
        "platform": "twitch",
        "id": "2827992810",
        "url": "https://www.twitch.tv/videos/2827992810",
        "embedUrl": "https://player.twitch.tv/?video=2827992810&parent=captapi.com",
        "title": "ME N THE GIRLS R GONNA POP OFF IN THIS 100K TWITCH RIVALS",
        "createdAt": "2026-07-24T17:56:52Z",
        "durationSeconds": 20988,
        "views": 212833,
        "thumbnail": "https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/c43d1ce993fae5a15f69_shroud_317074350583_1784915807//thumb/thumb0-320x180.jpg",
        "thumbnailTemplate": "https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/c43d1ce993fae5a15f69_shroud_317074350583_1784915807//thumb/thumb0-{width}x{height}.jpg",
        "animatedPreviewUrl": "https://d2nvs31859zcd8.cloudfront.net/c43d1ce993fae5a15f69_shroud_317074350583_1784915807/storyboards/2827992810-strip-0.jpg",
        "broadcastType": "ARCHIVE",
        "game": "VALORANT",
        "gameId": "516575",
        "gameSlug": "valorant",
        "gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/516575-144x192.jpg",
        "language": "en"
      },
      {
        "platform": "twitch",
        "id": "2827192082",
        "url": "https://www.twitch.tv/videos/2827192082",
        "embedUrl": "https://player.twitch.tv/?video=2827192082&parent=captapi.com",
        "title": "HALO CE REMAKE! TIME TO CO-OP LEGENDARY AND GET OUR MEAT BEAT",
        "createdAt": "2026-07-23T18:19:36Z",
        "durationSeconds": 20254,
        "views": 175717,
        "thumbnail": "https://static-cdn.jtvnw.net/cf_vods/d2vi6trrdongqn/43c3501090df2005acdf_shroud_319635395040_1784830770//thumb/thumb0-320x180.jpg",
        "thumbnailTemplate": "https://static-cdn.jtvnw.net/cf_vods/d2vi6trrdongqn/43c3501090df2005acdf_shroud_319635395040_1784830770//thumb/thumb0-{width}x{height}.jpg",
        "animatedPreviewUrl": "https://d2vi6trrdongqn.cloudfront.net/43c3501090df2005acdf_shroud_319635395040_1784830770/storyboards/2827192082-strip-0.jpg",
        "broadcastType": "ARCHIVE",
        "game": "Halo: Campaign Evolved",
        "gameId": "796500915",
        "gameSlug": "halo-campaign-evolved",
        "gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/796500915_IGDB-144x192.jpg",
        "language": "en"
      }
    ]
  }
}

Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.

Request parameters

NameTypeRequiredDescription
urlstring YesTwitch 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.
limitintegerNoMax 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).
filterBystringNoARCHIVE | HIGHLIGHT | UPLOAD. Omit for all types — there is no default filter (filterBy is null when omitted).
sortBystringNoTIME (default, newest first) or VIEWS.
cursorstringNoPagination 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).
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.

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. Hits include cached + cachedAt. 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 proxies, 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. Hits include cached + cachedAt. 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