Twitch is the dominant live streaming platform for gaming, esports, and increasingly a broad range of content including finance, music, and software development. With millions of concurrent viewers at peak hours, tens of thousands of live streams running at any moment, and a clip archive spanning years of content, Twitch represents one of the richest sources of real-time audience engagement data, creator performance metrics, and community sentiment on the internet.
For esports analysts, game publisher intelligence teams, influencer marketing agencies, and researchers studying live digital communities, Twitch data provides something uniquely valuable: real-time audience attention signals. Viewership spikes, clip virality, chat engagement rates, and game category trends on Twitch frequently precede mainstream coverage by days or weeks. The Twitch API provides access to some of this data, but rate limits, credential requirements, and endpoint-level restrictions make bulk extraction for competitive intelligence or large-scale research impractical through the official API alone.
Twitch operates a hybrid architecture: live stream metadata and clip catalogs are served through its web application, but the most valuable engagement data — concurrent viewers, chat activity, subscription counts — updates in near-real-time and is delivered through a combination of GraphQL API calls and WebSocket connections that the web client uses internally. These internal endpoints require authentication headers, client IDs, and session tokens that change across sessions and are not documented for third-party use.
The rate limit and authentication problem: Twitch’s public API enforces a 800 requests-per-minute rate limit per client ID, which sounds generous until you realize that bulk collection across categories, channels, and clip archives requires many parallel request streams. More critically, the most granular engagement data — channel follower counts, subscription tiers, paid viewer ratios — sits behind endpoints that require OAuth tokens tied to registered applications. Obtaining and maintaining these tokens for bulk scraping requires managing application credentials that Twitch actively audits for policy compliance. Collections that trigger abuse signals get client IDs revoked, terminating ongoing data collection instantly. Managing credential rotation, request pacing across the rate limit envelope, and fallback handling for revoked tokens is the central operational challenge for any serious Twitch data collection pipeline.
Clip data presents a secondary challenge. Twitch clips are paginated by recency and by game category, but there is no bulk endpoint for retrieving clips by view count threshold or date range across a channel’s full history. Building a complete clip archive for a channel requires sequential pagination through potentially thousands of paginated API responses, with no shortcut to jump directly to high-engagement clips from a specific time window. For channels with years of content, a complete historical clip collection is a multi-hour operation even with optimal request pacing.
Live stream data is time-sensitive by definition. Concurrent viewer counts, stream titles, and game categories are ephemeral — the state visible at a given moment disappears once the stream ends and is not reconstructable from historical API calls. Building longitudinal viewership datasets requires continuous scraping at regular intervals during active stream windows, which demands persistent collection infrastructure rather than periodic batch jobs.
We maintain a Twitch Scraper on Apify that handles authentication, rate-limit-aware pagination, clip archive traversal, and structured output normalization. You provide channel names, game categories, or category leaderboard parameters; it returns clean stream and clip data ready for analysis.
Extract data for specific channels and their top clips:
{
"channels": ["shroud", "pokimane", "xqc"],
"dataTypes": ["channelInfo", "clips", "streams"],
"clipsLimit": 100,
"clipsDateFrom": "2026-01-01"
}
Or scrape a game category leaderboard:
{
"gameCategories": ["Fortnite", "League of Legends", "Just Chatting"],
"dataTypes": ["topStreams", "clips"],
"topStreamsLimit": 50,
"clipsLimit": 200
}
Each channel returns a structured object:
{
"channelLogin": "shroud",
"displayName": "shroud",
"description": "Former CS:GO pro, full-time streamer",
"followerCount": 10482300,
"totalViewCount": 847200000,
"createdAt": "2011-09-03",
"isPartner": true,
"lastStreamTitle": "VALORANT — ranked grind, !setup",
"lastStreamGame": "VALORANT",
"lastStreamStartedAt": "2026-04-26T18:00:00Z",
"lastStreamPeakViewers": 41200,
"lastStreamAvgViewers": 28700,
"clips": [
{
"clipId": "GentleAbrasiveRabbitBIRB-xyz123",
"title": "Insane 4K clutch on pistol round",
"viewCount": 1820000,
"durationSeconds": 30,
"createdAt": "2026-04-10T22:14:00Z",
"thumbnailUrl": "https://clips-media-assets2.twitch.tv/..."
}
],
"scrapedAt": "2026-04-27T11:00:00.000Z"
}
| Field | Type | Description |
|---|---|---|
channelLogin | string | Twitch login name (URL slug) |
displayName | string | Display name as shown on Twitch |
followerCount | integer | Total channel followers |
totalViewCount | integer | All-time channel view count |
isPartner | boolean | Whether the channel is a Twitch Partner |
lastStreamGame | string | Game or category of most recent stream |
lastStreamPeakViewers | integer | Peak concurrent viewer count for last stream |
lastStreamAvgViewers | integer | Average concurrent viewers for last stream |
clips[].viewCount | integer | Total views on the clip |
clips[].durationSeconds | integer | Clip duration in seconds |
clips[].createdAt | string | ISO 8601 clip creation timestamp |
Output is available as JSON, CSV, or XLSX. Scheduled Apify runs let you build continuous Twitch monitoring pipelines — daily category leaderboard snapshots, clip virality trackers, or channel growth rate monitors for creator intelligence or competitive analysis.
The actor uses Pay Per Event pricing at $0.003 per result.
| Volume | Cost |
|---|---|
| 1,000 results | $3.00 |
| 5,000 results | $15.00 |
| 10,000 results | $30.00 |
| Daily category leaderboard (200 channels × 30 days) | $18.00/month |
Apify has a free tier for testing. Sign up here if you do not have an account. The actor integrates with Apify’s scheduling, webhook, and dataset APIs so you can automate Twitch monitoring pipelines without managing authentication credentials or scraping infrastructure yourself.