Kick API endpoint
Returns one page of 20 clips from across all of Kick, either newest first (sort=date, the default) or ranked by views inside a time window (sort=views with time=day, week, month or all). Each clip has its id, title, kick.com link, thumbnail, views, duration, category and channel. Page onward by passing the previous response's next_cursor as cursor. Playable clip URLs are never returned. Use kick-channel-clips for one channel's clips.
/kick/clipsParameters (all optional):
sort: date (newest first, the default) or views.time: the window that views ranks within: day, week, month or all. With sort=date it narrows the window the list is drawn from.cursor: the previous response's next_cursor.Any other sort or time value returns 400 before Kick is called. Kick offers no channel or category filter on this list; use kick-channel-clips for one channel.
Notable response behavior:
next_cursor is empty on the last page.views is the clip's view count. This list carries no like counts.Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"sort": "views",
"time": "week",
"clips": [
{
"id": "clip_01M5SSGY069EK403Z60HM0HEFD",
"title": "Clip by inStreamly",
"url": "https://kick.com/kebab_u_rudego/clips/clip_01M5SSGY069EK403Z60HM0HEFD",
"thumbnail_url": "https://clips.kick.com/clips/ff/clip_01M5SSGY069EK403Z60HM0HEFD/thumbnail.webp",
"views": 0,
"duration_seconds": 32,
"created_at": "2026-10-25T15:05:36.699933Z",
"started_at": "2026-10-25T15:04:49Z",
"mature": false,
"category": {
"id": 8549,
"name": "IRL",
"slug": "irl"
},
"channel": {
"id": 34858342,
"slug": "kebab_u_rudego",
"username": "kebab_u_rudego",
"profile_picture": "https://files.kick.com/images/user/35924431/profile_image/conversion/a595e254-593c-41f3-85e9-bb3f37f5ebc9-medi…",
"verified": true,
"url": "https://kick.com/kebab_u_rudego"
}
},
{
"id": "clip_01M5SSGWCT6T1889EAEZA4PAK8",
"title": "obez kısır",
"url": "https://kick.com/cigdemt/clips/clip_01M5SSGWCT6T1889EAEZA4PAK8",
"thumbnail_url": "https://clips.kick.com/clips/19/clip_01M5SSGWCT6T1889EAEZA4PAK8/thumbnail.webp",
"views": 0,
"duration_seconds": 59,
"created_at": "2026-10-25T15:05:55.195523Z",
"started_at": "2026-10-25T15:04:23Z",
"mature": false,
"category": {
"id": 64,
"name": "VALORANT",
"slug": "valorant"
},
"channel": {
"id": 27234676,
"slug": "cigdemt",
"username": "cigdemt",
"profile_picture": "https://files.kick.com/images/user/28262618/profile_image/conversion/f0144291-2662-469a-acb8-56eff1b6c8f2-medi…",
"verified": true,
"url": "https://kick.com/cigdemt"
}
}
],
"next_cursor": "eyJpZCI6ImNsaXBfMDFNNVNTRkg4N1BaUlE4UFNBSFJLMEFHOTkifQ=="
}
}
| 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 170, median 45 |
| created_at | 20 | 2026-10-26 |
| started_at | 20 | 2026-10-20 to 2026-10-26 |
| mature | 20 | true in 4 of 20 |
| category | 20 | |
| creator | 20 | |
| channel | 20 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| sort | string | No | Ordering: date is newest first (default), views ranks by views inside the time window Allowed values: date, views. | views | |
| time | string | No | Window that views ranks within; omit for Kick's default window Allowed values: day, week, month, all. | week | |
| cursor | string | No | Previous response's next_cursor; omit for the first page | abc | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/kick/clips?sort=date&time=day" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"sort": "views",
"time": "week",
"clips": [
{
"id": "clip_01M5SSGY069EK403Z60HM0HEFD",
"title": "Clip by inStreamly",
"url": "https://kick.com/kebab_u_rudego/clips/clip_01M5SSGY069EK403Z60HM0HEFD",
"thumbnail_url": "https://clips.kick.com/clips/ff/clip_01M5SSGY069EK403Z60HM0HEFD/thumbnail.webp",
"views": 0,
"duration_seconds": 32,
"created_at": "2026-10-25T15:05:36.699933Z",
"started_at": "2026-10-25T15:04:49Z",
"mature": false,
"category": {
"id": 8549,
"name": "IRL",
"slug": "irl"
},
"channel": {
"id": 34858342,
"slug": "kebab_u_rudego",
"username": "kebab_u_rudego",
"profile_picture": "https://files.kick.com/images/user/35924431/profile_image/conversion/a595e254-593c-41f3-85e9-bb3f37f5ebc9-medi…",
"verified": true,
"url": "https://kick.com/kebab_u_rudego"
}
},
{
"id": "clip_01M5SSGWCT6T1889EAEZA4PAK8",
"title": "obez kısır",
"url": "https://kick.com/cigdemt/clips/clip_01M5SSGWCT6T1889EAEZA4PAK8",
"thumbnail_url": "https://clips.kick.com/clips/19/clip_01M5SSGWCT6T1889EAEZA4PAK8/thumbnail.webp",
"views": 0,
"duration_seconds": 59,
"created_at": "2026-10-25T15:05:55.195523Z",
"started_at": "2026-10-25T15:04:23Z",
"mature": false,
"category": {
"id": 64,
"name": "VALORANT",
"slug": "valorant"
},
"channel": {
"id": 27234676,
"slug": "cigdemt",
"username": "cigdemt",
"profile_picture": "https://files.kick.com/images/user/28262618/profile_image/conversion/f0144291-2662-469a-acb8-56eff1b6c8f2-medi…",
"verified": true,
"url": "https://kick.com/cigdemt"
}
}
],
"next_cursor": "eyJpZCI6ImNsaXBfMDFNNVNTRkg4N1BaUlE4UFNBSFJLMEFHOTkifQ=="
}
}Request schema
No body schema
Response schema
#/definitions/kick.clipsResponseDoc
| 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 | ||||
| data.clips[].category | kick.CategoryRef | No | ||||
| data.clips[].category.id | integer | No | ||||
| data.clips[].category.name | string | No | ||||
| data.clips[].category.slug | string | No | ||||
| data.clips[].channel | kick.ChannelRef | No | ||||
| data.clips[].channel.id | integer | No | ||||
| data.clips[].channel.profile_picture | string | No | ||||
| data.clips[].channel.slug | string | No | ||||
| data.clips[].channel.url | string | No | ||||
| data.clips[].channel.username | string | No | ||||
| data.clips[].channel.verified | boolean | No | ||||
| data.clips[].created_at | string | No | ||||
| data.clips[].duration_seconds | integer | No | ||||
| data.clips[].id | string | No | ||||
| data.clips[].likes | integer | No | ||||
| data.clips[].mature | boolean | No | ||||
| data.clips[].started_at | string | No | ||||
| data.clips[].thumbnail_url | string | No | ||||
| data.clips[].title | string | No | ||||
| data.clips[].url | string | No | ||||
| data.clips[].video_id | string | No | ||||
| data.clips[].video_offset_seconds | integer | No | ||||
| data.clips[].views | integer | No | ||||
| 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 |
| 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/clips?sort=date&time=day" \
-H "x-api-key: $CRAWLORA_API_KEY"