# Kick Live Feed API Documentation

Retrieve the platform-wide live feed with viewer counts, thumbnails, categories, tags, and channel details. The default cursor feed pages with an opaque next_cursor and accepts sort featured or featured_home; feed=featured returns the no-cursor featured rail instead.

- **Documentation:** [https://scrappa.co/docs/kick-api/kick_livestreams](https://scrappa.co/docs/kick-api/kick_livestreams)
- **API group:** Kick API
- **Endpoint:** `GET https://scrappa.co/api/kick/v1/livestreams`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `feed` | string | No | cursor for the paginated feed, featured for the no-cursor rail. Defaults to cursor. The featured rail applies only language; the cursor-only parameters below are rejected on it. |
| `sort` | string | No | featured or featured_home. Defaults to featured. Cursor feed only; rejected with feed=featured. |
| `limit` | integer | No | Streams per page, up to 100. Defaults to 24. Cursor feed only; rejected with feed=featured. |
| `language` | string | No | Filter by language code from the languages endpoint. The only filter the feed=featured rail applies, and the only parameter it accepts — it is required there, because Kick rejects a rail request without it. Optional on the cursor feed. |
| `category_id` | integer | No | Filter by subcategory id, not the top-level category id. Cursor feed only; rejected with feed=featured. |
| `after` | string | No | Opaque cursor for the next page. Cursor feed only; rejected with feed=featured. |
| `before` | string | No | Opaque cursor for the previous page. Cursor feed only; rejected with feed=featured. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/kick/v1/livestreams?feed=cursor&sort=featured&limit=24"
```

## Example response

```json
{
    "success": true,
    "data": {
        "livestreams": [
            {
                "id": "stream-1",
                "viewer_count": 4210,
                "channel": {
                    "slug": "xqc"
                }
            }
        ],
        "pagination": {
            "limit": 24,
            "count": 24,
            "has_more": true,
            "next_cursor": "Y3Vyc29y"
        },
        "search_parameters": {
            "feed": "cursor",
            "sort": "featured",
            "limit": 24,
            "language": null,
            "category_id": null,
            "after": null,
            "before": null
        }
    },
    "meta": {
        "upstream_family": "livestreams"
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 404 | Not Found | The requested channel, clip, video, or subcategory does not exist. This response is not billable. |
| 422 | Validation Error | A public parameter is invalid, such as an unsupported clip sort or an empty search query. This response is not billable. |
| 502 | Invalid Source Response | Kick returned a response shape the API does not recognise. This response is not billable. |
| 503 | Service Unavailable | The service could not obtain a complete result from Kick. This response is not billable. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
