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 — socials[], topClips, schedule preview, live stream block (null when offline), clean VODs (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%2Fibai" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

What the response looks like

{
  "success": true,
  "data": {
    "platform": "twitch",
    "id": "83232866",
    "login": "ibai",
    "displayName": "ibai",
    "url": "https://www.twitch.tv/ibai",
    "description": "Si lees esto que sepas que te aprecio",
    "followers": 20346592,
    "profileImage": "https://static-cdn.jtvnw.net/jtv_user_pictures/574228be-01ef-4eab-bc0e-a4f6b68bedba-profile_image-300x300.png",
    "bannerImage": "https://static-cdn.jtvnw.net/jtv_user_pictures/4de9a7f1-42a9-477f-9cd4-6fb585272f3c-profile_banner-480.jpeg",
    "isPartner": true,
    "isAffiliate": false,
    "isLive": false,
    "stream": {
      "title": null,
      "game": null,
      "gameBoxArtUrl": null,
      "viewers": null,
      "startedAt": null,
      "thumbnail": null
    },
    "lastBroadcast": {
      "title": "FLAKKED Y OSCARININ SE ESTRENAN | GX VS SK | NAVI VS KC | #WatchLEC",
      "game": "League of Legends",
      "gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/21779-144x192.jpg",
      "startedAt": "2026-08-01T20:18:56.367677Z"
    },
    "recentVideos": [
      {
        "platform": "twitch",
        "id": "2834463106",
        "url": "https://www.twitch.tv/videos/2834463106",
        "embedUrl": "https://player.twitch.tv/?video=2834463106&parent=captapi.com",
        "title": "FLAKKED Y OSCARININ SE ESTRENAN | GX VS SK | NAVI VS KC | #WatchLEC",
        "createdAt": "2026-08-01T14:31:37Z",
        "durationSeconds": 20835,
        "views": 500540,
        "thumbnail": "https://static-cdn.jtvnw.net/cf_vods/d3stzm2eumvgb4/ecd0accc3ebc7ced4d7e_ibai_317377393636_1785594690//thumb/thumb0-{width}x{height}.jpg",
        "animatedPreviewUrl": "https://d3stzm2eumvgb4.cloudfront.net/ecd0accc3ebc7ced4d7e_ibai_317377393636_1785594690/storyboards/2834463106-strip-0.jpg",
        "game": "League of Legends",
        "gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/21779-144x192.jpg",
        "language": "es",
        "broadcaster": "ibai",
        "broadcasterProfileImage": "https://static-cdn.jtvnw.net/jtv_user_pictures/574228be-01ef-4eab-bc0e-a4f6b68bedba-profile_image-300x300.png"
      },
      {
        "platform": "twitch",
        "id": "2833593338",
        "url": "https://www.twitch.tv/videos/2833593338",
        "embedUrl": "https://player.twitch.tv/?video=2833593338&parent=captapi.com",
        "title": "MKOI vs SHFT | NOS JUGAMOS LA VIDA | VAMOS 0-3 | YO CONFIO | AVE FENIX | TH vs VIT | #WatchLEC",
        "createdAt": "2026-07-31T14:40:08Z",
        "durationSeconds": 17708,
        "views": 545528,
        "thumbnail": "https://static-cdn.jtvnw.net/cf_vods/d3stzm2eumvgb4/f6e52764cb70a8846ecb_ibai_317369348836_1785508801//thumb/thumb0-{width}x{height}.jpg",
        "animatedPreviewUrl": "https://d3stzm2eumvgb4.cloudfront.net/f6e52764cb70a8846ecb_ibai_317369348836_1785508801/storyboards/2833593338-strip-0.jpg",
        "game": "League of Legends",
        "gameBoxArtUrl": "https://static-cdn.jtvnw.net/ttv-boxart/21779-144x192.jpg",
        "language": "es",
        "broadcaster": "ibai",
        "broadcasterProfileImage": "https://static-cdn.jtvnw.net/jtv_user_pictures/574228be-01ef-4eab-bc0e-a4f6b68bedba-profile_image-300x300.png"
      }
    ],
    "topClips": [],
    "schedule": [],
    "createdAt": "2015-02-20T16:47:56.548434Z"
  }
}

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. Envelope includes cached + cachedAt on hits.
cacheMaxAgestringNoMax age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL (SC cache_max_age). Envelope: cached + cachedAt.

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. 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 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. 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 profile?

Start free with 100 credits — no credit card required.

Get your free API key