Kick API endpoint
Returns Kick's top-level categories (Games, IRL, Music, Gambling, Creative, Alternative, Chat Roulette) with id, name, slug and icon. These slugs are the exact values the category parameter of kick-subcategories takes. Kick's website and its mobile app each list one parent the other omits (Gambling and Chat Roulette), so this call reads both and returns their union; icon is empty for a category only the app lists. The lists are read live from Kick.
/kick/categoriesThis endpoint takes no parameters. The list is read live from Kick.
Notable response behavior:
gambling and no chat-roulette, the app has chat-roulette and no gambling. This call reads both and returns their union, so it makes two upstream calls and is priced at 2.icon is empty for a category only the app lists (chat-roulette).chat-roulette entry is added so the seven parents are always present.Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"categories": [
{
"id": 1,
"name": "Games",
"slug": "games",
"icon": "đšī¸"
},
{
"id": 2,
"name": "IRL",
"slug": "irl",
"icon": "đī¸"
},
{
"id": 3,
"name": "Music",
"slug": "music",
"icon": "đš"
},
{
"id": 4,
"name": "Gambling",
"slug": "gambling",
"icon": "đ°"
},
{
"id": 5,
"name": "Creative",
"slug": "creative",
"icon": "đ¨"
},
{
"id": 6,
"name": "Alternative",
"slug": "alternative",
"icon": "đŊ"
},
{
"id": 110,
"name": "Chat Roulette",
"slug": "chat-roulette"
}
]
}
}
| Field | Filled in, of 6 checked |
|---|---|
| id | 6 |
| name | 6 |
| slug | 6 |
| icon | 6 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/kick/categories" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"categories": [
{
"id": 1,
"name": "Games",
"slug": "games",
"icon": "đšī¸"
},
{
"id": 2,
"name": "IRL",
"slug": "irl",
"icon": "đī¸"
},
{
"id": 3,
"name": "Music",
"slug": "music",
"icon": "đš"
},
{
"id": 4,
"name": "Gambling",
"slug": "gambling",
"icon": "đ°"
},
{
"id": 5,
"name": "Creative",
"slug": "creative",
"icon": "đ¨"
},
{
"id": 6,
"name": "Alternative",
"slug": "alternative",
"icon": "đŊ"
},
{
"id": 110,
"name": "Chat Roulette",
"slug": "chat-roulette"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/kick.categoriesResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | kick.CategoriesResponse | No | ||||
| data.categories | array | No | ||||
| data.categories[].icon | string | No | ||||
| data.categories[].id | integer | No | ||||
| data.categories[].name | string | No | ||||
| data.categories[].slug | 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/categories" \
-H "x-api-key: $CRAWLORA_API_KEY"