· 14 min read
TwitchTracker Analytics Scraper: Up to 1,000 Free Results a Month
Each channel record carries 24 fields, including current active subscriber counts, algorithmic rank, and trailing 30-day average viewership. TwitchTracker Analytics Scraper extracts these performance indicators without requiring login credentials, browser cookies, or proxy management. It provides 30-day analytics for games or categories and captures aggregate live or 7-day statistics for 35 stream languages. This is built for analysts who need creator benchmarks or category trends; it is not for those who need live chat logs or historical clip galleries, which the records do not include.
Try it: open TwitchTracker Analytics Scraper on Apify, sign in on the free plan and run the prefilled example.
Can you try TwitchTracker Analytics Scraper before paying?
Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of TwitchTracker Analytics Scraper a month, before run-start charges and platform usage.
The example request further down caps maxItems at 10, so a first run returns at most 10 results and costs at most $0.05 in result charges. That is enough to see the real shape of the data before deciding anything.
TwitchTracker Analytics Scraper was last updated on 2026-08-03. It is one of 1,724 Actors CrawlerBros publishes on Apify, which together have 722,845 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.
What does it cost to run TwitchTracker Analytics Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
The maxItems control is the primary driver of your bill because result charges apply only to items written to the dataset. To keep costs predictable on your first run, the example input caps maxItems at 10, which limits result charges to $0.05.
How do you run TwitchTracker Analytics Scraper from the API?
The schema marks 1 of its 9 controls as required: mode. The payload below uses the schema's own prefilled values, so it runs as written once you substitute your API token.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~twitchtracker-analytics-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"topStreamers","channelNames":["kaicenat"],"gameNames":["Just Chatting"],"language":"english","maxItems":10}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "topStreamers",
"channelNames": [
"kaicenat"
],
"gameNames": [
"Just Chatting"
],
"language": "english",
"maxItems": 10
}
run = client.actor("crawlerbros~twitchtracker-analytics-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"mode": "topStreamers",
"channelNames": [
"kaicenat"
],
"gameNames": [
"Just Chatting"
],
"language": "english",
"maxItems": 10
}
const run = await client.actor('crawlerbros~twitchtracker-analytics-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
The synchronous endpoint holds the connection open until the run finishes, which is convenient for small batches and wrong for large ones. For anything long running, start the run asynchronously and poll, or attach a webhook, so a dropped connection does not cost you the results.
Which TwitchTracker Analytics Scraper inputs matter, and which can you skip?
The mode control is the only required input and determines the structure of the entire result set. For your first run, focus on populating channelNames for specific lookups or leave the secondary leaderboard filters like category set to any for broader coverage.
mode(string): What to fetch. Default:"topStreamers".channelNames(array): One or more Twitch usernames to look up, e.g.kaicenat,shroud,hasanabi. Default:[].gameNames(array): Game/category names (e.g.Just Chatting,League of Legends) or numeric Twitch category IDs (e.g.509658). Default:[].sortBy(string): Which leaderboard to browse. Only used when mode=topStreamers. Default:"ranking".subSortBy(string): Which subscribers leaderboard to browse. Only used when mode=topSubscribers. Default:"current".language(string): For mode=topStreamers/topSubscribers (subSortBy=current only): optional language filter. For mode=language: the language to fetch aggregate statistics for (required). Default:"any".category(string): Optionally restrict the leaderboard to a channel category. Only used when mode=topStreamers. Default:"any".statCategory(string): Which site-wide Twitch statistics page to fetch. Only used when mode=siteStatistics. Default:"overview".maxItems(integer): Hard cap on emitted records. For mode=channel/game this caps the number of resolved lookups; for mode=topStreamers/topGames/topSubscribers/language it caps leaderboard rows. Default:20.
Fixed-choice controls: mode accepts topStreamers (Top streamers leaderboard), channel (Channel lookup (by username)), game (Game / category lookup), topGames (Top games leaderboard), language (Per-language Twitch statistics), topSubscribers (Top subscribers leaderboard), siteStatistics (Site-wide Twitch statistics); sortBy accepts ranking (Overall rank), viewership (Average viewers (30 days)), peak-viewers (All-time peak viewers), hours-watched (30 days), followers-growth (Followers gained (30 days)), most-followers (Total followers), most-views (Total channel views), live (Currently live); subSortBy accepts current (Current active subscriptions), allTime (All-time peak subscriptions); language accepts 36 values (default any), including english, any (Any language (no filter)), spanish, russian; category accepts any (Any category (no filter)), personality (IRL), esports; statCategory accepts overview, viewers, channels, games, activeStreamers (Active streamers), streamTime (Stream time), watchTime (Watch time).
What does TwitchTracker Analytics Scraper return?
The records are designed for tracking streamer growth and comparing viewership shares across different categories and languages. They do not contain binary media assets like VODs or raw video streams, so they are not suitable for building local video archives.
Output: per-channel (mode = channel)
channelName,displayNamechannelId- TwitchTracker's internal channel IDavatarUrl,bannerUrllanguage,createdAt- Twitch account creation datepartnerStatus-PartnerorAffiliate(omitted if neither)rank- TwitchTracker's algorithmic rank based on the trailing 30 daysavgViewers,maxViewers,minutesStreamed,hoursStreamed,hoursWatchedfollowersGained30d- can be negative if unfollows outpaced new followsfollowersTotalcurrentActiveSubs,paidActiveSubs,giftedActiveSubs,allTimeHighActiveSubstwitchUrl,sourceUrlrecordType: "channel",scrapedAt
Output: per-game (mode = game)
gameId(when looked up by numeric ID) orgameName(when looked up by name)avgViewers,avgChannels,rank,hoursWatched- trailing 30 daystwitchCategoryUrl- Twitch's own category directory page (only when the game was looked up by name)sourceUrlrecordType: "game",scrapedAt
Output: per-streamer row (mode = topStreamers)
channelName,displayName,avatarUrlrank- overall algorithmic rank;sortPosition- position within the requested sort orderavgViewers,timeStreamedHours,allTimePeakViewers,hoursWatched,followersGained30d,followersTotal,totalViewscurrentGame,liveViewers,gameSharePercent,viewershipSharePercent- only present whensortBy: live(a real-time snapshot instead of the 30-day leaderboard)leaderboardSort,languageFilter,categoryFilter- the filters actually applied to this rowtwitchUrl,sourceUrlrecordType: "streamer",scrapedAt
Output: per-game row (mode = topGames)
rank,gameId(omitted for Twitch's uncategorized "Variety" bucket),gameName,boxArtUrlavgViewers,weeklyChangePercent(signed - negative means viewership dropped),twitchSharePercenttwitchCategoryUrl,sourceUrlrecordType: "game",scrapedAt
Output: per-channel row (mode = topSubscribers)
rank,channelName,displayName,avatarUrlcurrentActiveSubs,paidActiveSubs,primeActiveSubs,giftedActiveSubs,tier1ActiveSubs,tier2ActiveSubs,tier3ActiveSubs- only whensubSortBy: current(the default)allTimePeakActiveSubs,achievementDate,currentActiveSubs,isActiveStreamer- only whensubSortBy: allTimesubscriberSort,languageFilter(current only - TwitchTracker doesn't support combining the all-time leaderboard with a language filter)twitchUrl,sourceUrlrecordType: "subscriberLeaderboard",scrapedAt
Output: per-language aggregate (mode = language)
languageliveViewers,avgViewers7d,liveChannels,avgChannels7dtopLiveStreams[]- up to 10 entries:channelName,displayName,avatarUrl,viewers,twitchUrltopChannelsByViewership[]- up to 10 entries with the same shapesourceUrlrecordType: "language",scrapedAt
Output: site-wide statistics (mode = siteStatistics)
statCategory- the category that was fetchedoverview:liveViewers,avgViewers7d,liveChannels,avgChannels7dviewers:liveViewers,avgViewers24h,avgViewers7d,allTimePeakViewers,allTimePeakViewersDatechannels:liveChannels,avgChannels24h,avgChannels7d,allTimePeakChannels,allTimePeakChannelsDategames:liveGames,gamesStreamedPastWeekactiveStreamers:totalStreamersThisMonth,allTimePeakStreamers,allTimePeakStreamersDate,avgActiveStreamersDaily,activeStreamersYesterdaystreamTime:totalStreamHoursThisMonth,allTimePeakStreamHours,allTimePeakStreamHoursDate,avgStreamHoursDaily,streamHoursYesterdaywatchTime:totalWatchHoursThisMonth,allTimePeakWatchHours,allTimePeakWatchHoursDate,avgWatchHoursDaily,watchHoursYesterdaysourceUrlrecordType: "siteStatistics",scrapedAt
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open TwitchTracker Analytics Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Select a value for the mode control, such as channel for specific lookups or topGames for global rankings.
- Enter Twitch handles into the channelNames array if you are using the channel mode to retrieve 24-field profile records.
- Define the sorting logic for the topStreamers mode by selecting a sortBy option like hours-watched or followers-growth.
- Set the language filter to any of the 35 available options if your analysis is restricted to a specific region like korean or spanish.
- Input a maxItems value between 1 and 500 to control the total number of records written to your dataset.
- Verify the recordType field in the resulting dataset matches your expected mode, such as game for category analytics.
- Confirm that the sourceUrl field is present on the records to allow for manual validation of the scraped data points.
How do you apply it? Three worked playbooks
These are TwitchTracker Analytics Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Influencer/creator analytics
Outcome: Benchmark a streamer's viewership, growth, and subscriber trends
Configure: mode: "channel", channelNames: ["kaicenat", "shroud"], maxItems: 10
Working method: Run a targeted lookup for specific usernames to extract their trailing 30-day performance and current subscriber tiers.
Deliverable: A dataset containing detailed 30-day analytics, subscriber splits, and follower growth for specified Twitch creators.
Stop condition: The rank field is missing from the output, signifying the channel has been inactive for over 30 days.
Use case 2: Esports & agency scouting
Outcome: Find rising or top-ranked streamers by category and language
Configure: mode: "topStreamers", sortBy: "followers-growth", language: "spanish", category: "esports", maxItems: 50
Working method: Initiate a leaderboard scrape using growth-based sorting combined with Spanish language and esports filters.
Deliverable: A filtered list of 50 high-growth streamers including their display names, avatar URLs, and current ranking status.
Stop condition: The languageFilter field in the output does not match the Spanish input, indicating a filter override.
Use case 3: Market research
Outcome: Track which games are gaining or losing Twitch viewership week over week
Configure: mode: "topGames", maxItems: 100
Working method: Extract the top games leaderboard to compare the weeklyChangePercent field across the most-watched categories.
Deliverable: A structured list of 100 game categories ranked by average viewers with their associated week-over-week growth percentages.
Stop condition: The weeklyChangePercent field is omitted, suggesting the category has insufficient historical data for comparison.
What breaks, and how do you design around it?
When historical trend charts are required, use the siteStatistics mode to capture top-line monthly figures instead of attempting to scrape client-side chart blobs. For channels that have not streamed in 30 days, rely on the static profile fields like language and createdAt.
When should you not use TwitchTracker Analytics Scraper?
Do not use this Actor if you need to download raw video files or archive real-time chat messages. For projects requiring raw video metadata or the ability to search for live channels directly on the platform, Twitch Scraper is the appropriate tool. If your project is monitoring the Kick platform instead, use Kick Channel Scraper. For sports performance analytics rather than gaming metrics, StatMuse Scraper or Baseball Savant Scraper (Statcast) provide specialized statistics that TwitchTracker does not track.
What should you check before trusting the output?
- Verify that currentActiveSubs is present in the output when running mode channel for active streamers.
- Check that rank is non-null for any channel that has streamed within the last 30 days.
- Ensure weeklyChangePercent is a signed value on topGames records to validate growth and decline trends.
- Confirm that recordType matches subscriberLeaderboard when subSortBy is set to current or allTime.
- Validate that languageFilter is populated on streamer records if a language filter was applied at run start.
None of this proves a record is correct. It gives a scheduled TwitchTracker Analytics Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
What is the most cost-effective way to test this scraper?
Apify's free plan includes $5.00 of monthly usage with no credit card, which covers up to 1,000 results of this Actor. The example input is configured with a maxItems cap of 10, meaning your first run costs at most $0.05 in result charges plus platform usage.
Why do some streamers return fewer analytics fields than others?
TwitchTracker's 30-day analytics, such as rank and average viewers, require the channel to have streamed within the last 30 days. Inactive channels still return every profile field TwitchTracker can populate, such as currentActiveSubs, language, and account creation date, but the rolling statistics are omitted.
How do rank and sortPosition differ in the leaderboard output?
The rank field is the overall algorithmic rank based on the trailing 30 days. The sortPosition is the row's specific location in the leaderboard you requested via the sortBy control; these numbers only match if you are using the ranking sort order.
Are proxies or Twitch credentials required for data collection?
No login, no cookies, and no proxy are required. The Actor reads TwitchTracker's public pages and JSON endpoints directly, which simplifies the setup process for practitioners who need to avoid the complexity of browser session management or authentication.
Can I filter the all-time subscriber leaderboard by language?
No, TwitchTracker does not support combining the all-time peak subscriber leaderboard with a language filter. If you set subSortBy to allTime, any value in the language control is ignored and will not appear in the resulting dataset records.
Where to go next
When you are ready to run it, open TwitchTracker Analytics Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the TwitchTracker Analytics Scraper Actor page for the current input schema, pricing tier, and run history.
Other Actors we maintain for related data:
- Kick Channel Scraper: Scrape Kick.com streamer channels - profile info, follower counts, live status, VODs, clips, gift leaderboards, custom emotes, and the full category/subcategory taxonomy.
- Twitch Scraper: Scrape Twitch, search channels/categories/videos/clips, fetch top live streams, channel info, top games, VOD metadata, and clip details.
- StatMuse Scraper: Scrape StatMuse sports statistics - ask natural language questions about NBA, NFL, MLB, and NHL stats.
- YouTube Channel Scraper: Scrape YouTube channel info and video listings.
- Wikimedia Pageviews Scraper: Scrape Wikipedia & Wikimedia pageview metrics from the official REST API.
- Similarweb Scraper: Get website traffic analytics, rankings, traffic sources, top keywords, and AI traffic data from SimilarWeb.
- Baseball Savant Scraper (Statcast): Scrape Baseball Savant (baseballsavant.mlb.com) for Statcast data - expected stats (xBA, xSLG, xwOBA, xERA), sprint speed leaderboards, and percentile rankings for all MLB players.
- OpenDota Dota 2 Scraper: Scrape OpenDota.com - the open-source Dota 2 analytics platform.
Related guides:
- Kick Channel Scraper: 66 Data Fields, Up to 1,000 Free Results/Month
- NCAA.com Stats Scraper: 3 Practical Automation Playbooks
- Deploying YouTube Channel Scraper for Targeted Creator Intelligence
- Building a Custom Intelligence Pipeline with Four Apify Actors
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-02.
Actor last updated by its maintainers on 2026-08-03.
Run outcome figures cover the 30 day public window ending 2026-10-02.
Featured actors
TwitchTracker Analytics Scraper
Scrape TwitchTracker.com channel analytics, category/game stats, top-streamer and top-subscriber leaderboards, top-games rankings, per-language Twitch statistics, and site-wide Twitch statistics. No login, no cookies, no proxy required.
Run on Apify ↗