Scrape Twitch channel profiles, live streams, top games, clips, and videos. No login, no API key. Covers channel lookup, channel search, top live streams, per-game streams, top games, clips, and VODs.
- Sponsorship research: Check a streamer's follower count and live viewer numbers before signing a deal, and compare candidates in one sheet.
- Esports tracking: See which games are pulling the most viewers right now, so rising titles show up before they trend.
- Clip sourcing: Pull a channel's top clips from a chosen time window to find highlight-worthy moments without watching hours of footage.
- Category leaderboards: Build a ranked list of the biggest channels in a category to size an audience before a pitch.
- No account needed: Every mode runs without a Twitch login, password, or API key.
- Click Try for free at the top of this page.
- Pick a mode: channel lookup, channel search, top live streams, streams by game, top games, clips, or videos.
- Fill in Targets: channel names, search phrases, or game names, depending on the mode.
- Set Max results to cap how many rows come back.
- Click Start. The actor collects every matching record and writes one flat row per item.
- Download your results: Export as Excel, CSV, JSON, or HTML from the Output tab.
| Field | Type | Required | Description |
|---|---|---|---|
mode |
enum | Yes | What to scrape: channels, searchChannels, topStreams, gameStreams, topGames, clips, or videos. |
targets |
array of strings | No | Channel names or profile links, search phrases, or game names, depending on the mode. Not used by top live streams or top games. |
clipPeriod |
enum | No | Time window for ranking clips by views: last day, last week, last month, or all time. Defaults to all time. |
includeRecentVideos |
boolean | No | Attach each channel's most recent videos as a nested list on the channel row. Channels mode only. |
recentVideosLimit |
integer | No | How many recent videos to attach per channel, from 0 to 10. |
includeTopClips |
boolean | No | Attach each channel's top clips as a nested list on the channel row. Channels mode only. |
topClipsLimit |
integer | No | How many top clips to attach per channel, from 0 to 10. |
maxResults |
integer | No | Maximum number of rows to return. Higher values are trimmed to Twitch's per-request cap. Defaults to 30. |
proxyConfiguration |
object | No | Proxy settings. The default works fine for this Actor. |
Each row is one channel, stream, game, clip, or video, tagged by rowType. All fields are flat with no nested data (unless enrichment is turned on), so the file opens cleanly in any spreadsheet program.
{
"rowType": "channel",
"sourceMode": "channels",
"sourceTarget": "shroud",
"sourceUrl": "https://www.twitch.tv/shroud",
"channelId": "37402112",
"login": "shroud",
"displayName": "shroud",
"description": "I'm back baby",
"followerCount": 11300579,
"isPartner": true,
"isAffiliate": false,
"isLive": false,
"profileImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/c754eebf-745b-4e0a-814a-10bcaecaabbc-profile_image-300x300.png"
}| Field | Type | Description |
|---|---|---|
| rowType | string | Row kind: channel, stream, game, clip, or video. |
| sourceMode | string | Which mode produced this row. |
| sourceTarget | string | The channel, game, or search phrase that produced this row. |
| sourceUrl | string | Direct link to the channel, game directory, clip, or video. |
| scrapedAt | string | When this row was collected, in ISO 8601 UTC. |
| followerCount | number | Total followers on the channel. |
| isPartner / isAffiliate | boolean | Twitch partner or affiliate status. |
| isLive | boolean | Whether the channel is currently streaming. |
| viewersCount | number | Live viewer count for stream rows. |
| gameName | string | Game or category the row belongs to. |
| viewCount | number | Views on a clip or video. |
| durationSeconds | number | Length of a clip or video, in seconds. |
$1.30 per 1,000 results. No monthly subscriptions and no minimum commits. New Apify accounts include $5 of free usage, so you can try it before you pay.
You only pay for the records you collect. A typical run of 100 results completes in under 30 seconds.
Create a .env file from .env.example, add your Apify API token, and run:
npm install
npm startThe script uses the Apify API client to start the Twitch Scraper actor and fetch results.
- Start small: A first run of 5 to 10 results shows the output shape before scaling up.
- Use the right mode: Channel lookup and search return profile data, while streams and games modes return live activity.
- Turn on enrichment only when needed: Recent videos and top clips add extra fields per channel, so leave them off for faster, cheaper runs.
- Cap your spend: Set
maxResultsto keep any run within budget.
Does it need a Twitch account or login? No. Every mode runs without a login, password, or API key. Just pick a mode and click Start.
How fresh is the data? Every run reads live data at the moment it runs, so viewer counts, follower counts, and live status are always current.
Which modes are supported? Seven: channel lookup, channel search, top live streams sitewide, live streams for a specific game, the top games directory, clips, and videos.
Can it scrape Twitch chat messages? No. Chat messages and full follower lists are out of scope for this Actor.
For bug reports, missing fields, or feature requests, open an issue under the Issues tab, or visit the Twitch Scraper page on Apify.
