Kick API endpoint
Returns one Kick (kick.com) past broadcast looked up by its recording's uuid, without needing the channel: uuid, title, start time, duration in milliseconds, the viewer count Kick reports, views, status, language, mature flag, tags, categories, thumbnail, the owning channel and the kick.com video link. id is the uuid from kick-channel-videos or kick-channel-streams, or a kick.com video URL. Only public data is read and no playable media is returned. An unknown video returns not found.
/kick/videoid is required: the 36-character video uuid from kick-channel-videos (uuid) or kick-channel-streams (video_uuid). A kick.com/{slug}/videos/{uuid} URL is also accepted.
Notable response behavior:
channel is the owning channel, so a uuid can be resolved without knowing the channel first.views is the recording's views; viewer_count is the figure Kick reports for the broadcast.duration_ms is in milliseconds; times are RFC 3339 in UTC.404; a malformed id returns 400.Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"uuid": "eb707c31-208b-4737-8bcf-a5c9fd187e82",
"id": 129787271,
"status": "public",
"views": 52586,
"created_at": "2026-10-24T20:50:52.000000Z",
"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:47+00:00",
"duration_ms": 42709000,
"viewer_count": 2175,
"language": "English",
"mature": true,
"categories": [
{
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
}
],
"thumbnail_url": "https://kick-prod-videos-30-day.s3.us-west-2.amazonaws.com/thumbnails/livestream/134089063/thumb0/video_thumbnail/thumbβ¦",
"channel": {
"id": 668,
"slug": "xqc",
"username": "xQc",
"profile_picture": "https://files.kick.com/images/user/676/profile_image/conversion/931b4e8f-5445-427c-bd82-b473530390cc-fullsize.webp",
"verified": true,
"url": "https://kick.com/xqc"
},
"url": "https://kick.com/xqc/videos/eb707c31-208b-4737-8bcf-a5c9fd187e82"
}
}
| Field | Filled in, of 1 checked |
|---|---|
| id | 1 |
| name | 1 |
| slug | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id | string | Yes | Video uuid (36 characters) from kick-channel-videos or kick-channel-streams, or a kick.com video URL | eb707c31-208b-4737-8bcf-a5c9fd187e82 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/kick/video?id=eb707c31-208b-4737-8bcf-a5c9fd187e82" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"uuid": "eb707c31-208b-4737-8bcf-a5c9fd187e82",
"id": 129787271,
"status": "public",
"views": 52586,
"created_at": "2026-10-24T20:50:52.000000Z",
"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:47+00:00",
"duration_ms": 42709000,
"viewer_count": 2175,
"language": "English",
"mature": true,
"categories": [
{
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
}
],
"thumbnail_url": "https://kick-prod-videos-30-day.s3.us-west-2.amazonaws.com/thumbnails/livestream/134089063/thumb0/video_thumbnail/thumbβ¦",
"channel": {
"id": 668,
"slug": "xqc",
"username": "xQc",
"profile_picture": "https://files.kick.com/images/user/676/profile_image/conversion/931b4e8f-5445-427c-bd82-b473530390cc-fullsize.webp",
"verified": true,
"url": "https://kick.com/xqc"
},
"url": "https://kick.com/xqc/videos/eb707c31-208b-4737-8bcf-a5c9fd187e82"
}
}Request schema
No body schema
Response schema
#/definitions/kick.videoResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | kick.VideoResponse | No | ||||
| data.categories | array | No | ||||
| data.categories[].id | integer | No | ||||
| data.categories[].name | string | No | ||||
| data.categories[].slug | string | No | ||||
| data.channel | kick.ChannelRef | No | ||||
| data.channel.id | integer | No | ||||
| data.channel.profile_picture | string | No | ||||
| data.channel.slug | string | No | ||||
| data.channel.url | string | No | ||||
| data.channel.username | string | No | ||||
| data.channel.verified | boolean | No | ||||
| data.created_at | string | No | ||||
| data.duration_ms | integer | No | ||||
| data.id | integer | No | ||||
| data.language | string | No | ||||
| data.mature | boolean | No | ||||
| data.started_at | string | No | ||||
| data.status | string | No | ||||
| data.tags | array | No | ||||
| data.thumbnail_url | string | No | ||||
| data.title | string | No | ||||
| data.url | string | No | ||||
| data.uuid | string | No | ||||
| data.viewer_count | integer | No | ||||
| data.views | integer | No | ||||
| 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/video?id=eb707c31-208b-4737-8bcf-a5c9fd187e82" \
-H "x-api-key: $CRAWLORA_API_KEY"