# Kick.com Streamer & Channel Scraper (`yawning_manuscript/kick-streamer-channel-scraper`) Actor

Scrape Kick.com channels, streamers, videos and live status. Followers, bio, socials, category, viewer counts and VOD metadata in a clean normalized schema. Browse by category or pass exact usernames. Proxy support for Cloudflare. No API keys needed.

- **URL**: https://apify.com/yawning\_manuscript/kick-streamer-channel-scraper.md
- **Developed by:** [SignalData](https://apify.com/yawning_manuscript) (community)
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Kick.com Scraper — Channels, Live Status, VODs & Category Discovery

Channel data from **Kick.com**: follower counts, social handles, live status and viewer counts, past broadcasts with duration and views, and — the part most Kick actors skip — **discovery of every channel currently live in a category**, so you can find streamers you do not already know the name of.

### What you get

#### `channel`

```json
{
  "type": "channel",
  "slug": "xqc",
  "username": "xQc",
  "followers": 1783402,
  "verified": true,
  "is_live": true,
  "live_title": "LIVE NOW",
  "live_viewers": 42311,
  "live_started_at": "2026-09-06T12:00:00Z",
  "primary_category": "Just Chatting",
  "subscription_enabled": true,
  "subscriber_badge_tiers": 2,
  "twitter": "xQc",
  "instagram": "xqcow",
  "youtube": "xQcOW",
  "chat_followers_only": true,
  "channel_url": "https://kick.com/xqc"
}
```

Social handles come through as their own fields because the main reason people pull this data is sponsorship outreach, and a creator's other platforms decide the deal.

#### `video` — past broadcasts

Title, `created_at`, `duration_minutes`, `views`, `peak_viewers`, category and a direct VOD link. Follower count tells you how big a channel is; peak viewers across recent broadcasts tells you whether it is actually growing.

#### `live_channel` — category discovery

Give a category slug (`just-chatting`, `slots`, `gta-v`, `fortnite`) and get every channel live in it right now, sorted by viewers, with title, language, start time and link. Filter out the small ones with `minViewers`.

### Example input

Track specific channels:

```json
{ "channels": ["xqc", "adinross", "trainwreckstv"], "includeVideos": true, "videosPerChannel": 20 }
```

Find sponsorship candidates in a category:

```json
{ "categories": ["just-chatting", "slots"], "maxChannelsPerCategory": 200, "minViewers": 500 }
```

Cheap hourly live-status check:

```json
{ "channels": ["xqc"], "includeVideos": false }
```

### Pricing

| Record | Price |
|---|---|
| `channel` | $0.003 |
| `video` | $0.002 |
| `live_channel` | $0.002 |

Monitoring 50 channels every hour costs about **$0.15 per hour**. Comparable Kick actors charge $0.015 per channel — five times more for less data.

### Notes and limits

- Kick sits behind Cloudflare. Small runs usually pass through directly; for large or frequent runs turn on Apify Proxy (residential) in the input. If a request is blocked the actor logs it and keeps going instead of dying.
- A channel that does not exist is logged as a warning and skipped — one bad slug never kills the run.
- Follower counts arrive from the API as strings and are returned as integers.
- Fields that come back empty (a creator with no Discord, say) are `null`, not `""`, so filters behave predictably.
- Chat settings (`chat_mode`, followers-only, subscribers-only, slow mode) are included, which matters if you are building moderation or chat-analysis tooling.

### Use from an AI agent

Callable through Apify's MCP server — an agent can check whether a streamer is live, or pull the top of a category, without any Kick-specific code.

### Support

Open an issue on the actor page. Requests for clips, chat history, or extra fields are welcome.

# Actor input Schema

## `channels` (type: `array`):

Kick usernames as they appear in the URL, e.g. "xqc" for kick.com/xqc. Paste as many as you like.

## `categories` (type: `array`):

Category slugs to list every channel currently live in, e.g. "just-chatting", "slots", "gta-v", "fortnite". This is how you find streamers you do not already know.

## `includeVideos` (type: `boolean`):

Adds each channel's recent broadcasts with duration, views, peak viewers and category - the data you need to judge whether a streamer is worth sponsoring.

## `videosPerChannel` (type: `integer`):

Cap on VOD rows per channel.

## `maxChannelsPerCategory` (type: `integer`):

Returned highest-viewer-first, so a small number still gives you the top of the category.

## `minViewers` (type: `integer`):

Drop tiny streams from category discovery.

## `concurrency` (type: `integer`):

Lower this if you hit rate limits.

## `proxyConfiguration` (type: `object`):

Kick is behind Cloudflare. Residential proxy is recommended for large runs.

## Actor input object example

```json
{
  "channels": [
    "xqc",
    "adinross"
  ],
  "categories": [],
  "includeVideos": false,
  "videosPerChannel": 20,
  "maxChannelsPerCategory": 100,
  "minViewers": 0,
  "concurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Channel, video and live-channel rows this run produced.

## `csv` (type: `string`):

The same rows as a CSV.

## `overview` (type: `string`):

The dataset with the Channels, Videos and Live now views.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "channels": [
        "xqc",
        "adinross"
    ],
    "categories": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("yawning_manuscript/kick-streamer-channel-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "channels": [
        "xqc",
        "adinross",
    ],
    "categories": [],
}

# Run the Actor and wait for it to finish
run = client.actor("yawning_manuscript/kick-streamer-channel-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "channels": [
    "xqc",
    "adinross"
  ],
  "categories": []
}' |
apify call yawning_manuscript/kick-streamer-channel-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,yawning_manuscript/kick-streamer-channel-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GmRd9BpkYKM55mBwV/builds/jsHtCNQ29rvG8rb99/openapi.json
