Kick API endpoint
Returns the panels a Kick (kick.com) channel shows under its stream, in the order Kick shows them: link panels (tip pages, merch, social profiles) with title, description, URL and image, and text panels (FAQ, rules, disclaimers) that are only a title and description. slug is the channel slug from its kick.com address, case-insensitive; a full kick.com URL is also accepted. Only public data is read and no playable media is returned. An unknown channel returns not found.
/kick/channel-linksslug is required (see kick-channel).
Notable response behavior:
kind is link for a panel with a url (tip page, merch, social profile) and text for a panel that is only a title and description (an FAQ, rules or a disclaimer). Text panels have no url.order is the position Kick shows the panel in. Kick numbers from 0 on some channels and from 1 on others, so sort by it but do not assume the first is 1.links list. An unknown channel returns 404.Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"slug": "trainwreckstv",
"links": [
{
"id": 16384,
"description": "Q: Where are you from?\n\nA: Arizona\n\nQ: How tall are you?\n\nA: 6'1 (185.42cm)\n\nQ: How much do you weigh?\n\nA: ~200 lbs (90…",
"image_url": "https://files.kick.com/images/channel-links/16384/image/conversion/f7a0fbb1-3fb9-421e-bacb-8f29492e20a2-image.webp",
"kind": "text",
"order": 0
},
{
"id": 16383,
"url": "https://discord.gg/GxP4cxmXhM",
"image_url": "https://files.kick.com/images/channel-links/16383/image/conversion/11405a1b-60d5-4f04-828e-d1c7f8be4671-image.webp",
"kind": "link",
"order": 1
},
{
"id": 16386,
"description": "BOTTOM LINE, DON'T GAMBLE, BUT IF YOU'RE STUPID, THEN,\n\n18+ | Gamble Responsibly | BeGambleAware\n\nFollow these steps to…",
"image_url": "https://files.kick.com/images/channel-links/16386/image/conversion/6db7da9c-c148-46a3-a68d-9f4ba3d47b77-image.webp",
"kind": "text",
"order": 2
}
]
}
}
| Field | Filled in, of 4 checked | Values in the sample |
|---|---|---|
| id | 4 | |
| url | 4 | streamelements.com and 3 other hosts |
| image_url | 4 | files.kick.com |
| kind | 4 | |
| order | 4 | 1 to 4, median 2 |
| 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-links?slug=xqc" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "trainwreckstv",
"links": [
{
"id": 16384,
"description": "Q: Where are you from?\n\nA: Arizona\n\nQ: How tall are you?\n\nA: 6'1 (185.42cm)\n\nQ: How much do you weigh?\n\nA: ~200 lbs (90…",
"image_url": "https://files.kick.com/images/channel-links/16384/image/conversion/f7a0fbb1-3fb9-421e-bacb-8f29492e20a2-image.webp",
"kind": "text",
"order": 0
},
{
"id": 16383,
"url": "https://discord.gg/GxP4cxmXhM",
"image_url": "https://files.kick.com/images/channel-links/16383/image/conversion/11405a1b-60d5-4f04-828e-d1c7f8be4671-image.webp",
"kind": "link",
"order": 1
},
{
"id": 16386,
"description": "BOTTOM LINE, DON'T GAMBLE, BUT IF YOU'RE STUPID, THEN,\n\n18+ | Gamble Responsibly | BeGambleAware\n\nFollow these steps to…",
"image_url": "https://files.kick.com/images/channel-links/16386/image/conversion/6db7da9c-c148-46a3-a68d-9f4ba3d47b77-image.webp",
"kind": "text",
"order": 2
}
]
}
}Request schema
No body schema
Response schema
#/definitions/kick.channelLinksResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | kick.ChannelLinksResponse | No | ||||
| data.links | array | No | ||||
| data.links[].description | string | No | ||||
| data.links[].id | integer | No | ||||
| data.links[].image_url | string | No | ||||
| data.links[].kind | string | No | Kind is "link" for a panel with a URL and "text" for one that is only a title and description. | |||
| data.links[].order | integer | No | Order is the position Kick shows the panel in; Kick numbers from 0 on some channels and from 1 on others. | |||
| data.links[].title | string | No | ||||
| data.links[].url | string | No | URL is empty for a text panel. | |||
| data.slug | 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/channel-links?slug=xqc" \
-H "x-api-key: $CRAWLORA_API_KEY"