# Twitch API

> Twitch returns channel profiles, live streams, categories, videos, and schedules as a workflow and API.

Get channel returns a channel profile, live status, and recent broadcasts from a channel name or link. List top streams and List top categories return ranked live streams and categories, with optional stream filters and a result limit. List channel videos and Get stream schedule return a channel’s videos or upcoming streams from its name or link.

- Page: https://fous.com/tools/twitch
- Handle: `@twitch`
- Category: [Entertainment](https://fous.com/tools/category/entertainment)
- Source website: https://twitch.tv
- Last verified: Sep 29, 2026

## Methods

### Get channel

Operation `get_channel`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get a public Twitch channel’s profile, live stream status, and up to 10 recent broadcast videos. A channel with no saved broadcasts returns an empty videos list.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `streamer` | string | yes | `"kaicenat"` | The channel name, display name, or Twitch channel link, for example kaicenat, Kai Cenat, or https://www.twitch.tv/kaicenat. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "streamer"
  ],
  "properties": {
    "streamer": {
      "type": "string",
      "description": "The channel name, display name, or Twitch channel link, for example kaicenat, Kai Cenat, or https://www.twitch.tv/kaicenat.",
      "examples": [
        "kaicenat",
        "Kai Cenat",
        "https://www.twitch.tv/xqc"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "streamer": "kaicenat"
    },
    {
      "streamer": "Kai Cenat"
    },
    {
      "streamer": "https://www.twitch.tv/xqc"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `status` | string | `"Partner"` | Twitch partner or affiliate status. |
| `videos` | array |  | Up to 10 recent broadcast videos, newest first. |
| `videos[].date` | string | `"2026-09-26"` | Video publication date. |
| `videos[].link` | string | `"https://www.twitch.tv/videos/2884438305"` | Twitch video page link. |
| `videos[].title` | string | `"🇮🇸EXPLORING ICELAND🇮🇸[Exploring The Unexplored]"` | Video title. |
| `videos[].views` | integer | `2146426` | Video view count. |
| `videos[].length` | string | `"7h 9m 45s"` | Video duration as readable text. |
| `category` | string or null | `"Grand Theft Auto V"` | Current game or category, if live. |
| `language` | string or null | `"English"` | Current stream language, if live. |
| `live_now` | boolean | `false` | Whether the channel is broadcasting now. |
| `followers` | integer | `21779314` | Follower count. |
| `channel_id` | string | `"641972806"` | Twitch channel ID. |
| `started_at` | string or null | `"2026-09-28T19:30:19+00:00"` | Current stream start time as ISO 8601 with offset, if live. |
| `description` | string or null | `"THE BEST AT ABSOLUTELY EVERYTHING. THE JUICER. LEADER OF THE JUICERS."` | Channel description, if present. |
| `channel_link` | string | `"https://www.twitch.tv/kaicenat"` | Twitch channel page link. |
| `display_name` | string | `"KaiCenat"` | Channel display name. |
| `stream_title` | string or null | `"🥽LIVE🥽HERE🥽LOCK IN🥽MEGA DAY🥽GTA 5🥽NOPIXEL V🥽BUT ALSO🥽CHILL REACT WITH FOOD BEFORE🥽ULTRA DAY🥽DONT LOSE OUT🥽"` | Current stream title, if live. |
| `current_viewers` | integer or null | `30995` | Current stream viewers, if live. |
| `profile_image_link` | string or null | `"https://static-cdn.jtvnw.net/jtv_user_pictures/bf6a04cf-3f44-4986-8eed-5c36bfad542b-profile_image-300x300.png"` | Channel profile image link. |

**Example input**

```json
{
  "streamer": "kaicenat"
}
```

**Example output**

```json
{
  "status": "Partner",
  "videos": [
    {
      "date": "2026-09-26",
      "link": "https://www.twitch.tv/videos/2884438305",
      "title": "🇮🇸EXPLORING ICELAND🇮🇸[Exploring The Unexplored]",
      "views": 2146426,
      "length": "7h 9m 45s"
    },
    {
      "date": "2026-09-15",
      "link": "https://www.twitch.tv/videos/2874951342",
      "title": "🎮WOLVERINE MARATHON🎮CLICK HERE🎮",
      "views": 3163856,
      "length": "14h 57m 48s"
    },
    {
      "date": "2026-09-15",
      "link": "https://www.twitch.tv/videos/2874428374",
      "title": "SHORT STREAM",
      "views": 649770,
      "length": "1h 4m 26s"
    }
  ],
  "category": null,
  "language": null,
  "live_now": false,
  "followers": 21779314,
  "channel_id": "641972806",
  "started_at": null,
  "description": null,
  "channel_link": "https://www.twitch.tv/kaicenat",
  "display_name": "KaiCenat",
  "stream_title": null,
  "current_viewers": null,
  "profile_image_link": "https://static-cdn.jtvnw.net/jtv_user_pictures/bf6a04cf-3f44-4986-8eed-5c36bfad542b-profile_image-300x300.png"
}
```

### Get stream schedule

Operation `get_stream_schedule`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get a channel’s public upcoming stream schedule for the next 1 to 30 days. Unspecified titles, categories, and end times are null.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `channel` | string | yes | `"lirik"` | Twitch channel name or channel link, for example lirik or https://www.twitch.tv/lirik/schedule. |
| `days_ahead` | integer | no | `30` | Number of days ahead to include, for example 14. Default 7. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "channel"
  ],
  "properties": {
    "channel": {
      "type": "string",
      "description": "Twitch channel name or channel link, for example lirik or https://www.twitch.tv/lirik/schedule.",
      "examples": [
        "lirik",
        "https://www.twitch.tv/cohhcarnage/schedule",
        "pokimane"
      ]
    },
    "days_ahead": {
      "type": "integer",
      "default": 7,
      "maximum": 30,
      "minimum": 1,
      "description": "Number of days ahead to include, for example 14. Default 7.",
      "examples": [
        30
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "channel": "lirik"
    },
    {
      "channel": "https://www.twitch.tv/cohhcarnage/schedule",
      "days_ahead": 30
    },
    {
      "channel": "pokimane"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `channel` | string | `"LIRIK"` | Channel display name. |
| `streams` | array |  | Upcoming scheduled streams in start-time order. |
| `streams[].link` | string | `"https://www.twitch.tv/lirik/schedule"` | Stream schedule page. |
| `streams[].title` | string or null | `"Normal Stream!"` | Scheduled stream title, if provided. |
| `streams[].end_at` | string or null | `"2026-09-29T19:00:00+00:00"` | Stream end time in ISO 8601 with offset, if provided. |
| `streams[].category` | string or null |  | Scheduled category, if provided. |
| `streams[].start_at` | string | `"2026-09-29T16:00:00+00:00"` | Stream start time in ISO 8601 with offset. |
| `streams[].cancelled` | boolean | `false` | Whether the stream was cancelled. |
| `streams[].recurring` | boolean | `true` | Whether the scheduled slot repeats weekly. |
| `schedule_link` | string | `"https://www.twitch.tv/lirik/schedule"` | Public channel schedule page. |
| `vacation_note` | string or null |  | Scheduled vacation note, if any. |

**Example input**

```json
{
  "channel": "lirik"
}
```

**Example output**

```json
{
  "channel": "LIRIK",
  "streams": [
    {
      "link": "https://www.twitch.tv/lirik/schedule",
      "title": null,
      "end_at": null,
      "category": null,
      "start_at": "2026-09-29T16:00:00+00:00",
      "cancelled": false,
      "recurring": true
    },
    {
      "link": "https://www.twitch.tv/lirik/schedule",
      "title": null,
      "end_at": null,
      "category": null,
      "start_at": "2026-09-30T16:00:00+00:00",
      "cancelled": false,
      "recurring": true
    },
    {
      "link": "https://www.twitch.tv/lirik/schedule",
      "title": null,
      "end_at": null,
      "category": null,
      "start_at": "2026-10-02T16:00:00+00:00",
      "cancelled": false,
      "recurring": true
    }
  ],
  "schedule_link": "https://www.twitch.tv/lirik/schedule",
  "vacation_note": null
}
```

### List channel videos

Operation `list_channel_videos`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List a Twitch channel’s public past broadcasts or highlights by date, or its top clips by views for a selected period. Returns up to 100 items; clips unavailable to anonymous viewers are not included.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `type` | string | no | `"clips"` | Which videos to list, for example highlights. |
| `channel` | string | yes | `"xQc"` | Twitch channel name or channel link, for example xQc or https://www.twitch.tv/xqc. |
| `clip_period` | string | no | `"all_time"` | Period for top clips only, for example last_week. |
| `max_results` | integer | no | `20` | Maximum number of items, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "channel"
  ],
  "properties": {
    "type": {
      "enum": [
        "past_broadcasts",
        "highlights",
        "clips"
      ],
      "type": "string",
      "default": "past_broadcasts",
      "description": "Which videos to list, for example highlights.",
      "examples": [
        "clips",
        "highlights",
        "past_broadcasts"
      ]
    },
    "channel": {
      "type": "string",
      "description": "Twitch channel name or channel link, for example xQc or https://www.twitch.tv/xqc.",
      "examples": [
        "xQc",
        "https://www.twitch.tv/xqc"
      ]
    },
    "clip_period": {
      "enum": [
        "last_day",
        "last_week",
        "last_month",
        "all_time"
      ],
      "type": "string",
      "default": "last_week",
      "description": "Period for top clips only, for example last_week.",
      "examples": [
        "all_time",
        "last_day"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of items, for example 20.",
      "x-fous-developer": true,
      "examples": [
        20,
        100
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "channel": "xQc"
    },
    {
      "type": "clips",
      "channel": "https://www.twitch.tv/xqc",
      "clip_period": "all_time",
      "max_results": 20
    },
    {
      "type": "highlights",
      "channel": "xQc",
      "max_results": 20
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `videos` | array |  | Past broadcasts or highlights newest first; clips most viewed first. |
| `videos[].id` | string | `"2886592871"` | Twitch video or clip ID. |
| `videos[].date` | string or null | `"2026-09-28"` | Publication date. |
| `videos[].title` | string or null | `"🥽LIVE🥽HERE🥽LOCK IN🥽MEGA DAY🥽GTA 5🥽NOPIXEL V🥽BUT ALSO🥽CHILL REACT WITH FOOD BEFORE🥽ULTRA DAY🥽DONT LOSE OUT🥽"` | Video or clip title. |
| `videos[].views` | integer or null | `7475` | View count. |
| `videos[].length` | string or null | `"5:56:49"` | Duration as text. |
| `videos[].category` | string or null | `"Just Chatting"` | Game or category name. |
| `videos[].video_link` | string | `"https://www.twitch.tv/videos/2886592871"` | Twitch page for this video or clip. |
| `videos[].thumbnail_link` | string or null | `"https://vod-secure.twitch.tv/_404/404_processing_320x180.png"` | Thumbnail image link. |
| `channel` | string | `"xQc"` | Channel display name. |

**Example input**

```json
{
  "channel": "xQc"
}
```

**Example output**

```json
{
  "videos": [
    {
      "id": "2886592871",
      "date": "2026-09-28",
      "title": "🥽LIVE🥽HERE🥽LOCK IN🥽MEGA DAY🥽GTA 5🥽NOPIXEL V🥽BUT ALSO🥽CHILL REACT WITH FOOD BEFORE🥽ULTRA DAY🥽DONT LOSE OUT🥽",
      "views": 7475,
      "length": "5:56:49",
      "category": "Just Chatting",
      "video_link": "https://www.twitch.tv/videos/2886592871",
      "thumbnail_link": "https://vod-secure.twitch.tv/_404/404_processing_320x180.png"
    },
    {
      "id": "2885783503",
      "date": "2026-09-27",
      "title": "🤖LIVE🤖DRAMA🤖NEWS🤖GTA V🤖NOPIXEL V🤖 5+5 = 10🤖BIG DAY TODAY🤖BIG IMPORTANT🤖HUGE🤖DONT MISS🤖JP RUNNING THE STREETS🤖GRINDFATHER IS BACK",
      "views": 958611,
      "length": "11:24:20",
      "category": "Just Chatting",
      "video_link": "https://www.twitch.tv/videos/2885783503",
      "thumbnail_link": "https://static-cdn.jtvnw.net/cf_vods/d2vi6trrdongqn/d1adaa591424eaef8ee8_xqc_320551363424_1790538434//thumb/thumb0-320x180.jpg"
    },
    {
      "id": "2884829425",
      "date": "2026-09-26",
      "title": "🧶LIVE🧶WICKED🧶GTA V🧶NOPIXEL 5🧶DRAMA🧶NEWS🧶VIDEOS🧶GAMES🧶REACTS🧶STUFF🧶IMPORTANT🧶LOCK IN🧶WE OUT HERE🧶BIG DAY🧶",
      "views": 1028483,
      "length": "11:40:02",
      "category": "Just Chatting",
      "video_link": "https://www.twitch.tv/videos/2884829425",
      "thumbnail_link": "https://static-cdn.jtvnw.net/cf_vods/d2vi6trrdongqn/2f5089a8f1d5036791f2_xqc_320493935452_1790452122//thumb/thumb0-320x180.jpg"
    }
  ],
  "channel": "xQc"
}
```

### List top categories

Operation `list_top_categories`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List Twitch games and categories ranked by current live viewers, with content tags, box art and category links. Viewer counts can change between requests.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `max_results` | integer | no | `5` | Maximum number of categories to return, for example 25. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of categories to return, for example 25.",
      "x-fous-developer": true,
      "examples": [
        5,
        100
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {},
    {
      "max_results": 5
    },
    {
      "max_results": 100
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `categories` | array |  | Top categories in descending viewer order. |
| `categories[].rank` | integer | `1` | Position by live viewers, highest first. |
| `categories[].tags` | array or null |  | Category content tags. |
| `categories[].category_id` | string or null | `"509658"` | Twitch category ID. |
| `categories[].category_link` | string or null | `"https://www.twitch.tv/directory/category/just-chatting"` | Twitch category page link. |
| `categories[].category_name` | string or null | `"Just Chatting"` | Name of the game or category. |
| `categories[].box_art_image_link` | string or null | `"https://static-cdn.jtvnw.net/ttv-boxart/509658-300x400.jpg"` | Box art image link. |
| `categories[].current_live_viewers` | integer or null | `230485` | People watching the category live now. |

**Example input**

```json
{}
```

**Example output**

```json
{
  "categories": [
    {
      "rank": 1,
      "tags": [
        "IRL"
      ],
      "category_id": "509658",
      "category_link": "https://www.twitch.tv/directory/category/just-chatting",
      "category_name": "Just Chatting",
      "box_art_image_link": "https://static-cdn.jtvnw.net/ttv-boxart/509658-300x400.jpg",
      "current_live_viewers": 230485
    },
    {
      "rank": 2,
      "tags": [
        "FPS",
        "Shooter",
        "Driving/Racing Game"
      ],
      "category_id": "32982",
      "category_link": "https://www.twitch.tv/directory/category/grand-theft-auto-v",
      "category_name": "Grand Theft Auto V",
      "box_art_image_link": "https://static-cdn.jtvnw.net/ttv-boxart/32982_IGDB-300x400.jpg",
      "current_live_viewers": 165212
    },
    {
      "rank": 3,
      "tags": [
        "Simulation",
        "Adventure Game",
        "Arcade"
      ],
      "category_id": "27471",
      "category_link": "https://www.twitch.tv/directory/category/minecraft",
      "category_name": "Minecraft",
      "box_art_image_link": "https://static-cdn.jtvnw.net/ttv-boxart/27471_IGDB-300x400.jpg",
      "current_live_viewers": 76068
    }
  ]
}
```

### List top streams

Operation `list_top_streams`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get the most-watched live Twitch streams, optionally within a category and language. All-category results are limited to 30 streams; category results allow up to 100.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `category` | string | no | `"Fortnite"` | Game or category name, such as Fortnite or Just Chatting. Leave blank for all categories. |
| `language` | string | no | `"English"` | Stream language name or two-letter code, such as English or es. Leave blank for all languages. |
| `max_results` | integer | no | `25` | Maximum number of streams, such as 25. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "default": "",
      "description": "Game or category name, such as Fortnite or Just Chatting. Leave blank for all categories.",
      "examples": [
        "Fortnite",
        "Just Chatting"
      ]
    },
    "language": {
      "type": "string",
      "default": "",
      "description": "Stream language name or two-letter code, such as English or es. Leave blank for all languages.",
      "examples": [
        "English",
        "ja"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of streams, such as 25.",
      "x-fous-developer": true,
      "examples": [
        25,
        5,
        30
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "category": "Fortnite",
      "language": "English",
      "max_results": 25
    },
    {},
    {
      "category": "Just Chatting",
      "language": "ja",
      "max_results": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `streams` | array |  |  |
| `streams[].rank` | integer | `1` |  |
| `streams[].category` | string or null | `"Fortnite"` |  |
| `streams[].language` | string or null | `"English"` |  |
| `streams[].started_at` | string or null | `"2026-09-28T20:25:44+00:00"` |  |
| `streams[].channel_link` | string or null | `"https://www.twitch.tv/happyhappygal"` |  |
| `streams[].stream_title` | string or null | `"0 to 200,000 Sprite Dust! World Record Attempt!"` |  |
| `streams[].streamer_name` | string or null | `"HappyHappyGal"` |  |
| `streams[].thumbnail_link` | string or null | `"https://static-cdn.jtvnw.net/previews-ttv/live_user_happyhappygal-640x360.jpg"` |  |
| `streams[].current_viewers` | integer or null | `5657` |  |

**Example input**

```json
{
  "category": "Fortnite",
  "language": "English",
  "max_results": 25
}
```

**Example output**

```json
{
  "streams": [
    {
      "rank": 1,
      "category": "Fortnite",
      "language": "English",
      "started_at": "2026-09-28T20:25:44+00:00",
      "channel_link": "https://www.twitch.tv/happyhappygal",
      "stream_title": "0 to 200,000 Sprite Dust! World Record Attempt!",
      "streamer_name": "HappyHappyGal",
      "thumbnail_link": "https://static-cdn.jtvnw.net/previews-ttv/live_user_happyhappygal-640x360.jpg",
      "current_viewers": 5657
    },
    {
      "rank": 2,
      "category": "Fortnite",
      "language": "English",
      "started_at": "2026-09-28T23:25:05+00:00",
      "channel_link": "https://www.twitch.tv/higgs",
      "stream_title": "🏆WINNING SOLO FNCS 🏆 10TH AT LAN | !discord !community !updates",
      "streamer_name": "Higgs",
      "thumbnail_link": "https://static-cdn.jtvnw.net/previews-ttv/live_user_higgs-640x360.jpg",
      "current_viewers": 3622
    },
    {
      "rank": 3,
      "category": "Fortnite",
      "language": "English",
      "started_at": "2026-09-28T22:39:12+00:00",
      "channel_link": "https://www.twitch.tv/asianjeff",
      "stream_title": "WINNING SOLO FNCS TODAY ON CHATS LIFE INTO FINDING MY FUTURE WIFE TONIGHT 🩷DAY 91/365🩷!gg !1v1 !newvid",
      "streamer_name": "AsianJeff",
      "thumbnail_link": "https://static-cdn.jtvnw.net/previews-ttv/live_user_asianjeff-640x360.jpg",
      "current_viewers": 1115
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@twitch",
  "visibility": "public",
  "operation": "get_channel",
  "version": 1,
  "input": {
    "streamer": "kaicenat"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@twitch\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_channel\",\n  \"version\": 1,\n  \"input\": {\n    \"streamer\": \"kaicenat\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@twitch",
  "visibility": "public",
  "operation": "get_channel",
  "version": 1,
  "input": {
    "streamer": "kaicenat"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/twitch`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_channel`: Get channel. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_stream_schedule`: Get stream schedule. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_channel_videos`: List channel videos. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_top_categories`: List top categories. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_top_streams`: List top streams. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-twitch https://api.fous.com/mcp/tools/twitch --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare popular live streams by category or language.
- Track games and categories with the most live viewers.
- Review a channel’s profile, live status, and recent broadcasts.
- Find a channel’s past broadcasts, highlights, or top clips.
- Plan around a channel’s upcoming scheduled streams.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Twitch tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Twitch account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from twitch.tv when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### Which channels are most-watched right now?

List top streams returns live streams ranked by viewers, optionally filtered by category or language.

### Which categories have the most live viewers?

List top categories returns games and categories ranked by current live viewers.

### What videos has a channel published?

List channel videos returns broadcasts, highlights, or top clips; Get channel returns up to 10 recent broadcasts.

## Related

- [Kick API](https://fous.com/tools/kick.md): Kick provides public streamer channel information and current live stream details when available, plus the most-watched live streams now, optionally filtered by category and language.
- [YouTube API](https://fous.com/tools/youtube.md): YouTube returns public video, caption, comment and channel details, company channels, and the latest weekly Top Songs chart; inferred dates and some counts may be approximate.
- [Spotify API](https://fous.com/tools/spotify.md): Spotify returns public artist profiles, album credits and ordered tracks, song details and play counts, up to 500 playlist songs, keyword results, and country-based podcast charts; dates and regional options vary.
- [Microsoft Store API](https://fous.com/tools/microsoft-store.md): Microsoft Store returns app and game listings, country-specific searches, and ranked charts; update notes, purchase prices, and exact rating counts may be unavailable.
- [TikTok API](https://fous.com/tools/tiktok.md): TikTok returns public profiles and totals, recent pinned-first videos, and public video details and engagement; private content unavailable, and feeds may be incomplete or empty.
- [Apple Podcasts API](https://fous.com/tools/apple-podcasts.md): Apple Podcasts returns chart listings, relevant show search results, show details with newest available episodes, and country-specific ratings and reviews; results are capped, and older or subscription episodes may be unavailable.
- [Bilibili API](https://fous.com/tools/bilibili.md): Bilibili provides public video details and statistics, plus current overall or category rankings; movie rankings omit some video details.
- [Steam API](https://fous.com/tools/steam.md): Steam returns game details, country-specific prices, reviews, and current and historical player counts, plus player rankings and sales lists; some details or prices may be unavailable, and review totals span languages and verdicts.
- [All Entertainment tools](https://fous.com/tools/category/entertainment)
