Twitch Scraper — Streams, Games & Channels avatar

Twitch Scraper — Streams, Games & Channels

Pricing

$10.00 / 1,000 result scrapeds

Go to Apify Store
Twitch Scraper — Streams, Games & Channels

Twitch Scraper — Streams, Games & Channels

Scrape Twitch streamer profiles, streams, and game data without authentication. Extract follower counts, viewer counts, stream titles, game categories, and historical data. Search by game or keyword. Monitor gaming trends. Export to JSON/CSV.

Pricing

$10.00 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Web Data Labs

Web Data Labs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

12 hours ago

Last modified

Categories

Share

Twitch Scraper — Live Streams, Top Games & Channel Data

Extract live stream data, top games by viewer count, and detailed channel information from Twitch — no OAuth token required. Built on Twitch's public GQL API used by the Twitch web app itself.

Why Use This Twitch Scraper?

Twitch is the dominant live streaming platform with millions of concurrent viewers. Whether you're tracking game trends, discovering influencers, monitoring esports viewership, or researching the streaming market — this scraper gives you structured data without needing Twitch API credentials or developer registration.

No OAuth token needed. No Twitch developer account required. The scraper uses the same public GraphQL API that powers the Twitch website.

Features

  • Live streams — Get currently live streams across all categories or filtered by game
  • Top games — Real-time leaderboard of games ranked by live viewer count
  • Channel details — Profile info, follower counts, broadcaster type, and live status
  • No API credentials — Uses Twitch's public GQL endpoint (no OAuth/Client-ID needed)
  • JSON & CSV export — Download results in JSON, CSV, Excel, XML, or RSS
  • Schedule-friendly — Run hourly/daily to build time-series datasets of Twitch metrics

Input Parameters

ParameterTypeRequiredDefaultDescription
actionstringYesstreamsstreams for live streams, top-games for top games, channel for channel details
game_namestringNoFilter streams by game/category (e.g. "Minecraft", "Just Chatting")
usernamestringConditionalTwitch username (required for channel action)
maxItemsintegerNo25Maximum results to return (1–500, always 1 for channel)

Example Input

Get Top Live Streams

{
"action": "streams",
"maxItems": 50
}

Get Streams for a Specific Game

{
"action": "streams",
"game_name": "Valorant",
"maxItems": 30
}

Get Top Games by Viewers

{
"action": "top-games",
"maxItems": 100
}

Get Channel Details

{
"action": "channel",
"username": "shroud"
}

Output Format

Stream Result

{
"id": "43210987654",
"title": "Ranked grind — Road to Radiant",
"username": "tarik",
"display_name": "tarik",
"game_name": "Valorant",
"viewer_count": 28500,
"language": "en",
"started_at": "2026-03-30T14:22:00Z",
"thumbnail_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_tarik-320x180.jpg",
"tags": ["English", "FPS", "Competitive"]
}

Top Game Result

{
"name": "Just Chatting",
"viewer_count": 385000,
"box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/509658-144x192.jpg"
}

Channel Result

{
"login": "shroud",
"display_name": "shroud",
"description": "Professional gamer and streamer",
"followers": 10200000,
"broadcaster_type": "partner",
"profile_image_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/shroud-profile.png",
"is_live": true,
"current_game": "Counter-Strike 2",
"current_viewers": 42000,
"stream_title": "CS2 with the boys"
}

How to Use with Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
# Get top 50 live streams
run = client.actor("cryptosignals/twitch-scraper").call(run_input={
"action": "streams",
"maxItems": 50,
})
for stream in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{stream['display_name']} playing {stream['game_name']}{stream['viewer_count']} viewers")
# Track top games over time (schedule this hourly)
run = client.actor("cryptosignals/twitch-scraper").call(run_input={
"action": "top-games",
"maxItems": 20,
})
for game in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{game['name']}{game['viewer_count']:,} viewers")

Use Cases

Streaming Analytics & Market Research

  • Track which games are trending by viewer count over time
  • Monitor viewer distribution across a game's top broadcasters
  • Build time-series databases of Twitch metrics by scheduling hourly runs

Influencer Discovery & Sponsorship

  • Find mid-tier creators (1,000–10,000 viewers) for sponsorship outreach
  • Filter streamers by language to target specific geographic markets
  • Get follower counts and broadcaster type (partner/affiliate) for any channel

Game Industry Intelligence

  • Track whether a game announcement translates to Twitch viewership
  • Identify breakout games before they hit mainstream awareness
  • Compare viewer counts across competing titles during launch windows

Esports & Competitive Gaming

  • Monitor tournament viewership in real-time
  • Track pro player streaming schedules and viewer counts
  • Analyze which esports titles are gaining or losing audience share

Working Around Bot Detection

Twitch's GQL API is relatively permissive since it's the same endpoint the website uses. However, aggressive scraping from a single IP can trigger rate limiting or temporary blocks.

For high-frequency scraping (multiple runs per hour) or large result sets, use residential proxies to distribute requests. ThorData offers residential proxies that make requests appear to come from regular Twitch viewers, reducing the chance of blocks.

Integrations

  • Google Sheets — Export viewer data to spreadsheets for analysis
  • Zapier / Make.com — Get alerts when a specific streamer goes live or a game hits a viewer threshold
  • Slack / Discord — Notify your team about trending streams or games
  • API — Call programmatically from any language using the Apify API

FAQ

Is this legal? This scraper accesses Twitch's public GQL API, the same endpoint used by the Twitch website. It only collects publicly visible data. Review Twitch's Terms of Service for your specific use case.

Do I need a Twitch account? No. The scraper uses Twitch's public unauthenticated GQL endpoint.

How fresh is the data? Data is real-time — viewer counts and live status reflect the moment the scraper runs. Schedule the actor to run periodically for up-to-date monitoring.

Can I filter streams by language? Not directly via input parameters, but you can filter the output dataset by the language field after the run completes.


⭐ Like this actor? Leave a review!

If this scraper saved you time, please leave a quick review on the Apify Store listing. Even a one-line review helps other developers find this tool.

How to review: Go to the actor page → scroll to Reviews → click 'Write a review'.