Kick API endpoint
Returns a Kick (kick.com) channel's recent broadcast history, newest first: id, title, start time, duration in milliseconds, the viewer count Kick reports for the broadcast, language, mature flag, tags, categories, thumbnail, and for broadcasts with a recording its video uuid, video views and kick.com video link. slug is the channel slug from its kick.com address, case-insensitive; a full kick.com URL is also accepted. Kick keeps between none and about thirty broadcasts. Only public data is read and no playable media is returned. An unknown channel returns not found.
/kick/channel-streamsslug is required (see kick-channel).
Notable response behavior:
viewer_count is the figure Kick reports for the broadcast. Kick does not say whether it is a peak or an average.duration_ms is the broadcast length in milliseconds. started_at is RFC 3339 in UTC.video_uuid, video_views and video_url describe the recording and are omitted for a broadcast without one. Pass video_uuid to kick-video.kick-channel-videos lists the same broadcasts with only their recordings' views; this call adds the reported viewer count and covers broadcasts without a recording.404.Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"slug": "xqc",
"streams": [
{
"id": 134089063,
"title": "🫂 LIVE 🫂 CLICK 🫂 DRAMA 🫂 NOPIXEL V 🫂 GTA V 🫂 PALETO MYSTEY 🫂 WERE SO BACK 🫂 DRILL FINDING 🫂 TURF GRINDING 🫂 PUZZLE SOLV…",
"started_at": "2026-10-24T20:50:47Z",
"duration_ms": 42709000,
"viewer_count": 2175,
"live": false,
"language": "English",
"mature": true,
"categories": [
{
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
}
],
"thumbnail_url": "https://images.kick.com/video_thumbnails/DsuAwCgUc9Bh/hH9nftwU3DHT/720.webp",
"video_uuid": "eb707c31-208b-4737-8bcf-a5c9fd187e82",
"video_views": 52586,
"video_url": "https://kick.com/xqc/videos/eb707c31-208b-4737-8bcf-a5c9fd187e82"
},
{
"id": 133908151,
"title": "🎃 LIVE🎃 HERE🎃DRAMA🎃 BIG🎃 NOPIXEL V🎃 GTA V🎃 MEGA DAY🎃 ULTRA MEGA DAY🎃 IMPORTANT🎃 LOCK IN🎃",
"started_at": "2026-10-23T21:07:10Z",
"duration_ms": 40812000,
"viewer_count": 1262,
"live": false,
"language": "English",
"mature": true,
"categories": [
{
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
}
],
"thumbnail_url": "https://images.kick.com/video_thumbnails/DsuAwCgUc9Bh/0dcgIP3KbxS5/720.webp",
"video_uuid": "36d9b0c6-b1e7-477a-9124-f370c4f10a4e",
"video_views": 246133,
"video_url": "https://kick.com/xqc/videos/36d9b0c6-b1e7-477a-9124-f370c4f10a4e"
}
]
}
}
| Field | Filled in, of 25 checked | Values in the sample |
|---|---|---|
| id | 25 | |
| title | 25 | median 120 characters |
| started_at | 25 | 2026-09-26 to 2026-10-24 |
| duration_ms | 25 | 8,170,000 to 50,960,000, median 41,897,000 |
| viewer_count | 25 | 431 to 27,829, median 1,262 |
| live | 25 | true in 0 of 25 |
| language | 25 | |
| mature | 25 | true in 23 of 25 |
| categories | 25 | median 1 entry |
| thumbnail_url | 25 | images.kick.com |
| video_uuid | 25 | |
| video_views | 25 | 31,877 to 246,143, median 51,353 |
| video_url | 25 | kick.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | Channel slug from kick.com/{slug}, case-insensitive; a kick.com URL is also accepted | xqc | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/kick/channel-streams?slug=xqc" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "xqc",
"streams": [
{
"id": 134089063,
"title": "🫂 LIVE 🫂 CLICK 🫂 DRAMA 🫂 NOPIXEL V 🫂 GTA V 🫂 PALETO MYSTEY 🫂 WERE SO BACK 🫂 DRILL FINDING 🫂 TURF GRINDING 🫂 PUZZLE SOLV…",
"started_at": "2026-10-24T20:50:47Z",
"duration_ms": 42709000,
"viewer_count": 2175,
"live": false,
"language": "English",
"mature": true,
"categories": [
{
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
}
],
"thumbnail_url": "https://images.kick.com/video_thumbnails/DsuAwCgUc9Bh/hH9nftwU3DHT/720.webp",
"video_uuid": "eb707c31-208b-4737-8bcf-a5c9fd187e82",
"video_views": 52586,
"video_url": "https://kick.com/xqc/videos/eb707c31-208b-4737-8bcf-a5c9fd187e82"
},
{
"id": 133908151,
"title": "🎃 LIVE🎃 HERE🎃DRAMA🎃 BIG🎃 NOPIXEL V🎃 GTA V🎃 MEGA DAY🎃 ULTRA MEGA DAY🎃 IMPORTANT🎃 LOCK IN🎃",
"started_at": "2026-10-23T21:07:10Z",
"duration_ms": 40812000,
"viewer_count": 1262,
"live": false,
"language": "English",
"mature": true,
"categories": [
{
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
}
],
"thumbnail_url": "https://images.kick.com/video_thumbnails/DsuAwCgUc9Bh/0dcgIP3KbxS5/720.webp",
"video_uuid": "36d9b0c6-b1e7-477a-9124-f370c4f10a4e",
"video_views": 246133,
"video_url": "https://kick.com/xqc/videos/36d9b0c6-b1e7-477a-9124-f370c4f10a4e"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/kick.channelStreamsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | kick.ChannelStreamsResponse | No | ||||
| data.slug | string | No | ||||
| data.streams | array | No | ||||
| data.streams[].categories | array | No | ||||
| data.streams[].categories[].id | integer | No | ||||
| data.streams[].categories[].name | string | No | ||||
| data.streams[].categories[].slug | string | No | ||||
| data.streams[].duration_ms | integer | No | ||||
| data.streams[].id | integer | No | ||||
| data.streams[].language | string | No | ||||
| data.streams[].live | boolean | No | ||||
| data.streams[].mature | boolean | No | ||||
| data.streams[].started_at | string | No | ||||
| data.streams[].tags | array | No | ||||
| data.streams[].thumbnail_url | string | No | ||||
| data.streams[].title | string | No | ||||
| data.streams[].video_url | string | No | ||||
| data.streams[].video_uuid | string | No | VideoUUID, VideoViews and VideoURL describe the recording; empty when the broadcast has none. | |||
| data.streams[].video_views | integer | No | ||||
| data.streams[].viewer_count | integer | No | ViewerCount is the viewer figure Kick reports for the broadcast; the upstream does not say whether it is a peak or an average. | |||
| 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/kick/channel-streams?slug=xqc" \
-H "x-api-key: $CRAWLORA_API_KEY"