Twitch Scraper - Channels, Streams, Clips & Streamer Leads
Pricing
from $4.00 / 1,000 channel scrapeds
Twitch Scraper - Channels, Streams, Clips & Streamer Leads
Scrape Twitch channels, live streams, games/categories, clips & VODs. Get follower counts, live status, viewers, titles, tags, plus streamer leads (business email, socials & lead score). Search or paste URLs; only-new monitor mode.
Pricing
from $4.00 / 1,000 channel scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Twitch Scraper — Channels, Live Streams, Clips, VODs & Streamer Leads
Extract complete Twitch data — streamer profiles, live streams, games/categories, clips and VODs — and turn every channel into a ready-to-contact influencer-marketing lead with a business email, social links and a 0–100 lead score.
No login, no API key, no browser — fast JSON extraction straight from Twitch's own public GraphQL back end, with inline queries that don't break when Twitch rotates its internal query hashes (the failure mode of most other Twitch scrapers).
Why this Twitch scraper?
Most Twitch scrapers return a thin slice (just live streams, or just a follower count) and break whenever Twitch rotates its persisted-query hashes. This actor ships the richest dataset in the category and is resilient by design:
| Data | Typical scrapers | This actor |
|---|---|---|
| Channel profile (followers, partner/affiliate, account age) | partial | ✅ full |
| Live status + current stream (title, game, viewers, tags, uptime, FPS) | partial | ✅ |
| Live-stream directory (top overall or by game, with follower counts) | partial | ✅ |
| Games / categories with live viewer counts | ❌ | ✅ |
| Clips (by channel or game, any time window) | partial | ✅ |
| Videos / VODs (past broadcasts, highlights, uploads) | partial | ✅ |
| Keyword search (channels, games, videos) | ❌ | ✅ |
| Streamer business email (parsed from the bio) | ❌ | ✅ opt-in |
| Social links (Instagram, YouTube, TikTok, X, Discord, Facebook…) | ❌ | ✅ opt-in |
| Lead score (0–100) per streamer | ❌ | ✅ opt-in |
| Only-new / status-change monitor mode | ❌ | ✅ |
| No start fee | ❌ many charge one | ✅ |
Use cases
- Influencer & sponsorship outreach — find streamers by game, size or keyword, then contact them directly with
businessEmailand theirinstagram/youtube/tiktok/twitter/discordlinks, ranked byleadScoreandfollowersCount. - Esports & gaming market research — track which games and categories are pulling viewers right now, and who the top live broadcasters are in each.
- Live audience monitoring — schedule recurring runs to watch when specific streamers go live/offline or switch games, and capture viewer counts over time.
- Content & trend discovery — pull top clips and VODs by channel or game for highlight reels, recaps and trend analysis.
- Creator analytics — build dashboards of follower reach, partner status, stream uptime and category mix across any list of channels.
How to use
- Sign up for Apify — the free plan is enough to try this actor.
- Open the Twitch Scraper, pick a mode, enter channel names / games / a search query (or paste Twitch URLs), and click Start.
- Watch results stream into the dataset table.
- Export as JSON, CSV, Excel, XML or RSS — or pull results programmatically via the Apify API.
Modes
| Mode | What you get | Key inputs |
|---|---|---|
| channels | Full streamer profiles + live status | channelUsernames, startUrls |
| liveStreams | Live directory (top overall or by game) | gameNames, language, maxResults |
| games | Categories with live viewer counts | gameNames (or top games) |
| clips | Top clips by channel or game | channelUsernames / gameNames, clipPeriod |
| videos | VODs (past broadcasts / highlights) | channelUsernames, videoType, videoSort |
| search | Search channels / games / videos | searchQuery, searchType |
| streamerLeads | Channels with lead enrichment forced on | channelUsernames |
Input
{"mode": "channels","channelUsernames": ["pokimane", "jynxzi", "shroud"],"includeStreamerLeads": true,"enrichLeadWebsites": false,"monitorMode": false}
Other examples:
{ "mode": "liveStreams", "gameNames": ["VALORANT", "Just Chatting"], "language": "en", "maxResults": 30 }
{ "mode": "clips", "channelUsernames": ["jynxzi"], "clipPeriod": "LAST_WEEK", "maxResults": 50 }
{ "mode": "search", "searchQuery": "speedrun", "searchType": "all" }
- mode —
channels,liveStreams,games,clips,videos,searchorstreamerLeads. - channelUsernames — Twitch logins (the name in
twitch.tv/<name>). - gameNames — game/category names (e.g.
VALORANT,Just Chatting). - searchQuery / searchType — keyword search;
channels,games,videosorall. - startUrls — paste channel, category, clip or video URLs to auto-route.
- maxResults — cap per channel/game/search. Live directory pages are capped at 30 per game by Twitch; games/clips/videos allow up to 100; channels mode is uncapped.
- language — keep only matching live streams (
en,es,de, …). - clipPeriod —
LAST_DAY,LAST_WEEK,LAST_MONTH,ALL_TIME. - videoType / videoSort —
ARCHIVE/HIGHLIGHT/UPLOAD/ALL, sorted byTIMEorVIEWS. - includeStreamerLeads (default false) — add business email + socials + lead score to each channel and output dedup'd
streamerLeadrecords. - enrichLeadWebsites (default false) — crawl a streamer's linked website (home + /contact + /about) for extra emails and phones.
- monitorMode / monitorKey — output only new/changed items across scheduled runs.
Output
One record per item, tagged by type (channel, stream, game, clip, video, searchResult, streamerLead). Example channel record with leads enabled:
{"type": "channel","id": "44445592","login": "pokimane","displayName": "pokimane","url": "https://www.twitch.tv/pokimane","description": "hi ♡ i stream sometimes 📧 Business inquiries: teampokimane@wmeagency.com","profileImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/…-profile_image-300x300.png","primaryColorHex": "#E1B5D9","createdAt": "2013-06-07T14:25:22.266Z","accountAgeYears": 13,"isPartner": true,"isAffiliate": false,"broadcasterType": "partner","followersCount": 9459632,"isLive": false,"currentGame": "Just Chatting","broadcastLanguage": "EN","lastBroadcast": { "id": "318153812695", "title": "GRWM / AMA !", "startedAt": "2026-06-17T20:05:47Z", "game": "Just Chatting" },"businessEmail": "teampokimane@wmeagency.com","emails": ["teampokimane@wmeagency.com"],"instagram": "https://www.instagram.com/pokimanelol/","youtube": "https://www.youtube.com/pokimane","tiktok": "https://www.tiktok.com/@poki","twitter": "https://twitter.com/pokimanelol","facebook": "https://www.facebook.com/pokimane","socialLinksCount": 5,"leadScore": 90,"scrapedAt": "2026-06-18T00:16:52.820Z"}
A stream record (live directory) carries title, viewersCount, game, language, tags, uptimeMinutes, averageFps, thumbnailUrl and the broadcaster's login, displayName and broadcasterFollowersCount.
Automate & schedule
Run this actor on autopilot and pull results into your own stack:
- Apify API — start runs, fetch datasets, manage schedules over REST.
- apify-client for JavaScript and apify-client for Python — official SDKs.
- Schedules — run it every few minutes/hours to track when streamers go live, watch a game's directory, or grow a lead list. Turn on monitor mode to pay only for new/changed items.
- Webhooks — trigger downstream actions (CRM import, Slack alert, Discord ping) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/twitch-scraper').call({mode: 'channels',channelUsernames: ['pokimane', 'jynxzi'],includeStreamerLeads: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} channels & streamer leads`);
Integrate with any app
Connect the dataset to 5,000+ apps — no code required:
- Make — multi-step automation scenarios.
- Zapier — push new streamer leads straight into your CRM.
- Slack — get pinged when a monitored streamer goes live.
- Google Drive / Sheets — auto-export every run to a spreadsheet.
- Airbyte — pipe results into your data warehouse.
- GitHub — trigger runs from commits or releases.
Use with AI assistants (MCP)
The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT or any agent framework through the Apify MCP server — ask your assistant to "find the top VALORANT streamers live right now and list their contact emails" and let it run this scraper for you.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
More scrapers from scrapesage
Build a complete creator-economy & influencer lead-gen stack — scrape every platform your prospects publish on:
- Spotify Scraper — artists, monthly listeners, tracks, playlists & podcasts.
- SoundCloud Scraper — tracks, artists, plays & creator contacts.
- YouTube Scraper — channels, videos & creator email leads.
- Patreon Scraper — creators, membership tiers & earnings estimates.
- Substack Scraper — newsletters, subscriber counts & author leads.
- Linktree Scraper — creator bio links, emails & socials.
- Civitai Scraper — generative-AI models, images & creator leads.
- Product Hunt Scraper — launches, makers & maker leads.
Tips
- Build a lead list fast: run
liveStreamsfor a game to discover who's live, copy thebroadcasterLogins intochannelUsernames, then runchannelswithincludeStreamerLeadsfor full contact data and lead scores. - Live directory depth: Twitch caps directory pages at 30 streams per game without a browser token. Pass several
gameNamesto get 30 each, or usechannelsmode (uncapped) for a known list of streamers. - Monitoring: combine Schedules with
monitorMode— channels re-emit only when they go live/offline or switch games, so you pay only for change. - Proxies: the default is RESIDENTIAL because Twitch returns streamer social links only to residential IPs. For modes that don't need socials (
liveStreams,games,clips,videos,search) you can switch to datacenter to save a little.
FAQ
Do I need a Twitch API key or login? No. This actor reads Twitch's public web GraphQL back end — the same data anonymous visitors see — with no key, OAuth or browser.
Can I get a streamer's email? When includeStreamerLeads is on, the actor extracts the business/booking email that streamers publish in their own bio, plus their public social links. With enrichLeadWebsites it also checks a linked website. It never accesses private data.
How do I scrape the top streamers for a game? Use liveStreams mode with the game in gameNames — you'll get the live directory (up to 30 per game) with viewers, titles, tags and follower counts.
Can I export to Google Sheets, CSV or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.
How do I get alerted when someone goes live? Run channels mode on a Schedule with monitorMode on; channels re-emit when their live status changes. Add a webhook or Slack/Zapier step to push the alert.
A field is null — why? Some channels don't publish socials, a website or a current game, and offline channels have no live stream. Fields are null only when the data doesn't exist, not because the scraper skipped them.
Is scraping Twitch legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (GDPR/CCPA for personal data) and Twitch's terms.
Need help?
Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.