Twitch

Twitch Profile API

Twitch channel — handle + displayName, socials[], topClips, schedule preview, stream only when live (1 credit).

Pass a Twitch channel URL or username and get a clean profile (no GraphQL junk). Identity is handle + displayName only — login/username/name are not shipped (they collide with handle or displayName depending on the channel). bio / avatar / banner have no description/profileImage/bannerImage twins. Also: isPartner/isAffiliate, isLive, stream{title, game, gameBoxArtUrl, viewers, startedAt, thumbnail} when live (omitted when offline — isLive:false already said it), lastBroadcast{} when Twitch exposes one, socials[{platform,url,title}] from channel panels / socialMedias, recentVideos[] (same lean row as /twitch/user-videos: broadcastType, gameId/gameSlug, no per-row broadcaster*), topClips[], and schedule[] (lean preview, max 10). Canonical full schedule: GET /v1/twitch/user-schedule. Empty bio is omitted, not nulled. Accepts cache / cacheMaxAge=1d|3d|7d|14d|30d. Flat 1 credit.

Docs: https://captapi.com/apis/twitch-profile

get/v1/twitch/profile

Request

  • Base URL: https://api.captapi.com
  • URL: https://api.captapi.com/v1/twitch/profile
  • 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.

cacheboolean

Set true to serve from the response cache (default TTL). Default false — always fetch fresh. Prefer cacheMaxAge when you need 1d–30d freshness control.

cacheMaxAge'1d' | '3d' | '7d' | '14d' | '30d'

Max age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL.

Response

Success. The data object for this endpoint.

successunknown required

Changes

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