Get User
Get a Twitch user by their login name.
Endpoint
Query Parameters
The Twitch username to look up.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/user?login=ninja" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/user?login=ninja', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
console.log(data);
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/user',
headers={'Authorization': 'YOUR_API_KEY'},
params={'login': 'ninja'}
)
print(response.json())
Response Example
{
"data": [
{
"id": "19571641",
"login": "ninja",
"display_name": "Ninja",
"type": "",
"broadcaster_type": "partner",
"description": "Just want to make people happy.",
"profile_image_url": "https://static-cdn.jtvnw.net/...-profile_image-300x300.png",
"offline_image_url": "https://static-cdn.jtvnw.net/...-channel_offline_image-1920x1080.png",
"view_count": 0,
"created_at": "2011-01-16T04:31:20Z"
}
]
}
Get User by ID
Get a Twitch user by their numeric ID.
Endpoint
Query Parameters
The numeric Twitch user ID.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/user/id?id=19571641" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/user/id?id=19571641', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/user/id',
headers={'Authorization': 'YOUR_API_KEY'},
params={'id': '19571641'}
)
print(response.json())
Get Stream
Get live stream data for a user. Returns an empty data array if the user is offline.
Endpoint
Query Parameters
The Twitch username to check for a live stream.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/stream?user_login=ninja" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/stream?user_login=ninja', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
const isLive = data.data.length > 0;
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/stream',
headers={'Authorization': 'YOUR_API_KEY'},
params={'user_login': 'ninja'}
)
print(response.json())
Response Example
{
"data": [
{
"id": "318129150553",
"user_id": "19571641",
"user_login": "ninja",
"user_name": "Ninja",
"game_id": "464339927",
"game_name": "ARC Raiders",
"type": "live",
"title": "BIG FRIDAY GAMING LETS GET SOME GOOP",
"viewer_count": 2955,
"started_at": "2026-03-13T12:40:59Z",
"language": "en",
"thumbnail_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_ninja-{width}x{height}.jpg",
"tags": ["English", "DropsEnabled"],
"is_mature": false
}
],
"pagination": {
"cursor": "eyJiIjp7..."
}
}
If the user is offline, data will be an empty array [].
Get Top Streams
Get the most-watched live streams on Twitch right now.
Endpoint
GET /api/twitch/streams/top
Query Parameters
Number of streams to return. Maximum: 100.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/streams/top?first=5" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/streams/top?first=5', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/streams/top',
headers={'Authorization': 'YOUR_API_KEY'},
params={'first': 5}
)
print(response.json())
Get Channel
Get channel information for a broadcaster.
Endpoint
Query Parameters
The numeric broadcaster ID. Use the id field from the Get User endpoint.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/channel?broadcaster_id=19571641" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/channel?broadcaster_id=19571641', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/channel',
headers={'Authorization': 'YOUR_API_KEY'},
params={'broadcaster_id': '19571641'}
)
print(response.json())
Response Example
{
"data": [
{
"broadcaster_id": "19571641",
"broadcaster_login": "ninja",
"broadcaster_name": "Ninja",
"broadcaster_language": "en",
"game_id": "464339927",
"game_name": "ARC Raiders",
"title": "BIG FRIDAY GAMING LETS GET SOME GOOP",
"delay": 0,
"tags": ["English", "DropsEnabled"],
"is_branded_content": false,
"content_classification_labels": []
}
]
}
Search Channels
Search for channels by name or keyword.
Endpoint
GET /api/twitch/channels/search
Query Parameters
Number of results to return. Maximum: 100.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/channels/search?query=fortnite&first=5" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/channels/search?query=fortnite&first=5', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/channels/search',
headers={'Authorization': 'YOUR_API_KEY'},
params={'query': 'fortnite', 'first': 5}
)
print(response.json())
Get Followers
Get the follower count and most recent followers for a broadcaster.
Endpoint
GET /api/twitch/followers
Query Parameters
The numeric broadcaster ID.
Number of follower records to return.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/followers?broadcaster_id=19571641&first=5" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/followers?broadcaster_id=19571641&first=5', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
console.log(data.total); // total follower count
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/followers',
headers={'Authorization': 'YOUR_API_KEY'},
params={'broadcaster_id': '19571641', 'first': 5}
)
print(response.json())
Response Example
{
"total": 19265523,
"data": [],
"pagination": {
"cursor": null
}
}
total always reflects the full follower count regardless of the first parameter. The data array may be empty if the broadcaster has restricted follower visibility.
Get Clips
Get the top clips for a broadcaster.
Endpoint
Query Parameters
The numeric broadcaster ID.
Number of clips to return. Maximum: 100.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/clips?broadcaster_id=19571641&first=5" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/clips?broadcaster_id=19571641&first=5', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/clips',
headers={'Authorization': 'YOUR_API_KEY'},
params={'broadcaster_id': '19571641', 'first': 5}
)
print(response.json())
Response Example
{
"data": [
{
"id": "IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
"url": "https://www.twitch.tv/ninja/clip/IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
"embed_url": "https://clips.twitch.tv/embed?clip=IcyBreakableDelicataTooSpicy-RnrKLybQI3W9K_AD",
"broadcaster_id": "19571641",
"broadcaster_name": "Ninja",
"creator_id": "206880681",
"creator_name": "sSaintPablo",
"video_id": "994448370",
"game_id": "509658",
"language": "en",
"title": "Ninja Reenacting Chalk Board Egirls",
"view_count": 310538,
"created_at": "2021-04-20T18:22:14Z",
"thumbnail_url": "https://static-cdn.jtvnw.net/twitch-clips/...-preview-480x272.jpg",
"duration": 25.9,
"is_featured": false
}
],
"pagination": {
"cursor": "eyJiIjpudWxsLCJhIjp7..."
}
}
Get Videos
Get recent VODs and highlights for a user.
Endpoint
Query Parameters
The numeric Twitch user ID.
Number of videos to return. Maximum: 100.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/videos?user_id=19571641&first=5" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/videos?user_id=19571641&first=5', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/videos',
headers={'Authorization': 'YOUR_API_KEY'},
params={'user_id': '19571641', 'first': 5}
)
print(response.json())
Response Example
{
"data": [
{
"id": "2721186267",
"stream_id": "318129150553",
"user_id": "19571641",
"user_login": "ninja",
"user_name": "Ninja",
"title": "BIG FRIDAY GAMING LETS GET SOME GOOP",
"description": "",
"created_at": "2026-03-13T12:41:05Z",
"published_at": "2026-03-13T12:41:05Z",
"url": "https://www.twitch.tv/videos/2721186267",
"thumbnail_url": "https://vod-secure.twitch.tv/_404/404_processing_%{width}x%{height}.png",
"viewable": "public",
"view_count": 62,
"language": "en",
"type": "archive",
"duration": "1h54m59s",
"muted_segments": null
}
],
"pagination": {
"cursor": "eyJiIjpudWxsLCJhIjp7..."
}
}
Video Types
| Type | Description |
|---|
archive | Full stream VOD saved automatically |
highlight | Manually clipped highlight from a VOD |
upload | Manually uploaded video |
Get Game
Get a game by name or ID.
Endpoint
Query Parameters
The exact game name to look up.
The Twitch game ID to look up.
At least one of name or id is required.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/game?name=Fortnite" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/game?name=Fortnite', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/game',
headers={'Authorization': 'YOUR_API_KEY'},
params={'name': 'Fortnite'}
)
print(response.json())
Response Example
{
"data": [
{
"id": "33214",
"name": "Fortnite",
"box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/33214-{width}x{height}.jpg",
"igdb_id": "1905"
}
]
}
Get Top Games
Get the most-watched game categories on Twitch right now.
Endpoint
GET /api/twitch/games/top
Query Parameters
Number of games to return. Maximum: 100.
Example Request
curl -X GET "https://rocks.rive.wtf/api/twitch/games/top?first=5" \
-H "Authorization: YOUR_API_KEY"
const response = await fetch('https://rocks.rive.wtf/api/twitch/games/top?first=5', {
headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
import requests
response = requests.get(
'https://rocks.rive.wtf/api/twitch/games/top',
headers={'Authorization': 'YOUR_API_KEY'},
params={'first': 5}
)
print(response.json())
Response Example
{
"data": [
{
"id": "509658",
"name": "Just Chatting",
"box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/509658-{width}x{height}.jpg",
"igdb_id": ""
},
{
"id": "32399",
"name": "Counter-Strike",
"box_art_url": "https://static-cdn.jtvnw.net/ttv-boxart/32399-{width}x{height}.jpg",
"igdb_id": ""
}
],
"pagination": {
"cursor": "eyJzIjo1LCJkIjpmYWxzZSwidCI6dHJ1ZX0="
}
}