Kick APIkick.com ↗
Fetch all live streams from any Kick.com category. Returns channel info, viewer counts, tags, language, and creator metadata via a single paginated endpoint.
What is the Kick API?
The Kick.com API exposes 1 endpoint — get_category_livestreams — that returns every currently live stream within a specified Kick.com category. Each response includes up to dozens of fields per stream: channel identifiers, real-time viewer counts, content tags, language, and creator profile metadata. Set limit to 0 to retrieve all available livestreams in a category at once, with automatic cursor-based pagination handled for you.
curl -X GET 'https://api.parse.bot/scraper/f59a3031-957d-4dfa-b4a6-14e94c1b2950/get_category_livestreams?sort=viewer_count_desc&limit=5&category=just-chatting&category_id=15' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace kick-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Kick.com Category Livestreams — discover live streamers by category."""
from parse_apis.kick.com_category_livestreams_api import Kick, Sort, CategoryNotFound
client = Kick()
# List top livestreams in Just Chatting, capped at 5
for stream in client.category("just-chatting").get_livestreams(sort=Sort.VIEWER_COUNT_DESC, limit=5):
print(stream.channel_username, stream.viewer_count, stream.language)
# Drill into one stream
top = client.category("just-chatting").get_livestreams(sort=Sort.VIEWER_COUNT_DESC, limit=1).first()
if top:
print(top.title, top.start_time, top.tags)
# Fetch a category by explicit ID (useful for categories not in the known mapping)
try:
for stream in client.category("just-chatting").get_livestreams(category_id="15", limit=3):
print(stream.channel_slug, stream.viewer_count, stream.is_mature)
except CategoryNotFound as exc:
print(f"Category not found: {exc}")
print("exercised: category.get_livestreams with sort enum, limit, category_id, and error handling")
Get all currently live streams in a Kick.com category. Automatically paginates through results via cursor. Returns livestream details including channel info, viewer counts, tags, and language. When limit is 0, returns all available livestreams (may be hundreds). The sort parameter controls ordering of the paginated results server-side.
| Param | Type | Description |
|---|---|---|
| sort | string | Sort order for results. |
| limit | integer | Maximum number of livestreams to return. 0 returns all available. |
| category | string | Category slug (e.g. 'just-chatting'). |
| category_id | string | Category ID number. If not provided, known slugs are auto-resolved (just-chatting=15). Required for categories not in the known mapping. |
{
"type": "object",
"fields": {
"category": "string - the category slug queried",
"livestreams": "array of livestream objects with channel info, viewer counts, tags, and metadata",
"total_count": "integer - number of livestreams returned"
},
"sample": {
"data": {
"category": "just-chatting",
"livestreams": [
{
"tags": [],
"title": "STREAMING LIVE",
"language": "es",
"is_mature": false,
"channel_id": 30204909,
"start_time": "2026-06-10T23:30:08Z",
"category_id": 15,
"channel_slug": "davooxeneize",
"viewer_count": 22931,
"category_name": "Just Chatting",
"category_slug": "just-chatting",
"livestream_id": "019eb3df-2c00-7a44-b24d-7f6a95ea051d",
"thumbnail_url": "https://images.kick.com/video_thumbnails/ifA24rnC7Blc/uz6TacTGMYjA/720.webp",
"channel_username": "davooxeneize",
"channel_profile_pic": "https://files.kick.com/images/user/31252219/profile_image/conversion/a1d2e02b-thumb.webp"
}
],
"total_count": 5
},
"status": "success"
}
}About the Kick API
What the API Returns
The get_category_livestreams endpoint returns a livestreams array, a category slug confirming what was queried, and a total_count integer showing how many streams were returned. Each object in the livestreams array contains channel-level details — including viewer counts, content tags, language code, and creator profile data — for every stream that is live at the time of the request.
Parameters and Filtering
The endpoint accepts a category slug (e.g., just-chatting) or a numeric category_id. For well-known categories, slug-to-ID resolution is handled automatically — for example, just-chatting maps to ID 15 without any extra lookup. An optional sort parameter controls result ordering. The limit parameter caps the number of results; setting it to 0 removes the cap and retrieves all available livestreams in that category, which can run into the hundreds for popular categories.
Pagination Behavior
The API automatically paginates through Kick.com's cursor-based results. You don't need to manage page tokens or offsets — requesting limit=0 will walk all available pages and consolidate the full result set into a single response. For large categories this means the response time will scale with the number of active streams.
Coverage Scope
This API covers live stream data only — it does not expose VODs, clip history, channel subscriber counts, or past broadcast metadata. Coverage is limited to what is publicly visible on a category page at the moment the request is made, making it suitable for real-time monitoring rather than historical analysis.
The Kick API is a managed, monitored endpoint for kick.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when kick.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official kick.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor viewer counts across all live streams in a Kick.com category to identify trending channels in real-time
- Build a category leaderboard ranked by current viewership using the
viewer countsfield returned per stream - Filter live streams by
languageto surface localized content for a specific audience - Aggregate content
tagsacross a category to analyze what topics are currently popular on Kick.com - Track which creators are live in a given category for alerting or notification pipelines
- Compare simultaneous stream counts across different category slugs to measure relative platform activity
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Kick.com have an official developer API?+
What does the `get_category_livestreams` endpoint return for each stream?+
livestreams array includes channel identifiers, current viewer counts, content tags, language, and creator profile metadata. The response also includes a total_count integer and the category slug that was queried.Does the API work for categories other than 'just-chatting'?+
category slug or numeric category_id. Slugs for well-known categories like just-chatting are auto-resolved to their IDs. For less common categories where slug resolution isn't built in, you can pass the category_id directly.