Twitch
Channels, streams, videos, clips, VOD chat, teams, and emotes from Twitch, served as plain REST.
Endpoints
| Endpoint | Query params | What it returns | Price | Data up to |
|---|---|---|---|---|
GET /twitch/channels |
login |
Channel info. | $0.003 | 1 min |
GET /twitch/search |
query, target |
Search channels or games. | $0.003 | 1 min |
GET /twitch/streams |
game, sort |
Top live streams, overall or for a game. | $0.003 | 15 sec |
GET /twitch/games |
— | Top games by viewer count. | $0.003 | 1 min |
GET /twitch/channels/tags |
login |
Tags set on a channel. | $0.003 | 30 sec |
GET /twitch/channels/schedule |
login |
Upcoming stream schedule. | $0.003 | 5 min |
GET /twitch/videos |
login, sort, type |
Past broadcast/highlight videos. | $0.003 | 1 min |
GET /twitch/videos/detail |
id |
Full detail for one video. | $0.003 | 5 min |
GET /twitch/clips |
login, period |
Clips for a channel. | $0.003 | 1 min |
GET /twitch/clips/detail |
slug |
Full detail for one clip. | $0.003 | 5 min |
GET /twitch/videos/chat |
id, max_messages |
Walk a VOD's chat replay. | $0.003 | 5 min |
GET /twitch/channels/followers-count |
login |
Follower count for a channel. | $0.001 | 1 min |
GET /twitch/teams |
name |
Team info. | $0.003 | 5 min |
GET /twitch/teams/members |
name, cursor |
Team member listing, paginated. | $0.003 | 1 min |
GET /twitch/channels/subscription-products |
login |
A channel's subscription tiers. | $0.003 | 5 min |
GET /twitch/channels/emotes |
login |
A channel's custom emotes. | $0.003 | 5 min |
GET /twitch/channels/badges |
id, size |
Badge images for a user/channel id. | $0.003 | 5 min |
Prices are per call, paid in USDC with x402. "Data up to" is the cache window: a repeated call inside it returns the same data.
Calling it
# x402: no account or API key. The server answers 402 with payment instructions; an x402 client pays and repeats the request.
curl -i "https://<base-url>/twitch/streams"
Responses are JSON. Field names follow the upstream source, so a response can be larger than the table above suggests.
Notes
- Every enum field (
target,sort,type,period,size) is a closed set validated against Twitch's own GraphQL schema. - An unknown
login/gameis not an error — most endpoints return an empty result; endpoints that require the entity to exist (videos, clips, teams, subscriptions, emotes, badges) return a not-found error instead. videos/chatwalks forward through a VOD's chat replay (not cursor-based) and stops atmax_messages, the end of the VOD, or a page with no new messages.