Getting started

Making requests

Three query parameters appear across almost every endpoint, plus a platform and time-period vocabulary shared by all of them.

Shared parameters

ParameterTypeDescription
platformstringTarget platform. Required wherever a name could exist on more than one platform.
timestringReporting window. Omit it and you get the last 30-days; sending it empty is an error, not a default.
pageintegerList pagination. 100 rows per page; defaults to 1.
YouTube uses channel IDs

For YouTube, pass the channel ID in the path instead of a handle, e.g. /channels/UC1dGHGJTXU_dkiR8tW3qQgg?platform=youtube.

Supported platforms

Streams Charts collects and computes this data independently. The table below states, per platform, when coverage starts, how often we collect, and the minimum audience a channel needs to be included.

Pass one platform per request via platform={name}. The standard metric set is available across all active platforms below. Chat analytics and the joint audience set cover Twitch, Kick and YouTube; the extra and subscriber sets are Twitch-only.

twitchyoutubekickrumblenimobigoafreecatvchzzksteam
PlatformData sinceCollection frequencyMin. requirement
TwitchJune 2019every 1 min2+ avg viewers
YouTube Gaming (Non-Gaming)Nov 2020 (Apr 2022)every 2 min10+ avg viewers
NimoTVAug 2021every 2 min3+ avg viewers
Bigo LIVEAug 2021every 2 min3+ avg viewers
SOOP Korea (slug: afreecatv)Feb 2022every 4 min3+ avg viewers
KickDec 2022every 1 min1+ avg viewers
RumbleJune 2023every 2 min15+ avg viewers
Naver's CHZZKJan 2024every 2 min1+ avg viewers
SteamTVJuly 2024every 2 min10+ avg viewers

Discontinued platforms

The following platforms are no longer collected. Historical data within the ranges below remains queryable. Note: SOOP Korea (slug afreecatv, active) and SOOP Global (slug soop, discontinued) are different platforms.

PlatformData rangeMin. requirement
TrovoJune 2020 – June 30, 20263+ avg viewers
SOOP Global (slug: soop)June 2024 – March 20253+ avg viewers
NonoliveNov 2021 – March 20243+ avg viewers
MildomJune 2022 – Aug 20245+ avg viewers

Time periods

Control the reporting window with time={value}. Omit it and you get the last 30-days. Supported presets:

today7-days30-days90-daysthis-monthlast-monththis-yearlast-year

For a custom range, pass two dates: time=YYYY-MM-DD,YYYY-MM-DD. For minute-level precision, pass timestamps: time=YYYY-MM-DD HH:MM,YYYY-MM-DD HH:MM.

A date range ends exclusively. time=2026-07-26,2026-07-27 reports the 26th only. To include both days, pass time=2026-07-26,2026-07-28.

How `time` is validated

InputResult
No time parameterDefaults to the last 30-days.
time= with no value422 invalid_parameter — time must not be empty. There is no fallback to the default.
Unparseable value, e.g. 25:00 or 2026-13-40422 invalid_parameter — Invalid time: could not parse "<your value>".
End earlier than start422 invalid_parameter — a reversed window is rejected, not answered empty.
A window that matches no data on that resource404 not_found.

Every one of these is a non-2xx response, so none of them is charged and none carries a x-credits-charged header at all.

Not every endpoint accepts every form. Presets and plain dates aggregate over a window, so they apply to channels, games and lists; a single broadcast — the 5-minute interval series included — is sliced with the exact-time form only. Audience data takes no time parameter at all.

Exact-time windows are capped at 7 days

When you specify time down to the minute, the range may span at most 7 days. Lists accept windows up to 365 days.