Twitch API endpoint
Returns the top currently-live streams for a Twitch game/category, ranked by viewer count: title, viewer count, broadcaster, and tags.
/twitch/streamsQuery parameters:
game (required) — a Twitch game/category slug, the lowercase URL slug
from twitch.tv/directory/category/{slug} (e.g. league-of-legends).limit (optional) — number of streams to return. Defaults to 20,
clamped to a maximum of 100.Notable response behavior:
streams is ordered by viewers_count descending — Twitch's own default
directory sort.tags are the stream's freeform tags (language, event, etc.) as Twitch
itself surfaces them, not a curated taxonomy.404. A missing game returns
400 before any upstream request is made.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| title | 20 | |
| viewers_count | 20 | 1,514 to 14,250, median 3,382 |
| preview_image_url | 20 | static-cdn.jtvnw.net |
| broadcaster | 20 | |
| tags | 20 | median 2 entries |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| game | string | Yes | Twitch game/category slug (the lowercase URL slug from twitch.tv/directory/category/{slug}) | league-of-legends | |
| limit | integer | No | Number of streams to return (default 20, max 100) | 20 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/twitch/streams?game=league-of-legends&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"game": "league-of-legends",
"count": 20,
"streams": [
{
"id": "317457454434",
"title": "LCK T1 VS DK - T1 HOMEGROUND",
"viewers_count": 59142,
"preview_image_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_caedrel-640x360.jpg",
"broadcaster": {
"id": "92038375",
"login": "caedrel",
"display_name": "Caedrel",
"is_partner": true
},
"tags": [
"English",
"LCK",
"Worlds",
"Esports"
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/twitch.streamsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | twitch.StreamsResponse | No | ||||
| data.count | integer | No | 20 | |||
| data.game | string | No | ||||
| data.streams | array | No | ||||
| data.streams[].broadcaster | twitch.StreamBroadcaster | No | ||||
| data.streams[].broadcaster.display_name | string | No | ||||
| data.streams[].broadcaster.id | string | No | ||||
| data.streams[].broadcaster.is_partner | boolean | No | true | |||
| data.streams[].broadcaster.login | string | No | ||||
| data.streams[].id | string | No | ||||
| data.streams[].preview_image_url | string | No | ||||
| data.streams[].tags | array | No | ||||
| data.streams[].title | string | No | ||||
| data.streams[].viewers_count | integer | No | 56596 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/twitch/streams?game=league-of-legends&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"