# Single stream stats

The first call for stream's metrics costs 1 or 2 credits, depending on the set of metrics (see the difference below). All further requests to streams of specific channel within the next 30 days will cost 0.2 and 0.4 credits accordingly. On day 31, it will cost another credit or two again for the first API call.

#### Available data sets of metrics

<table><thead><tr><th width="213">Set of metrics</th><th width="288">1st request to stream stats of a specific channel, credits</th><th>each next request to stream stats of a specific channel within next 30 days, credits</th></tr></thead><tbody><tr><td><a href="#standard-set-of-metrics">Standard (available for 10+ platforms)</a></td><td>1</td><td>0.2</td></tr><tr><td><a href="#extra-set-of-metrics">Extra (Twitch only)</a></td><td>2</td><td>0.4</td></tr><tr><td><a href="#paid-subscribers-set-of-metrics">Paid subscribers (Twitch only)</a></td><td>1</td><td>0.2</td></tr><tr><td><a href="#chat-analytics-set-of-metrics">Chat analytics (Twitch only)</a></td><td>1</td><td>0.4</td></tr><tr><td><a href="#audience-geography-set-of-metrics">Audience geography (Twitch only)</a> <mark style="color:green;">[NEW]</mark></td><td>1</td><td>0.4</td></tr></tbody></table>

### Standard set of metrics

#### Available platforms

One request will provide you with data for one specific channel only. Since the channel can broadcast on different platforms with the same name, use the filter by platform: <mark style="color:yellow;">`platform={name}`</mark>. Supported values:

```
twitch; youtube; kick; rumble; trovo; nimo; bigo; nonolive; afreecatv; mildom; chzzk; soop; steam
```

#### How to access the standard set of metrics for single stream stats

You will need a Client ID and a token to use Streams Charts API. Your Client ID is bound to your account and can never be changed, but you can change your access token anytime for security reasons.

Use the example request below to see how it works with a standard set of metrics for a single stream of a specific channel.

```
curl -X GET https://streamscharts.com/api/jazz/channels/shroud/streams/41976921163?platform=twitch \
-H 'Client-ID: XXXXXXXXXXXX' \
-H 'Token: YYYYYYYYYYYYYY'
```

_Use your Client ID and token instead of "XXXXXXXXXXXX" and "YYYYYYYYYYYYYY", which you can find_ [_here_](https://streamscharts.com/api/token)_._

The response you would get would be a JSON response that contains something like a sample response:

```json
{
"data":{
"platform": "twitch",
"channel_name": "shroud",
"channel_display_name": "shroud",
"channel_id": "37402112",
"avatar_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/7ed5e0c6-0191-4eef-8328-4af6e4ea5318-profile_image-300x300.png",
"stream_id": "41976921163",
"stream_status": "making my sorc NOW also check out !announcement",
"stream_start": "2023-03-18 19:05:30",
"stream_end": "2023-03-19 03:35:00",
"stream_language": "en",
"hours_watched": 115906,
"airtime_in_m": 515,
"peak_viewers": 17819,
"average_viewers": 13504,
"followers_gain": 676,
"top_game_by_hw": "Diablo IV",
"top_game_by_hw_%": 81.7
}
}
```

#### Excluding

NimoTV, Bigo LIVE, Nonolive, AfreecaTV, CHZZK, SOOP, SteamTV:

```
followers_gain
```

Rumble:

```
followers_gain; top_game_by_hw, top_game_by_hw_%
```

#### Supported time periods

If needed,  you can select a stream time to get statistics only for a specific part of the stream (e.g., for a particular broadcast hours or even minutes). To do this, use the parameter <mark style="color:yellow;">`time={value}`</mark> in the format `YYYY-MM-DD HH:MM,YYYY-MM-DD HH:MM`

<pre><code><strong>Request example
</strong><strong>
</strong><strong>curl -X GET https://streamscharts.com/api/jazz/channels/caedrel/streams/43526722936?platform=twitch&#x26;time=2025-01-07 10:00,2025-01-07 13:00 \
</strong>-H 'Client-ID: XXXXXXXXXXXX' \
-H 'Token: YYYYYYYYYYYYYY'
</code></pre>

### Extra set of metrics

By extra metrics, we mean that in return for the standard set of metrics, you will also get the following ones:

{% code title="Example of response" %}
```json
...
"extra_metrics":{
"live_views": 464087,
"unique_viewers": 176871,
"unique_auth_viewers": 147068,
"peak_auth_viewers": 13674,
"auth_viewers_average_view_duration_in_m": 43,
"authorized_to_all_viewers_ratio_%": 83,
"viewers_from_last_stream_%": 69.4,
"returned_viewers_%": 35.3,
"estimated_audience": 166405,
"estimated_audience_average_view_duration_in_m": 42
}
...
```
{% endcode %}

#### Available platforms

One request will provide you with data for one stream of a specific channel only. Since an extra set of metrics is available only for Twitch channels, use the filter <mark style="color:yellow;">`platform=twitch`</mark> to get it.

#### How to access the extra set of metrics for single channel stats

You will need a Client ID and a token to use Streams Charts API. Your Client ID is bound to your account and can never be changed, but you can change your access token anytime for security reasons.

To get an extra set of metrics by one stream of a specific channel, use the next route: <mark style="color:yellow;">`/api/jazz/channels/{name}/streams-extra/{stream-id}?platform=twitch`</mark>

To see how it works with an extra set of metrics for a single stream of a specific channel, use the example request below.

```
curl -X GET https://streamscharts.com/api/jazz/channels/shroud/streams-extra/41976921163?platform=twitch \
-H 'Client-ID: XXXXXXXXXXXX' \
-H 'Token: YYYYYYYYYYYYYY'
```

_Use your Client ID and token instead of "XXXXXXXXXXXX" and "YYYYYYYYYYYYYY", which you can find_ [_here_](https://streamscharts.com/api/token)_._

The response you would get would be a JSON response that contains something like a sample response:

```json
{
"data":{
"platform": "twitch",
"channel_name": "shroud",
"channel_display_name": "shroud",
"channel_id": "37402112",
"avatar_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/7ed5e0c6-0191-4eef-8328-4af6e4ea5318-profile_image-300x300.png",
"stream_id": "41976921163",
"stream_status": "making my sorc NOW also check out !announcement",
"stream_start": "2023-03-18 19:05:30",
"stream_end": "2023-03-19 03:35:00",
"stream_language": "en",
"hours_watched": 115906,
"airtime_in_m": 515,
"peak_viewers": 17819,
"average_viewers": 13504,
"followers_gain": 676,
"top_game_by_hw": "Diablo IV",
"top_game_by_hw_%": 81.7,
"extra_metrics":{
"live_views": 464087,
"unique_viewers": 176871,
"unique_auth_viewers": 147068,
"peak_auth_viewers": 13674,
"auth_viewers_average_view_duration_in_m": 43,
"authorized_to_all_viewers_ratio_%": 83,
"viewers_from_last_stream_%": 69.4,
"returned_viewers_%": 35.3,
"estimated_audience": 166405,
"estimated_audience_average_view_duration_in_m": 42
}
}
}
```

{% hint style="info" %}
From April 3, 2023, such metrics as Authorized Viewers and Unique Viewers are available only for channels authorized on Streams Charts via Twitch. Historical data is still available for all Twitch channels.
{% endhint %}

#### Supported time periods

If needed,  you can select a stream time to get statistics only for a specific part of the stream (e.g., for a particular broadcast hours or even minutes). To do this, use the parameter <mark style="color:yellow;">`time={value}`</mark> in the format `YYYY-MM-DD HH:MM,YYYY-MM-DD HH:MM`

<pre><code><strong>Request example
</strong><strong>
</strong><strong>curl -X GET https://streamscharts.com/api/jazz/channels/caedrel/streams-extra/43526722936?platform=twitch&#x26;time=2025-01-07 10:00,2025-01-07 13:00 \
</strong>-H 'Client-ID: XXXXXXXXXXXX' \
-H 'Token: YYYYYYYYYYYYYY'
</code></pre>

### Paid subscribers set of metrics

#### Available platforms

One request will provide you with data for one stream of a specific channel only. Since a paid subscribers set of metrics is available only for Twitch channels, use the filter <mark style="color:yellow;">`platform=twitch`</mark> to get it.

#### How to access the extra set of metrics for single channel stats

You will need a Client ID and a token to use Streams Charts API. Your Client ID is bound to your account and can never be changed, but you can change your access token anytime for security reasons.

To get a paid subscribers set of metrics by one stream of a specific channel, use the following route: <mark style="color:yellow;">`/api/jazz/channels/{name}/streams-extra/{stream-id}/subs?platform=twitch`</mark>

To see how it works with paid subscribers' set of metrics for a single stream of a specific channel, use the example request below.

```
curl -X GET https://streamscharts.com/api/jazz/channels/shroud/streams-extra/41976921163/subs?platform=twitch \
-H 'Client-ID: XXXXXXXXXXXX' \
-H 'Token: YYYYYYYYYYYYYY'
```

_Use your Client ID and token instead of "XXXXXXXXXXXX" and "YYYYYYYYYYYYYY", which you can find_ [_here_](https://streamscharts.com/api/token)_._

The response you would get would be a JSON response that contains something like a sample response:

```json
{
"data":{
"platform": "twitch",
"channel_name": "shroud",
"channel_display_name": "shroud",
"channel_id": "37402112",
"avatar_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/7ed5e0c6-0191-4eef-8328-4af6e4ea5318-profile_image-300x300.png",
"stream_id": "41976921163",
"stream_status": "making my sorc NOW also check out !announcement",
"stream_start": "2023-03-18 19:05:30",
"stream_end": "2023-03-19 03:35:00",
"stream_language": "en",
"total_subs": 78,
"min_income_from_subs_in_$": 147,
"max_income_from_subs_in_$": 210,
"new_subs": 34,
"re_subs": 39,
"paid_subs": 73,
"gifted_subs": 5,
"prime_subs": 48,
"tier_1_subs": 29,
"tier_2_subs": 0,
"tier_3_subs": 1
}
}
```

{% hint style="info" %}
The Twitch streamers themselves do not verify Streams Charts calculations. We use our own methodology, and the numbers may not coincide with the original values.&#x20;

Our calculations usually do not consider subscriptions when the channel is offline, and we do not track auto-renewed subscriptions unless the viewer clicks the appropriate button in chat to notify the streamer about his auto-renewal.
{% endhint %}

#### Supported time periods

If needed,  you can select a stream time to get statistics only for a specific part of the stream (e.g., for a particular broadcast hours or even minutes). To do this, use the parameter <mark style="color:yellow;">`time={value}`</mark> in the format `YYYY-MM-DD HH:MM,YYYY-MM-DD HH:MM`

<pre><code><strong>Request example
</strong><strong>
</strong><strong>curl -X GET https://streamscharts.com/api/jazz/channels/caedrel/streams-extra/43526722936/subs?platform=twitch&#x26;time=2025-01-07 10:00,2025-01-07 13:00 \
</strong>-H 'Client-ID: XXXXXXXXXXXX' \
-H 'Token: YYYYYYYYYYYYYY'
</code></pre>

### Chat analytics set of metrics

#### Available platforms

One request will provide you with data for one stream of a specific channel only. Since a chat analytics set of metrics is available only for Twitch channels, use the filter <mark style="color:yellow;">`platform=twitch`</mark> to get it.

#### How to access the extra set of metrics for single channel stats

You will need a Client ID and a token to use Streams Charts API. Your Client ID is bound to your account and can never be changed, but you can change your access token anytime for security reasons.

To get a chat analytics set of metrics by one stream of a specific channel, use the following route: <mark style="color:yellow;">`/api/jazz/channels/{name}/streams-extra/{stream-id}/chat?platform=twitch`</mark>

To see how it works with a chat analytics set of metrics for a single stream of a specific channel, use the example request below.

```
curl -X GET https://streamscharts.com/api/jazz/channels/shroud/streams-extra/41976921163/chat?platform=twitch \
-H 'Client-ID: XXXXXXXXXXXX' \
-H 'Token: YYYYYYYYYYYYYY'
```

_Use your Client ID and token instead of "XXXXXXXXXXXX" and "YYYYYYYYYYYYYY", which you can find_ [_here_](https://streamscharts.com/api/token)_._

The response you would get would be a JSON response that contains something like a sample response:

```json
{
"data":{
"platform": "twitch",
"channel_name": "shroud",
"channel_display_name": "shroud",
"channel_id": "37402112",
"avatar_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/7ed5e0c6-0191-4eef-8328-4af6e4ea5318-profile_image-300x300.png",
"stream_id": "41976921163",
"stream_status": "making my sorc NOW also check out !announcement",
"stream_start": "2023-03-18 19:05:30",
"stream_end": "2023-03-19 03:35:00",
"stream_language": "en",
"total_messages": 9728,
"total_words_count": 64447,
"active_chatters": 3579,
"passive_chatters": 143478,
"messages_per_chatter": 2.7,
"chat_engagement_rate_%": 2.4337501785,
"chatters_with_1_message": 2198,
"chatters_with_2+_message": 1381,
"cheer_messages": 1,
"cheer_chatters": 1,
"total_bits": 1000,
"income_from_bits_in_$": 10,
"bits_per_cheered_message": 1000,
"bits_per_cheered_chatter": 1000
}
}
```

#### Supported time periods

If needed,  you can select a stream time to get statistics only for a specific part of the stream (e.g., for a particular broadcast hours or even minutes). To do this, use the parameter <mark style="color:yellow;">`time={value}`</mark> in the format `YYYY-MM-DD HH:MM,YYYY-MM-DD HH:MM`

<pre><code><strong>Request example
</strong><strong>
</strong><strong>curl -X GET https://streamscharts.com/api/jazz/channels/caedrel/streams-extra/43526722936/chat?platform=twitch&#x26;time=2025-01-07 10:00,2025-01-07 13:00 \
</strong>-H 'Client-ID: XXXXXXXXXXXX' \
-H 'Token: YYYYYYYYYYYYYY'
</code></pre>

### Audience geography set of metrics

#### Available platforms

One request will provide you with data for one stream of a specific channel only. Since a location set of metrics is available only for Twitch channels, use the filter <mark style="color:yellow;">`platform=twitch`</mark> to get it.

#### How to access the extra set of metrics for single channel stats

You will need a Client ID and a token to use Streams Charts API. Your Client ID is bound to your account and can never be changed, but you can change your access token anytime for security reasons.

To get a chat analytics set of metrics by one stream of a specific channel, use the following route: <mark style="color:yellow;">`/api/jazz/channels/{name}/streams-extra/{stream-id}/geo?platform=twitch`</mark>

To see how it works with a location set of metrics for a single stream of a specific channel, use the example request below.

```
curl -X GET https://streamscharts.com/api/jazz/channels/xqc/streams-extra/geo?platform=twitch \
-H 'Client-ID: XXXXXXXXXXXX' \
-H 'Token: YYYYYYYYYYYYYY'
```

_Use your Client ID and token instead of "XXXXXXXXXXXX" and "YYYYYYYYYYYYYY", which you can find_ [_here_](https://streamscharts.com/api/token)_._

The response you would get would be a JSON response that contains something like a sample response:

```json
{
    "data": {
        "platform": "twitch",
        "channel_name": "xqc",
        "channel_display_name": "xQc",
        "channel_id": "71092938",
        "avatar_url": "https://static-cdn.jtvnw.net/jtv_user_pictures/xqc-profile_image-9298dca608632101-300x300.jpeg",
        "stream_id": "324069654524",
        "stream_status": "🖖LIVE🖖MULTISTREAM🖖DRAMA🖖NEWS🖖LIVE ON K1CK AT SAME TIME🖖TEST STREAM KINDA🖖HEHE🖖LETS SEE WHATS UP EH?🖖",
        "stream_start": "2025-07-09 23:00:59",
        "stream_end": "2025-07-10 06:35:00",
        "stream_language": "en",
        "viewers_by_country": [
            {
                "country_name": "USA",
                "country_iso": "US",
                "%_of_viewers": 42.1,
                "daily_avg_view_duration_m": 25
            },
            {
                "country_name": "Canada",
                "country_iso": "CA",
                "%_of_viewers": 9.8,
                "daily_avg_view_duration_m": 24
            },
            {
                "country_name": "United Kingdom",
                "country_iso": "GB",
                "%_of_viewers": 4.6,
                "daily_avg_view_duration_m": 25
            },
            ...
        ]
    }
}

```

{% hint style="info" %}
The today's broadcast will be not available to request today. If you need channel data for the current live stream, you can get it tomorrow, when we will update the database.
{% endhint %}
