Kick API endpoint
Returns one page of 20 clips made in a Kick (kick.com) game or activity category, newest first: id, title, kick.com link, thumbnail, views, likes, duration in seconds, creation time, mature flag, category, the channel it came from, with a cursor for the next page. slug is a category slug from kick-subcategories such as just-chatting; a top-level category such as games has no clip page and returns not found. Only public data is read and no playable media is returned.
/kick/category-clipsQuery parameters:
slug (required): a category slug from kick-subcategories or kick-search-categories, lowercase (for example just-chatting, grand-theft-auto-v or irl). A kick.com/category/... URL is also accepted. A top-level category from kick-categories (such as games) has no clip page and returns 404, as does an unknown slug.cursor: the previous response's next_cursor. Omit it for the newest page. Kick ignores a cursor it does not recognize and returns the newest page, so do not construct one.Notable response behavior:
kick-clips cannot filter by category (Kick ignores the category on that listing), so this is the way to browse one category's clips.kick-clips.0 views and likes.category echoes the slug that was read. Playable clip URLs are never returned.Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"category": "just-chatting",
"clips": [
{
"id": "clip_01M5TRXEP4T06BDKCRE23YG4KK",
"title": "465456456456465456456",
"url": "https://kick.com/3mr/clips/clip_01M5TRXEP4T06BDKCRE23YG4KK",
"thumbnail_url": "https://clips.kick.com/clips/44/clip_01M5TRXEP4T06BDKCRE23YG4KK/thumbnail.webp",
"views": 0,
"duration_seconds": 180,
"created_at": "2026-10-26T00:14:24.770409Z",
"mature": false,
"category": {
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
},
"channel": {
"id": 29513073,
"slug": "3mr",
"username": "3mr",
"profile_picture": "https://files.kick.com/images/user/30555929/profile_image/conversion/be0532d2-d280-44fa-b51f-156475152724-thumb.webp",
"url": "https://kick.com/3mr"
}
},
{
"id": "clip_01M5TRX0499CT25XP5PGHMP8EN",
"title": "The car",
"url": "https://kick.com/paymoneywubby/clips/clip_01M5TRX0499CT25XP5PGHMP8EN",
"thumbnail_url": "https://clips.kick.com/clips/b4/clip_01M5TRX0499CT25XP5PGHMP8EN/thumbnail.webp",
"views": 0,
"duration_seconds": 180,
"created_at": "2026-10-26T00:14:01.940469Z",
"mature": false,
"category": {
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
},
"channel": {
"id": 55899510,
"slug": "paymoneywubby",
"username": "PaymoneyWubby",
"profile_picture": "https://files.kick.com/images/user/57028734/profile_image/conversion/2b25b568-e13c-4c19-aa1b-cb547bd7b044-thumb.webp",
"url": "https://kick.com/paymoneywubby"
}
}
],
"next_cursor": "clip_01M5TRTRC985RH8S24HPZFNJ9M"
}
}
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| title | 20 | |
| url | 20 | kick.com |
| thumbnail_url | 20 | clips.kick.com |
| views | 20 | 0 to 1, median 0 |
| duration_seconds | 20 | 10 to 180, median 36 |
| created_at | 20 | 2026-10-26 |
| mature | 20 | true in 8 of 20 |
| category | 20 | |
| creator | 20 | |
| channel | 20 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | Category slug from kick-subcategories or kick-search-categories, lowercase; a kick.com/category URL is also accepted | just-chatting | |
| cursor | string | No | Previous response's next_cursor; omit for the newest page | clip_01M5TR7FRZPCDA6BS1NP7HKV4T | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/kick/category-clips?slug=just-chatting" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"category": "just-chatting",
"clips": [
{
"id": "clip_01M5TRXEP4T06BDKCRE23YG4KK",
"title": "465456456456465456456",
"url": "https://kick.com/3mr/clips/clip_01M5TRXEP4T06BDKCRE23YG4KK",
"thumbnail_url": "https://clips.kick.com/clips/44/clip_01M5TRXEP4T06BDKCRE23YG4KK/thumbnail.webp",
"views": 0,
"duration_seconds": 180,
"created_at": "2026-10-26T00:14:24.770409Z",
"mature": false,
"category": {
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
},
"channel": {
"id": 29513073,
"slug": "3mr",
"username": "3mr",
"profile_picture": "https://files.kick.com/images/user/30555929/profile_image/conversion/be0532d2-d280-44fa-b51f-156475152724-thumb.webp",
"url": "https://kick.com/3mr"
}
},
{
"id": "clip_01M5TRX0499CT25XP5PGHMP8EN",
"title": "The car",
"url": "https://kick.com/paymoneywubby/clips/clip_01M5TRX0499CT25XP5PGHMP8EN",
"thumbnail_url": "https://clips.kick.com/clips/b4/clip_01M5TRX0499CT25XP5PGHMP8EN/thumbnail.webp",
"views": 0,
"duration_seconds": 180,
"created_at": "2026-10-26T00:14:01.940469Z",
"mature": false,
"category": {
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
},
"channel": {
"id": 55899510,
"slug": "paymoneywubby",
"username": "PaymoneyWubby",
"profile_picture": "https://files.kick.com/images/user/57028734/profile_image/conversion/2b25b568-e13c-4c19-aa1b-cb547bd7b044-thumb.webp",
"url": "https://kick.com/paymoneywubby"
}
}
],
"next_cursor": "clip_01M5TRTRC985RH8S24HPZFNJ9M"
}
}Request schema
No body schema
Response schema
#/definitions/kick.categoryClipsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | kick.ClipsResponse | No | ||||
| data.category | string | No | Category is the category slug a category clip list was read for. | |||
| data.clips | array | No | Clip record, 23 fields: category, channel, created_at, duration_seconds, id, likes, mature, started_at, thumbnail_url, title, url, video_id and 2 more. Described under Get one Kick clip API. | |||
| data.next_cursor | string | No | ||||
| data.slug | string | No | ||||
| data.sort | string | No | ||||
| data.time | string | 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/category-clips?slug=just-chatting" \
-H "x-api-key: $CRAWLORA_API_KEY"