Twitch Streamer & Channel Analytics avatar

Twitch Streamer & Channel Analytics

Pricing

from $20.00 / 1,000 item scrapeds

Go to Apify Store
Twitch Streamer & Channel Analytics

Twitch Streamer & Channel Analytics

Extract Twitch streamer profiles, live streams, top games, clips, and VODs. 6 modes in one actor. No API key, no browser, no proxy needed. Pairs with our Kick.com Analytics for complete streaming intelligence.

Pricing

from $20.00 / 1,000 item scrapeds

Rating

0.0

(0)

Developer

Sami

Sami

Maintained by Community

Actor stats

0

Bookmarked

34

Total users

7

Monthly active users

7 days ago

Last modified

Share

Extract streamer profiles, live streams, top games, clips and VODs from Twitch's web GraphQL (GQL) endpoints — 6 modes, no API key.

No API key required. No browser. No proxy. Pure HTTP — fast and cheap.

How to scrape Twitch in 3 easy steps

  1. Go to the Twitch Scraper page on Apify and click "Try for free"
  2. Configure your input — choose a mode (channel_details, live_streams, top_games, search, clips, or videos), enter channel names or filters, and set the number of results
  3. Click "Run", wait for the scraper to finish, then download your data in JSON, CSV, or Excel format

No coding required. No API key. Works with Apify's free plan.

Streaming Intelligence Pair: Use this alongside our Kick.com Streamer & Channel Analytics for both streaming platforms.

What can this actor do?

ModeDescriptionInput needed
channel_detailsFull streamer profiles with followers, stream status, partner status, clipsChannel names/URLs
live_streamsCurrently live streams with viewers, game, tags (at most 30 per run)Optional game filter (a game with no live streams returns no rows)
top_gamesCategories found among the top 30 live streams, ranked by viewersJust maxResults
searchFind channels by keyword (at most 30 per run)Search query
clipsTop clips from specific channelsChannel names + time period
videosVODs/past broadcasts from channelsChannel names + video type

Twitch API alternative

The official Twitch API requires OAuth registration, client IDs, and token management — and Twitch has been deprecating endpoints and tightening access since 2023. This Twitch Scraper is an alternative that reads Twitch's web GQL endpoints instead. It extracts streamer profiles, live streams, top games, clips, and VODs — no API key, no OAuth, no token refresh. Just structured data, ready to use.

Use cases

  • Influencer marketing — Find streamers by game, viewer count, and follower count to identify partnership opportunities
  • Esports analytics — Track competitive gaming viewership and tournament performance across categories
  • Brand sponsorship — Evaluate streamer reach and engagement for sponsorship decisions
  • Game publisher analytics — Monitor your game's performance on Twitch: viewer trends, top streamers, clip virality
  • Content research — Discover trending clips, rising categories, and emerging content formats
  • Talent scouting — Identify rising streamers before they go mainstream using growth and engagement signals

Scrape Twitch with Python, JavaScript, or no code

You can use the Twitch Scraper directly from the Apify Console (no code), or integrate it into your own scripts with Python or JavaScript.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("zhorex/twitch-scraper").call(run_input={
"mode": "channel_details",
"channelLogins": ["shroud", "pokimane", "xqc"]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('zhorex/twitch-scraper').call({
mode: 'channel_details',
channelLogins: ['shroud', 'pokimane', 'xqc'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => console.log(item));

Input examples

Channel Details

{
"mode": "channel_details",
"channelLogins": ["shroud", "pokimane", "xqc"]
}

Live Streams (filtered by game)

{
"mode": "live_streams",
"gameFilter": "VALORANT",
"minViewers": 100,
"maxResults": 30
}

Top Games

{
"mode": "top_games",
"maxResults": 25
}

Search Channels

{
"mode": "search",
"searchQuery": "valorant",
"maxResults": 20
}

Channel Clips

{
"mode": "clips",
"channelLogins": ["shroud", "xqc"],
"clipsPeriod": "LAST_WEEK",
"maxResults": 50
}

Channel Videos (VODs)

{
"mode": "videos",
"channelLogins": ["pokimane"],
"videoType": "ARCHIVE",
"maxResults": 20
}

Output examples

Channel Details output

{
"login": "shroud",
"displayName": "shroud",
"url": "https://www.twitch.tv/shroud",
"description": "Former CS:GO professional player...",
"profileImageUrl": "https://...",
"bannerImageUrl": "https://...",
"followersCount": 10500000,
"isPartner": true,
"isAffiliate": false,
"isLive": true,
"currentStream": {
"title": "VALORANT RANKED",
"viewersCount": 25000,
"game": "VALORANT",
"startedAt": "2026-04-09T12:00:00Z",
"tags": ["English", "FPS"]
},
"lastBroadcast": {
"title": "VALORANT RANKED",
"startedAt": "2026-04-09T12:00:00Z"
},
"totalVideos": 1500,
"topClipsThisMonth": [...],
"createdAt": "2014-06-15T00:00:00Z",
"scrapedAt": "2026-04-09T15:00:00Z"
}

Live Streams output

{
"id": "12345678",
"title": "RANKED GRIND",
"viewersCount": 25000,
"broadcasterLogin": "shroud",
"broadcasterDisplayName": "shroud",
"game": "VALORANT",
"previewImageUrl": "https://...",
"startedAt": "2026-04-09T12:00:00Z",
"tags": ["English", "FPS"],
"url": "https://www.twitch.tv/shroud",
"scrapedAt": "2026-04-09T15:00:00Z"
}

Clips output

{
"id": "AbCdEfGh",
"title": "INSANE 1v5 ACE",
"viewCount": 500000,
"createdAt": "2026-04-05T18:00:00Z",
"durationSeconds": 30,
"url": "https://clips.twitch.tv/...",
"broadcasterLogin": "shroud",
"game": "VALORANT",
"curatorLogin": "viewer123",
"scrapedAt": "2026-04-09T15:00:00Z"
}

Technical advantages

  • No API key required — no OAuth setup, no token management
  • No browser/Playwright — Pure HTTP requests = fast execution, low memory (256 MB)
  • No proxy needed — public data access, no IP blocking
  • Stops cleanly at Twitch's page limit — when Twitch refuses a later page, the run keeps the rows it already has; if the refusal is an integrity-check error, live_streams and search say so in the run status
  • Resilient — Each channel/query is independent; one failure doesn't crash the run

Pricing

This actor uses pay-per-event pricing:

EventPrice
1 result scraped$0.02
1,000 results$20.00

No separate platform or compute charge: you pay only per result.

How many results each mode returns

Twitch's web GQL hands out at most 30 items per page, and (checked in October 2026) it refuses the second page of live streams and search results with an integrity check. So maxResults (1-500) is not reached in every mode:

ModeMost rows one run returns
channel_detailsOne per entry in channelLogins that Twitch finds; maxResults is not used
live_streams (with or without gameFilter)30, the first page; minViewers then filters within those 30
top_gamesOne per category among the top 30 live streams, up to maxResults
search30, the first page
clips / videosPer channel, maxResults ÷ number of entries in channelLogins (rounded down, at least 1), fetched 30 per page; if Twitch refuses a later page, that channel stops at what it already has

When Twitch answers the next page of live_streams or search with an integrity-check error, the run status says so.

Limitations

  • Twitch may change their backend without notice (fields may be added/removed)
  • Follower counts and viewer counts are real-time snapshots, not historical
  • live_streams and search return at most 30 rows per run, whatever maxResults says (see How many results each mode returns); running again fetches the current first page again, not the next one
  • Some fields may return null if Twitch modifies their schema

FAQ

Is there a Twitch API?

Twitch has an official API (Helix), but it requires OAuth app registration, client IDs, and ongoing token management. Twitch has also been deprecating endpoints and restricting access over time. This Twitch Scraper reads the GQL endpoints that twitch.tv's own web player uses instead, so you need no API key, OAuth app or tokens.

How much does it cost to scrape Twitch?

The Twitch Scraper is priced per result: $0.02 ($20 per 1,000). No separate platform or compute charge. You can start with Apify's free plan, which includes $5 of monthly credits.

Can I scrape Twitch in Python?

Yes. Install the Apify Python client (pip install apify-client), then use the ApifyClient to call the zhorex/twitch-scraper actor. See the Python code example above.

This scraper accesses publicly available data — the same information visible to anonymous visitors of twitch.tv. Always review your local laws and Twitch's terms of service.

What does this Twitch scraper cover?

The Twitch Scraper by Zhorex supports 6 modes (channel details, live streams, top games, search, clips, and videos), requires no API key, and runs without a browser or proxy.

Integrations & data export

The Twitch Scraper integrates with your existing workflow tools:

  • Google Sheets — Send scraped Twitch data directly to a spreadsheet
  • Zapier / Make / n8n — Automate workflows triggered by new Twitch data
  • REST API — Call the actor programmatically and retrieve results via Apify's REST API
  • Webhooks — Get notified when a scraping run finishes and process data in real time
  • Data formats — Download results in JSON, CSV, Excel, XML, or RSS

More scrapers by Zhorex

Streaming

Chinese Digital Intelligence Suite

B2B Reviews

Other Tools


💡 Reviews, good or bad, help other users decide: leave a rating.