Twitch API
The Twitch API returns streaming data as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary channel endpoint returns a channel's id, login, display name, description, creation date, images and follower count, and you can pull a live stream, videos, clips, search channels and categories, and top games. It is built for streaming analytics and esports tools that need Twitch data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, channel, on .
{
"method": "POST",
"url": "https://api.reefapi.com/twitch/v1/channel",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"login": "shroud"
}
}{
"ok": true,
"meta": {
"api": "twitch",
"endpoint": "channel",
"mode": "live",
"latency_ms": 818.1,
"record_count": 1,
"bytes": 624,
"cache_hit": false,
"method": "graphql"
},
"data": {
"channel": {
"id": "37402112",
"login": "shroud",
"display_name": "shroud",
"description": "I'm back baby",
"created_at": "[redacted-phone]T15:50:32.87847Z",
"profile_image": "https://static-cdn.jtvnw.net/jtv_user_pictures/c754eebf-745b-4e0a-814a-10bcaecaabbc-profile_image-300x300.png",
"banner_image": "https://static-cdn.jtvnw.net/jtv_user_pictures/dbee25e8-55b[redacted-phone]f0-e9d4661dcc66-profile_banner-480.jpeg",
"follower_count": 11297586,
"is_partner": true,
"is_affiliate": false,
"is_staff": null,
"primary_color": "00ADFF",
"is_live": false,
"stream": null,
"url": "https://www.twitch.tv/shroud"
}
}
}What the Twitch API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| channel | Full channel/user profile by login: id, display name, description, created-at, profile and banner image, follower count, partner/affiliate/staff flags, and the current live stream (title, viewer count, game/category, started-at) if live. | Ops teams call channel to get full channel/user profile by login. | login |
| stream | Live status of a channel: whether it is live right now and, if so, the stream id, title, viewer count, game/category, started-at timestamp and a 1080p thumbnail. Returns is_live=false (honest-empty) for an offline channel. | Developer tools call stream to get live status of a channel. | login |
| videos | A channel's past broadcasts / VODs (most recent first), up to 100 in one page: id, title, duration, view count, published-at, game/category and thumbnail. Note: Twitch integrity-gates pagination beyond the first page for keyless access. | Validation workflows call videos to get a channel's past broadcasts / VODs (most recent first), up to 100 in one page. | login, limit, type, sort |
| clips | Top clips of a channel, ranked by views, up to 100 in one page: id, slug, title, view count, created-at, duration, game/category, the clip creator and the clip URL. Filter the time window with `period`. Pagination beyond page one is integrity-gated. | Data-quality teams call clips to get top clips of a channel, ranked by views, up to 100 in one page. | login, limit, period |
| search_channels | Search Twitch channels by name/keyword. Returns matching channels with id, login, display name, description, follower count, partner/affiliate flags and live status (viewer count + game when live). | Ops teams call search_channels to search Twitch channels by name/keyword. | query, limit |
| search_categories | Search Twitch games/categories by name. Returns matching categories with id, name, display name, current live viewer count and box-art image. | Developer tools call search_categories to search Twitch games/categories by name. | query, limit |
| top_games | The top games/categories on Twitch right now, ranked by live viewers: id, name, display name, current viewer count, content tags and box-art image. Up to 30. | Validation workflows call top_games to get the top games/categories on Twitch right now, ranked by live viewers. | limit |
| top_streams | The top live streams on Twitch right now, ranked by viewers: stream id, title, viewer count, started-at, the broadcasting channel (login, display name) and the game/category. Up to 30. | Data-quality teams call top_streams to get the top live streams on Twitch right now, ranked by viewers. | limit |
| game | Game/category detail by name plus its top live streams: category id, display name, total live viewers, description, avatar — and the top channels (up to 30) currently streaming it, each with title, viewer count and broadcaster. | Ops teams call game to get game/category detail by name plus its top live streams. | name, limit |
| schedule | A channel's stream schedule: the next upcoming stream (start, title, category) plus the channel's recurring weekly schedule segments — each with start/end time, title, cancelled flag and the planned game/category. Returns honest-empty when the channel has not published a schedule. | Developer tools call schedule to get a channel's stream schedule. | login |
| game_clips | Top clips for a whole game/category (site-wide, across all channels), ranked by views, up to 100 in one page: id, slug, title, view count, created-at, duration, the broadcaster the clip is from, the clip creator and the URL. Filter the time window with `period`. Pagination beyond page one is integrity-gated. | Validation workflows call game_clips to get top clips for a whole game/category (site-wide, across all channels), ranked by views, up to…. | name, limit, period |
| game_videos | Top past broadcasts / VODs for a whole game/category (site-wide, across all channels), up to 100 in one page: id, title, duration, view count, published-at, the owning channel and a thumbnail. Order by views (default) or newest. Pagination beyond page one is integrity-gated. | Data-quality teams call game_videos to get top past broadcasts / VODs for a whole game/category (site-wide, across all channels), up to…. | name, limit, sort |
| team | A Twitch team profile by name plus its member channels: team id, name, display name, description, logo/banner image — and the member channels (up to 100), each with login, display name, partner/affiliate status and current live status (viewer count + game when live). | Ops teams call team to get a Twitch team profile by name plus its member channels. | name, limit |
Call channel from your stack
curl -X POST https://api.reefapi.com/twitch/v1/channel \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"login":"shroud"}'import requests
r = requests.post(
"https://api.reefapi.com/twitch/v1/channel",
headers={"x-api-key": REEF_KEY},
json={
"login": "shroud"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/twitch/v1/channel", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"login": "shroud"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.twitch.channel with {"login":"shroud"}.Who uses this API and why
- Streaming analytics call channel and stream to track a streamer's status and audience.
- Esports tools use top_games and clips to follow trends.
- Discovery uses search_channels and search_categories to find creators.
Questions developers ask before integrating
What is the Twitch API?
Twitch API is a ReefAPI endpoint group for twitch It returns live JSON through POST requests under /twitch/v1.
Is the Twitch API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Twitch calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Twitch login or account?
No login to Twitch is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Twitch data?
The page example is captured from a live channel call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Twitch API use?
Twitch actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Twitch from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call twitch actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Twitch API a Twitch scraper?
It is the managed alternative to a DIY Twitch scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same twitch back as clean JSON.
Why does my Twitch scraper keep getting blocked?
Most Twitch scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.