Skip to main content

Get User

Get a Twitch user by their login name.

Endpoint

GET /api/twitch/user

Query Parameters

login
string
required
The Twitch username to look up.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/user?login=ninja" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
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);
Python
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

GET /api/twitch/user/id

Query Parameters

id
string
required
The numeric Twitch user ID.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/user/id?id=19571641" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
const response = await fetch('https://rocks.rive.wtf/api/twitch/user/id?id=19571641', {
  headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
Python
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

GET /api/twitch/stream

Query Parameters

user_login
string
required
The Twitch username to check for a live stream.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/stream?user_login=ninja" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
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;
Python
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

first
number
default:"20"
Number of streams to return. Maximum: 100.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/streams/top?first=5" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
const response = await fetch('https://rocks.rive.wtf/api/twitch/streams/top?first=5', {
  headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
Python
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

GET /api/twitch/channel

Query Parameters

broadcaster_id
string
required
The numeric broadcaster ID. Use the id field from the Get User endpoint.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/channel?broadcaster_id=19571641" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
const response = await fetch('https://rocks.rive.wtf/api/twitch/channel?broadcaster_id=19571641', {
  headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
Python
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

query
string
required
Search query string.
first
number
default:"20"
Number of results to return. Maximum: 100.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/channels/search?query=fortnite&first=5" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
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();
Python
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

broadcaster_id
string
required
The numeric broadcaster ID.
first
number
default:"20"
Number of follower records to return.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/followers?broadcaster_id=19571641&first=5" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
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
Python
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

GET /api/twitch/clips

Query Parameters

broadcaster_id
string
required
The numeric broadcaster ID.
first
number
default:"20"
Number of clips to return. Maximum: 100.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/clips?broadcaster_id=19571641&first=5" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
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();
Python
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

GET /api/twitch/videos

Query Parameters

user_id
string
required
The numeric Twitch user ID.
first
number
default:"20"
Number of videos to return. Maximum: 100.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/videos?user_id=19571641&first=5" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
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();
Python
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

TypeDescription
archiveFull stream VOD saved automatically
highlightManually clipped highlight from a VOD
uploadManually uploaded video

Get Game

Get a game by name or ID.

Endpoint

GET /api/twitch/game

Query Parameters

name
string
The exact game name to look up.
id
string
The Twitch game ID to look up.
At least one of name or id is required.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/game?name=Fortnite" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
const response = await fetch('https://rocks.rive.wtf/api/twitch/game?name=Fortnite', {
  headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
Python
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

first
number
default:"20"
Number of games to return. Maximum: 100.

Example Request

cURL
curl -X GET "https://rocks.rive.wtf/api/twitch/games/top?first=5" \
  -H "Authorization: YOUR_API_KEY"
JavaScript
const response = await fetch('https://rocks.rive.wtf/api/twitch/games/top?first=5', {
  headers: { 'Authorization': 'YOUR_API_KEY' }
});
const data = await response.json();
Python
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="
  }
}