All platforms
Data since June 2019

The deepest Twitch analytics data, without the spreadsheet.

Channels, streams, subscribers, bits, chat, and audience geography and demographics, including the authorized-viewer ratios that expose inflated viewership. One call, clean JSON, no CSV exports.

  • Agent-friendly
  • Clean JSON
  • Viewbotting flags
streamscharts · agent Claude Code skill
YOU Top USA Valorant streamers on Twitch, last 7 days?
Top Twitch channels streaming Valorant in the US, last 7 days:
1tarik4.21M hrs
2TenZ2.88M hrs
3kyedae1.94M hrs
via GET /channels?platform=twitch&game=valorant&country=US · illustrative values

The Streams Charts API returns Twitch channel stats, stream performance, subscribers, chat and demographics — including authorized-viewer ratios — as JSON. Data since June 2019, one schema shared with 8 other active platforms.

Why an API beats exporting from the dashboard.

Streams Charts API

One REST call returns clean JSON
Same schema as 8 other active platforms
Always-current data, on your schedule
Pipe straight into your product or model
Authorized-to-all-viewers ratio included

Manual CSV export

Click, filter, export, clean, every time
A different export shape per platform
A snapshot that’s stale by next week
Re-import and reformat before you can use it
No access to deeper signals

What you can pull for Twitch.

Click any capability to see its endpoint and a sample response.

Sample response — illustrative values
{
    "channel_name": "examplestreamer",
    "hours_watched": 14820551,
    "peak_viewers": 308120,
    "average_viewers": 92330,
    "airtime_minutes": 18240,
    "followers": 18240115,
    "top_games": [
        "Just Chatting",
        "Fortnite"
    ]
}
Sample response — illustrative values
{
    "stream_id": 51840277,
    "started_at": "2026-06-21T18:04:00Z",
    "airtime_minutes": 412,
    "peak_viewers": 264310,
    "average_viewers": 119820,
    "hours_watched": 1310440,
    "top_game": "Just Chatting"
}
Sample response — illustrative values
{
    "viewers_by_country": [
        {
            "country": "US",
            "viewer_share": 0.34,
            "avg_view_duration_m": 27
        },
        {
            "country": "BR",
            "viewer_share": 0.18,
            "avg_view_duration_m": 31
        }
    ],
    "age": {
        "18-24": 0.41,
        "25-34": 0.33
    },
    "gender": {
        "male": 0.78,
        "female": 0.22
    },
    "languages": [
        "en",
        "pt",
        "de"
    ]
}
Sample response — illustrative values
{
    "messages": 482310,
    "active_chatters": 58420,
    "messages_per_minute": 1170,
    "engagement_rate": 0.49
}
Sample response — illustrative values
{
    "meta": {
        "stream_id": 51840277,
        "total_messages": 482310,
        "per_page": 5000
    },
    "data": [
        {
            "sent_at": "2026-06-21T18:07:12Z",
            "chatter_name": "viewer_92",
            "message": "that clutch was insane",
            "bits": 0
        }
    ]
}
Sample response — illustrative values
{
    "subscribers": 74210,
    "tier_1": 69120,
    "tier_2": 3110,
    "tier_3": 1980,
    "gifted": 24880,
    "estimated_income_usd": 184300
}
Sample response — illustrative values
{
    "meta": {
        "platform": "twitch",
        "time": "7-days",
        "returned": 2
    },
    "data": [
        {
            "rank": 1,
            "channel_name": "examplestreamer",
            "hours_watched": 14820551
        },
        {
            "rank": 2,
            "channel_name": "demo_caster",
            "hours_watched": 9655320
        }
    ]
}
Sample response — illustrative values
{
    "meta": {
        "time": "30-days",
        "returned": 2
    },
    "data": [
        {
            "rank": 1,
            "channel_name": "examplestreamer",
            "subscribers": 74210
        },
        {
            "rank": 2,
            "channel_name": "demo_caster",
            "subscribers": 52180
        }
    ]
}
Sample response — illustrative values
{
    "meta": {
        "time": "7-days",
        "returned": 2
    },
    "data": [
        {
            "rank": 1,
            "channel_name": "examplestreamer",
            "bits_cheered": 2841500
        },
        {
            "rank": 2,
            "channel_name": "demo_caster",
            "bits_cheered": 1120400
        }
    ]
}
Sample response — illustrative values
{
    "meta": {
        "business_contacts": {
            "channels_with_contacts": 63,
            "credits_for_contacts": 63
        }
    },
    "data": [
        {
            "rank": 1,
            "channel_name": "examplestreamer",
            "business_email": "[email protected]",
            "socials": {
                "x": "https://x.com/examplestreamer"
            }
        }
    ]
}
The differentiator

Tell real audiences from inflated ones.

Illustrative example

The Authorized Viewers Ratio plus Chat Engagement Rates (active chatters per viewers) are quality signals no CSV export gives you. A real audience watches and talks, an inflated one does neither.

ironmouse
99%
authorized viewers
51% chat engaged
caedrel
97%
authorized viewers
44% chat engaged
kaicenat
94%
authorized viewers
49% chat engaged
examplestreamer flagged
38%
authorized viewers
6% · low chat engaged

Three steps to your first Twitch data response.

1

Connect your keys

Grab your Client-ID and Token. Thirty seconds.

2

Pass platform=twitch

Pass platform=twitch and a channel or stream id. Add a time window for a specific period.

3

Build on it

The JSON drops straight into your dashboard, model, or product — the same pattern as every other platform.

The hook

The free request, on Twitch data.

Top 100 Twitch channels, last 7 days, zero credits. Page one of the ranked list, no key required to smoke-test.

twitch-request.sh 0 credits
$
 
 ✓
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
…
FAQ

Twitch data
questions.

Short answers before your first call.

Still have questions? Talk to our team

Helix is real-time and scoped to your own channel or bot. Streams Charts is historical, cross-platform analytics: hours watched since 2019, authorized-viewer ratios, subscribers, and the same schema for Kick and YouTube.

Twitch is the only platform with authorized vs. all viewers, subscriber tiers and income, and bits. Chat engagement and audience geography and demographics also cover Kick and YouTube. You get who watched and whether the audience was real, not only a headline viewer count.

The authorized-to-all-viewers ratio and unique-viewer counts are the same signals our methodology uses to flag suspicious channels. You score them however you like.

Yes: counts, tiers, gifted/prime splits, and estimated income, for single channels and ranked lists.

June 2019, collected at one-minute intervals.

Twitch. The top 100 Twitch channels for the last 7 days is free.

One API, 9 platforms.

Switch platforms by changing one parameter. The schema stays the same.

Ship your integration today.

Get your key and get Twitch data back in minutes.

Data since June 2019 · How we collect · 9 platforms