Twitch Channel Scraper (Followers, Viewers, Emails)
Pricing
from $1.40 / 1,000 channel scrapeds
Twitch Channel Scraper (Followers, Viewers, Emails)
Paste Twitch channel names or links and get followers, live status and viewers, game, language, partner status, last stream, bio, business emails and social links from the panels. No login. Export to Excel, CSV or JSON.
Pricing
from $1.40 / 1,000 channel scrapeds
Rating
0.0
(0)
Developer
Julio Barcellos Rangel
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Twitch Channel Scraper takes a list of Twitch channel names or links and returns each channel's stats and contact details: followers, live status and viewers, game, language, partner status, last stream, bio, business emails and social links from the panels. It is a Twitch streamer scraper for brands, agencies and esports teams who look for sponsorship partners or track channel growth. Use it as a Twitch follower count checker or to find Twitch streamer emails and export them to Excel, CSV or JSON, with no login.
What does Twitch Channel Scraper do?
You paste Twitch channels. The scraper asks Twitch for the same public channel data the twitch.tv website shows, 20 channels per request, and saves one row per channel.
It accepts these forms, mixed in the same list:
| Input form | Example |
|---|---|
| Channel name | pokimane |
| Channel name with @ | @pokimane |
| Channel link | https://www.twitch.tv/kaicenat |
Names are lowercased and duplicates are removed, so Pokimane, @pokimane and twitch.tv/pokimane count as one channel.
For each channel you get the follower count, whether it is live right now (with viewers, title, game and tags), the title and category currently set, the last broadcast, partner and affiliate status, the bio, any email addresses written in the bio or panels, social links found in the panels, and the profile and banner images. No Twitch account, OAuth token or API key is needed.
What data can you extract?
| Field | What it means | Example |
|---|---|---|
input | The channel name the scraper read from your line | pokimane |
login | Twitch login name | pokimane |
url | Channel link | https://www.twitch.tv/pokimane |
channelId | Twitch numeric user ID | 44445592 |
displayName | Display name | pokimane |
followers | Number of followers | 9442180 |
description | Channel bio | hi ♡ i stream sometimes 📧 Business inquiries: … |
isLive | Live at the moment of the run | true |
viewers | Current viewers, only when live | 9904 |
streamTitle | Title of the live stream, only when live | [some1saydrops?] NEW WEEK NEW ME! |
streamGame | Game or category of the live stream | AION 2 |
streamStartedAt | When the live stream started | 2026-10-12T16:59:01Z |
streamTags | Tags of the live stream (empty when offline) | ["English", "DropsEnabled"] |
language | Broadcast language from the channel settings | EN |
currentTitle | Stream title currently set on the channel (also when offline) | im sorry |
currentGame | Category currently set on the channel | Just Chatting |
lastStreamAt | Start time of the last broadcast | 2026-09-28T20:38:29.567135Z |
lastStreamTitle | Title of the last broadcast | im sorry |
lastStreamGame | Category of the last broadcast | Just Chatting |
isPartner | Twitch Partner | true |
isAffiliate | Twitch Affiliate | false |
emails | Email addresses found in the bio and panel texts | ["teampokimane@wmeagency.com"] |
socials | First panel link per network: youtube, instagram, twitter, tiktok, discord, facebook, kick, linktree | {"tiktok": "https://www.tiktok.com/@poki"} |
panelLinks | Every unique link in the channel panels | ["https://streamelements.com/pokimane/tip", …] |
profileImageUrl | Profile picture (300 px) | https://static-cdn.jtvnw.net/jtv_user_pictures/…-profile_image-300x300.png |
bannerImageUrl | Channel banner image | https://static-cdn.jtvnw.net/jtv_user_pictures/…-profile_banner-480.jpeg |
createdAt | When the channel account was created | 2013-06-07T14:25:22.266478Z |
scrapedAt | When the row was collected | 2026-10-12T20:22:09.582Z |
error | Only on error rows: why the channel was not returned | Channel not found or banned |
The live examples (viewers and the stream… fields) come from a real earlier run on a channel (shroud) that was live at the time; the other examples are pokimane. When a channel is offline, viewers, streamTitle, streamGame and streamStartedAt are null and streamTags is empty.
How to use Twitch Channel Scraper
- Open Twitch Channel Scraper in Apify Console (sign in or create an Apify account).
- In Channels, paste channel names or links, one per line. Thousands at once are fine.
- Leave Proxy on the default Apify Proxy unless you have a reason to change it.
- Click Start. The log shows how many channels were returned.
- Open the Output tab, then click Export to download JSON, CSV, Excel or HTML.
- Optional: save the input as a task and schedule it to track follower growth or see who is live at a given time.
Input
| Field | Type | Default | Description |
|---|---|---|---|
channels | array of strings (required) | ["pokimane", "https://www.twitch.tv/kaicenat"] | Twitch channel names or links (twitch.tv/name). |
proxy | object | {"useApifyProxy": true} | Apify Proxy settings. |
There is no "max results" setting: each channel returns one row. A channel name must be 2 to 25 letters, numbers or underscores. Lines that are not a valid name or twitch.tv link get an error row instead of being skipped silently.
Example input:
{"channels": ["pokimane","https://www.twitch.tv/kaicenat","@shroud"],"proxy": {"useApifyProxy": true}}
Output example
A real row from the latest run:
{"input": "pokimane","login": "pokimane","url": "https://www.twitch.tv/pokimane","channelId": "44445592","displayName": "pokimane","followers": 9442180,"description": "hi ♡ i stream sometimes 📧 Business inquiries: teampokimane@wmeagency.com","isLive": false,"viewers": null,"streamTitle": null,"streamGame": null,"streamStartedAt": null,"streamTags": [],"language": "EN","currentTitle": "im sorry","currentGame": "Just Chatting","lastStreamAt": "2026-09-28T20:38:29.567135Z","lastStreamTitle": "im sorry","lastStreamGame": "Just Chatting","isPartner": true,"isAffiliate": false,"emails": ["teampokimane@wmeagency.com"],"socials": {"youtube": "https://www.youtube.com/c/pokimane","twitter": "http://www.twitter.com/pokimanelol","instagram": "http://www.instagram.com/imane","tiktok": "https://www.tiktok.com/@poki","discord": "https://www.discord.gg/poki"},"panelLinks": ["https://streamelements.com/pokimane/tip","https://secure.twitch.tv/products/pokimane/ticket","https://www.youtube.com/c/pokimane","http://www.twitter.com/pokimanelol","http://www.instagram.com/imane","https://www.tiktok.com/@poki","https://www.discord.gg/poki"],"profileImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/912232e8-9e53-4fb7-aac4-14aed07869ca-profile_image-300x300.png","bannerImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/cfaf7ac8-56d9-4f3a-b5b0-328e90976ea3-profile_banner-480.jpeg","createdAt": "2013-06-07T14:25:22.266478Z","scrapedAt": "2026-10-12T20:22:09.582Z"}
Real error rows from an earlier run. They are not charged:
[{ "input": "bad name!", "error": "Not a Twitch channel name or link" },{ "input": "nonexistentuser_zz981", "error": "Channel not found or banned" }]
How much does it cost?
Twitch Channel Scraper uses pay per event pricing. You pay $2.00 per 1,000 channels returned ($0.002 per channel) on the Free plan. Platform usage (compute and proxy) is included in that price.
| Apify plan | Price per 1,000 channels |
|---|---|
| Free | $2.00 |
| Bronze (10% off) | $1.80 |
| Silver (20% off) | $1.60 |
| Gold and higher (30% off) | $1.40 |
Worked examples on the Free plan:
- 200 streamers on a sponsorship shortlist = $0.40
- 5,000 channels from a gaming niche = $10.00
- 1,000 channels checked every day for 30 days = 30,000 channels = $60.00 ($42.00 on Gold)
What you are not charged for:
- Error rows: lines that are not a Twitch name or link, channels that do not exist or are banned, and channels in a request Twitch did not answer.
- Retries. A channel is charged once, only when it is returned.
- Duplicate channels in your list.
Use cases
- Sponsorship and influencer outreach. Build a list of streamers with follower counts, partner status, business emails and social links in one table.
- Follower growth tracking. Run the same list every day and chart
followersper channel over time. - Live monitoring. Schedule runs to see which channels are live, what they play and how many viewers they have at that moment.
- Esports and gaming market research. Compare channels by language, current category and last stream date.
- Activity checks. Use
lastStreamAtto drop channels that have not streamed for months from a partner list. - Cross-platform mapping. Get each streamer's YouTube, Instagram, X (Twitter), TikTok, Discord, Facebook, Kick or Linktree link from the panels.
- CRM enrichment. Add Twitch IDs, follower counts and avatars to existing creator records.
Tips and limits
- Emails come from text only. The scraper looks for email addresses in the channel bio and in the text of the channel panels. Emails shown only inside panel images, behind links or on other websites are not found.
- Social links come from panels.
socialsis filled from links in the channel panels, matched by domain, keeping the first link per network. It is a best-effort match, so checkpanelLinksfor the full list of links. - Live data is a snapshot.
isLive,viewersand thestream…fields describe the moment of the run. Run again to refresh them. - What is not collected. Videos (VODs), clips, chat, schedules, follower lists and subscriber counts are not part of the output.
- You need the channel names. The scraper does not search Twitch or list channels by game. Paste the channels you want.
- Batches and retries. Channels are requested 20 at a time. Each request gets up to 5 tries with a growing pause. If Twitch does not answer a batch after 5 tries, each channel in it gets the error "Twitch did not answer"; run them again.
- Error rows. "Not a Twitch channel name or link" is for lines that are not a valid name (2 to 25 letters, numbers or underscores) or
twitch.tvlink. "Channel not found or banned" is for channels Twitch did not return. - Text fields as typed.
languagecomes as Twitch stores it (for exampleEN), and links keep their originalhttporhttps.
Use it from the API, Python or JavaScript
JavaScript (Node.js) with the official apify-client package:
const { ApifyClient } = require('apify-client');const client = new ApifyClient({ token: 'YOUR_TOKEN' });const input = { channels: ['pokimane', 'https://www.twitch.tv/kaicenat'] };(async () => {const run = await client.actor('juliob.rangel/twitch-channel-scraper-fast').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);})();
Python with the official apify-client package:
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run_input = {'channels': ['pokimane', 'https://www.twitch.tv/kaicenat']}run = client.actor('juliob.rangel/twitch-channel-scraper-fast').call(run_input=run_input)items = client.dataset(run['defaultDatasetId']).list_items().itemsfor item in items:print(item.get('login'), item.get('followers'), item.get('emails'))
Plain HTTP, running the scraper and getting the rows in one call:
curl -X POST "https://api.apify.com/v2/acts/juliob.rangel~twitch-channel-scraper-fast/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"channels": ["pokimane"]}'
The scraper also works with Make, Zapier and n8n, can export results to Google Sheets, can call your webhook when a run finishes, and can be used by AI agents through the Apify MCP server.
FAQ
Do I need a Twitch login, OAuth token or API key?
No. The scraper reads public channel data without logging in. You only need an Apify account to run it.
Can I export Twitch channel data to Excel or CSV?
Yes. Open the Output tab after the run and export as Excel, CSV, JSON or HTML, or read the dataset through the API.
How many channels can I scrape in one run?
Thousands. There is no fixed cap in the scraper; channels are requested 20 at a time, so bigger lists take longer.
How does it find streamer emails?
It reads the bio and the text of the channel panels and keeps every email address written there, in lowercase and without duplicates. If a streamer did not write an email as text, emails is empty.
Is it legal to scrape Twitch channels?
The scraper only collects publicly available data. You are responsible for complying with Twitch's terms and with privacy laws such as GDPR and LGPD. Personal data such as emails needs a legitimate reason to be collected and used.
Why did I get a row with an error field?
The line was not a valid Twitch name or link, the channel does not exist or is banned, or Twitch did not answer that batch. Error rows are not charged.
Can I get subscriber counts or past videos?
No. Subscriber counts, VODs and clips are not part of the output. You get follower counts, live data and the last broadcast.
Related scrapers
- YouTube Channel Info Scraper (Subscribers, Views, Links)
- TikTok Profile Stats Scraper (Followers, Likes, Bio)
- Instagram Profile Stats Scraper (Followers, Bio, Posts)
- Snapchat Profile Scraper (Subscribers, Spotlight Views, Bio)
- Website Contact Details Scraper (Emails, Phones, Socials)
Extrator de Canais da Twitch (PT-BR)
Cole nomes ou links de canais da Twitch e receba seguidores, se está ao vivo e quantos espectadores, jogo, idioma, parceria, última live, bio, e-mails comerciais e redes sociais dos painéis. Sem login. Você paga só por canal retornado.