Twitch Channel Scraper avatar

Twitch Channel Scraper

Pricing

from $4.00 / 1,000 channel scrapeds

Go to Apify Store
Twitch Channel Scraper

Twitch Channel Scraper

Scrape public Twitch channels by username or URL — profile, live status, follower count, partner/affiliate type, recent videos (VODs), and top clips. HTTP-only via the Twitch GraphQL API, no login. MCP-ready.

Pricing

from $4.00 / 1,000 channel scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Scrape public Twitch channels by username or URL and get a clean, structured record for each one — profile details, live status, follower count, partner/affiliate type, recent videos (VODs), and top clips. HTTP-only via the Twitch GraphQL API, no login required, and MCP-ready for AI agents.

What it does

Give it a list of Twitch channels (usernames like shroud, or full URLs like https://www.twitch.tv/pokimane). For each channel it returns one record containing:

  • Identity — login, display name, channel ID, bio, account creation date, account age.
  • Status — partner / affiliate flags, broadcaster type.
  • Audience — total follower count.
  • Live state — whether the channel is live right now, plus live title, game/category, current viewer count, and stream start time. When offline, it returns the last-set title and category instead.
  • Most recent broadcast — title and start time.
  • Recent videos (VODs) — newest first, with view counts, duration, publish date, and game.
  • Top clips — ranked by views within your chosen time window.
  • Branding — profile avatar, banner, offline image, and channel color.

When to use it

  • Influencer / sponsorship scouting — size up a creator's audience and current activity before reaching out.
  • Streamer analytics & dashboards — track follower counts and live status across many channels.
  • Esports & gaming research — pull rosters of channels and what they're streaming.
  • AI agents — a clean tool call: channel in, structured JSON out.

Not for scraping Twitch search results, categories/games, chat messages, or VOD transcripts — those are separate jobs.

Output

One record per channel. Example (detailed format, trimmed):

{
"channelUrl": "https://www.twitch.tv/shroud",
"login": "shroud",
"channelId": "37402112",
"displayName": "shroud",
"description": "I'm back baby",
"createdAt": "2012-11-03T15:50:32.878Z",
"accountAgeYears": 13.6,
"isPartner": true,
"isAffiliate": false,
"broadcasterType": "partner",
"followerCount": 11300996,
"isLive": true,
"streamTitle": "GETTING MY DRIVERS LICENSE",
"streamGame": "Forza Horizon 6",
"streamViewers": 2629,
"streamStartedAt": "2026-06-20T17:10:04Z",
"streamType": "live",
"lastBroadcastTitle": "GETTING MY DRIVERS LICENSE",
"lastBroadcastStartedAt": "2026-06-20T17:10:04Z",
"primaryColorHex": "#0000FF",
"profileImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/...-300x300.png",
"bannerImageUrl": "https://static-cdn.jtvnw.net/...",
"recentVideos": [
{ "id": "2801374356", "title": "...", "viewCount": 246565, "durationSeconds": 10812, "publishedAt": "2026-06-17T17:05:31Z", "game": "Just Chatting", "url": "https://www.twitch.tv/videos/2801374356" }
],
"topClips": [
{ "slug": "...", "title": "...", "viewCount": 91234, "durationSeconds": 30, "createdAt": "2026-06-12T...", "url": "https://clips.twitch.tv/..." }
],
"found": true,
"scrapedAt": "2026-06-20T19:00:00Z"
}
FieldTypeDescription
loginstringLowercase Twitch username
displayNamestringChannel display name
followerCountintegerTotal followers
broadcasterTypestringpartner, affiliate, or ""
isLivebooleanCurrently streaming?
streamTitle / streamGamestringLive (or last-set) title and category
streamViewersintegerCurrent live viewers (null offline)
recentVideosarrayRecent VODs (newest first)
topClipsarrayTop clips by views in the chosen window
foundbooleanfalse when a channel doesn't exist or fails

Choose responseFormat: "concise" to drop images, videos, and clips for a smaller payload (handy for AI agents).

Pricing

Pay-per-event:

  • Actor start — $0.00005 per run.
  • Channel scraped$0.004 per existing channel returned. Channels that don't exist or fail are not charged.

A 100-channel run costs about $0.40. Pay-per-usage (compute + proxy) is also available — pick whichever billing fits at run time.

Input

FieldRequiredDefaultDescription
channelsyesUsernames or channel URLs
maxVideosno10Recent videos per channel (0–100, 0 to skip)
maxClipsno10Top clips per channel (0–100, 0 to skip)
clipsPeriodnoLAST_MONTHLAST_DAY / LAST_WEEK / LAST_MONTH / ALL_TIME
responseFormatnodetaileddetailed or concise

Example input

{
"channels": ["shroud", "pokimane", "https://www.twitch.tv/xqc"],
"maxVideos": 5,
"maxClips": 5,
"clipsPeriod": "LAST_WEEK"
}

Run it

API (JavaScript)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('khadinakbar/twitch-channel-scraper').call({
channels: ['shroud', 'pokimane'],
maxVideos: 5,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API (Python)

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("khadinakbar/twitch-channel-scraper").call(
run_input={"channels": ["shroud", "pokimane"], "maxVideos": 5}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["displayName"], item["followerCount"], item["isLive"])

MCP (AI agents)

Exposed as khadinakbar/twitch-channel-scraper through the Apify MCP server. An agent passes a channel list and gets structured JSON back — ideal for "how big is this streamer and are they live?" questions.

FAQ

Do I need a Twitch account or API key? No. It uses Twitch's public, anonymous web GraphQL endpoint.

Can it scrape private or subscriber-only data? No. Public channel data only.

Does it return live viewer counts? Yes, when the channel is live (streamViewers). Counts are a snapshot at scrape time.

What happens for a channel that doesn't exist? You get a record with found: false and an error note, and you are not charged for it.

How many channels per run? No hard limit — pass as many as you like; cost scales linearly at $0.004 per existing channel.

This actor collects only publicly available data from Twitch and does not bypass authentication or access private information. You are responsible for using the data in compliance with Twitch's Terms of Service, applicable laws (including data-protection laws such as GDPR/CCPA), and any third-party rights. This tool is intended for lawful purposes such as research, analytics, and business intelligence. It is not affiliated with or endorsed by Twitch Interactive, Inc.