Twitch · Guide

How to get Twitch profile

TL;DR
To get Twitch profile, sign up for a free Captapi key, then send one GET request to /v1/twitch/profile with your input. You get clean JSON back in seconds for 1 credit per call — no OAuth, scraping or platform SDKs. Twitch channel — handle + displayName, socials[], topClips, schedule preview, stream only when live (1 credit).

How to get Twitch profile (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 Profile API

    Send an authenticated GET request to /v1/twitch/profile 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/profile?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",
    "id": "37402112",
    "displayName": "shroud",
    "url": "https://www.twitch.tv/shroud",
    "followers": 11290546,
    "isPartner": true,
    "isAffiliate": false,
    "isLive": false,
    "recentVideos": [
      {
        "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": 246850,
        "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": 176103,
        "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"
      }
    ],
    "topClips": [
      {
        "platform": "twitch",
        "id": "2358589597",
        "slug": "TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ",
        "url": "https://www.twitch.tv/shroud/clip/TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ",
        "embedUrl": "https://clips.twitch.tv/embed?clip=TangentialBillowingJalapenoYee-ccA2oB1pEYh4CHWJ",
        "title": "F Shroud",
        "views": 562324,
        "createdAt": "2023-06-02T11:41:50Z",
        "thumbnail": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/5696a6a8-e053-4c2e-a54c-5ca62c48102e/landscape/thumb/thumb-0000000000-1920x1080.jpg",
        "game": "Diablo IV",
        "gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/515024-144x192.jpg"
      },
      {
        "platform": "twitch",
        "id": "3663533447",
        "slug": "SuccessfulEndearingPidgeonPunchTrees-46KXLAMeuS9kpp5Q",
        "url": "https://www.twitch.tv/shroud/clip/SuccessfulEndearingPidgeonPunchTrees-46KXLAMeuS9kpp5Q",
        "embedUrl": "https://clips.twitch.tv/embed?clip=SuccessfulEndearingPidgeonPunchTrees-46KXLAMeuS9kpp5Q",
        "title": "it's gonna be over",
        "views": 561935,
        "createdAt": "2023-08-05T10:53:38Z",
        "thumbnail": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/05f80190-90b4-4569-94ce-36a01d87b191/landscape/thumb/thumb-0000000000-1920x1080.jpg",
        "game": "Baldur's Gate 3",
        "gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/512923_IGDB-144x192.jpg"
      }
    ],
    "schedule": [
      {
        "id": "eyJzZWdtZW50SUQiOiI4OTdjMTZjNy1jYTYyLTQ4OGItODI4ZS0wY2Q1OTdjMzEyNzUiLCJpc29ZZWFyIjoyMDI2LCJpc29XZWVrIjozM30=",
        "startAt": "2026-08-16T18:00:00Z",
        "endAt": "2026-08-17T02:00:00Z",
        "isRecurring": false,
        "isCancelled": false
      },
      {
        "id": "eyJzZWdtZW50SUQiOiJkNDYzZDJmNy1jNGQ3LTQ0ZTgtYWU0OS01OTlkNjI1Y2RkMTMiLCJpc29ZZWFyIjoyMDI2LCJpc29XZWVrIjozNH0=",
        "startAt": "2026-08-17T18:00:00Z",
        "endAt": "2026-08-18T02:00:00Z",
        "isRecurring": true,
        "isCancelled": false,
        "firstOccurrenceAt": "2025-11-24T19:00:00Z"
      }
    ],
    "socials": [
      {
        "platform": "link",
        "url": "https://shroud.gg/"
      },
      {
        "platform": "link",
        "url": "https://streamelements.com/shroud/tip"
      }
    ],
    "createdAt": "2012-11-03T15:50:32.87847Z",
    "bio": "I'm back baby",
    "avatar": "https://static-cdn.jtvnw.net/jtv_user_pictures/c754eebf-745b-4e0a-814a-10bcaecaabbc-profile_image-300x300.png",
    "banner": "https://static-cdn.jtvnw.net/jtv_user_pictures/dbee25e8-55b7-4565-87f0-e9d4661dcc66-profile_banner-480.jpeg",
    "lastBroadcast": {
      "title": "ME N THE GIRLS MAY BE OUT! BUT WE HAD FUN!",
      "game": "VALORANT",
      "gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/516575-144x192.jpg",
      "startedAt": "2026-07-24T23:46:43.553428Z"
    },
    "handle": "shroud"
  }
}

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.
cachebooleanNoSet true to serve from the response cache (default TTL). Default false — always fetch fresh. Prefer cacheMaxAge when you need 1d–30d freshness control.
cacheMaxAgestringNoMax age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL.

Frequently asked questions

What does the Twitch Profile API do?

The Twitch Profile API lets you fetch profile or page details and audience stats from a public Twitch profile or page using one GET request to /v1/twitch/profile. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Twitch Profile API cost?

Each successful call costs 1 credit. 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 proxies, rate limits, retries, and authentication for you.

Where did login / username / name go?

Dropped. handle == login == username and displayName == name on every channel we sampled (shroud / ninja / kaicenat). handle and displayName cover both meanings.

Why is stream missing when the channel is offline?

isLive:false already said it. A null stream object claimed a live block we failed to read. Empty bio is omitted the same way.

Is the Twitch Profile 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 profile?

Start free with 100 credits — no credit card required.

Get your free API key