Live

Live endpoints

A real-time snapshot of who is streaming right now. The live channels list returns every channel currently broadcasting across every platform in the API, refreshed on a 5-minute pull interval. Query one platform or several at once.

5-minute refresh

Live data is captured every 5 minutes (pull_interval_seconds: 300). Each response carries a captured_at timestamp — use it to page through a consistent snapshot and to know how fresh the data is. Available for every platform in the API. Pass a single platform with platform={name}, or several at once as a comma-separated list, e.g. platform=twitch,kick,youtube. Omit it to return all platforms.

Live channels list

Every channel that is live right now, across every platform in the API — one platform or several at once in a single call. Same shape and pagination model as the list of channels — the difference is that this list is a real-time snapshot rather than an aggregated time window.

GET /api/v2/live/channels
Filter tierCost / page
No filter (all live channels)10
Language10
Game / category10
Country20
REQUESTCURL
curl -X GET https://streamscharts.com/api/v2/live/channels?platform=twitch,kick&lang=en&game=rocket-league \ -H 'Client-ID: XXXXXXXXXXXX' -H 'Token: YYYYYYYYYYYYYY'
RESPONSEJSON
{ "data": [ { "platform": "twitch", "channel_id": "57781936", "display_name": "RocketLeague", "avatar_url": "https://static-cdn.jtvnw.net/.../300x300.png", "country": "US", "language": "en", "current_category": "Rocket League", "current_stream_title": "FURIA vs NRG | Playoffs | Paris Major | RLCS 2026", "live_viewers": 48213, "current_airtime_in_m": 210, "broadcast_started_at": "2026-05-22T11:15:00Z", "captured_at": "2026-05-22T14:45:03Z" } ], "links": { "first": ".../live/channels?captured_at=2026-02-18T17%3A58%3A16Z&page=1", "last": ".../live/channels?captured_at=2026-02-18T17%3A58%3A16Z&page=189", "prev": null, "next": ".../live/channels?captured_at=2026-02-18T17%3A58%3A16Z&page=2" }, "meta": { "captured_at": "2026-02-18T17:58:16Z", "pull_interval_seconds": 300, "current_page": 1, "from": 1, "to": 100, "per_page": 100, "total": 18854 }, "filters": { "platforms": "all", "languages": [ "en" ], "categories": "all" } }

Response fields

FieldTypeDescription
platformstringAny active platform slug — twitch, youtube, kick, rumble, nimo, bigo, afreecatv, chzzk, steam.
channel_idstringPlatform channel identifier.
display_namestringChannel display name.
countrystringISO 3166 Alpha-2 (user-contributed).
languagestringISO 639-1 broadcast language.
current_categorystringGame or category being streamed right now.
current_stream_titlestringCurrent broadcast title.
live_viewersintegerConcurrent viewers at the moment of capture.
current_airtime_in_mintegerMinutes the current broadcast has been live, as of capture.
broadcast_started_atstringISO 8601 UTC start time of the broadcast.
captured_atstringISO 8601 UTC time this snapshot was pulled.

Filters

Everything else works exactly like the list of channels — pagination (100 rows/page), sorting, and value exclusion with a ! prefix. Live channels support three filters:

FilterParameterAccepted values
Languagelang={code}ISO 639-1, e.g. en, es
Game / categorygame={slug}e.g. rocket-league
Countrycountry={code}ISO 3166 Alpha-2, e.g. US
Snapshot pagination

The links block pins captured_at so every page you fetch belongs to the same 5-minute snapshot. Follow links.next rather than incrementing page by hand to avoid mixing two snapshots as the data refreshes underneath you. Minimum viewership thresholds follow Streams Charts platform-wide rules.

No business contacts here

The business_contacts=true parameter is not supported on the live list. Business emails and socials are available on the aggregated channel lists only — list of channels, top by subscribers, top by bits.