# Kick.com Scraper: Streams, Clips & Channel Data (`getascraper/kick-scraper`) Actor

Extract channel profiles, live streams, VODs, and clips from Kick.com. Batch multiple channels per run. Filter by mature content and language. Real-time viewer counts, follower stats, and stream tags. Tracks NEW, UPDATED, and STATUS\_CHANGED events for monitoring. No login needed, fast extraction.

- **URL**: https://apify.com/getascraper/kick-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Videos, Social media, Developer tools
- **Stats:** 16 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.98 / 1,000 kick records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## 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 Streamer Intelligence Monitor: Live Channels, Streams & Clips

<table width="100%" style="display:table;width:100%;border-collapse:collapse">
<tr>
<td style="padding:24px 28px;background:#F0FDF4;border:1px solid #BBF7D0;border-top:4px solid #16A34A;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#14532D;line-height:1.3">Know which Kick creators and streams matter right now.</span><br>
<span style="font-size:15px;color:#365314;line-height:1.6">Collect public Kick.com channel, livestream, VOD, and clip records with audience signals, source links, and reliable change tracking.</span>
</td>
</tr>
</table>

<table width="100%" style="display:table;width:100%;border-collapse:collapse;table-layout:fixed">
<tr>
<td width="25%" style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #BBF7D0;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#15803D">📡 Live audience</span><br><span style="font-size:12px;color:#365314">Compare viewers, followers, categories, and live status.</span></td>
<td width="25%" style="width:25%;padding:14px 12px;background:#F7FEE7;border:1px solid #BBF7D0;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#15803D">👤 Creator profiles</span><br><span style="font-size:12px;color:#365314">Keep public channel identity, verification, tags, and social links together.</span></td>
<td width="25%" style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #BBF7D0;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#15803D">🎬 VODs and clips</span><br><span style="font-size:12px;color:#365314">Find recent broadcasts and clips for selected channels.</span></td>
<td width="25%" style="width:25%;padding:14px 12px;background:#F7FEE7;border:1px solid #BBF7D0;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#15803D">🔔 Change signals</span><br><span style="font-size:12px;color:#365314">Track new, updated, reappeared, and expired records safely.</span></td>
</tr>
</table>

Kick Streamer Intelligence Monitor turns public Kick.com data into clean rows for creator research, sponsorship scouting, audience analysis, and scheduled watchlists. Choose channels, a search phrase, or a category, then return only the record types and changes your workflow needs.

### 🔍 What does this Kick monitor do?

- Collects public channel profiles, live streams, VOD broadcasts, and clips.
- Keeps stable record IDs, direct source links, collection timestamps, and input labels.
- Filters by followers, viewers, language, tags, verification, affiliate status, and mature-content flags.
- Sorts results deterministically with stable ID tie-breaking.
- Compares successful runs using a named state key and emits meaningful change records.
- Keeps failed or truncated scans from creating false expiry events.

Missing source values stay empty. The Actor does not access private chat, download media, or guess unavailable profile details.

### 💡 Who uses this Kick data?

- **Sponsorship teams** compare creator reach, live audience, category, and verification signals before starting outreach.
- **Creator managers** monitor a watchlist for live status, audience changes, and new public video activity.
- **Esports and media researchers** map categories, languages, tags, and audience signals across Kick.
- **Content teams** collect VOD and clip references for a focused set of public channels.
- **Data product teams** build a recurring creator dataset without maintaining source-specific collection work.

### 🚀 How to use it

<table width="100%" style="display:table;width:100%;border-collapse:collapse;table-layout:fixed">
<tr>
<td width="33%" style="width:33.333%;padding:16px 14px;background:#F0FDF4;border:1px solid #BBF7D0;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#16A34A;letter-spacing:1px">STEP 1</span><br><span style="font-size:14px;font-weight:700;color:#14532D">Choose your scope</span><br><span style="font-size:12px;color:#365314">Use a channel watchlist, a search phrase, or a Kick category.</span></td>
<td width="33%" style="width:33.333%;padding:16px 14px;background:#F0FDF4;border:1px solid #BBF7D0;border-left:none;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#16A34A;letter-spacing:1px">STEP 2</span><br><span style="font-size:14px;font-weight:700;color:#14532D">Set the signal</span><br><span style="font-size:12px;color:#365314">Pick record types, audience thresholds, tags, sorting, and a result limit.</span></td>
<td width="33%" style="width:33.333%;padding:16px 14px;background:#F0FDF4;border:1px solid #BBF7D0;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#16A34A;letter-spacing:1px">STEP 3</span><br><span style="font-size:14px;font-weight:700;color:#14532D">Monitor or export</span><br><span style="font-size:12px;color:#365314">Save a snapshot, or reuse a state key to receive only meaningful changes.</span></td>
</tr>
</table>

Start with one channel or 5 to 10 category results. Increase the limit after you confirm the fields match your workflow.

### 🎛️ Input

| Field                | Type              | Required | Description                                                                                           |
| -------------------- | ----------------- | -------- | ----------------------------------------------------------------------------------------------------- |
| `mode`               | enum              | Yes      | Choose `watchlist`, `search`, or `category`.                                                          |
| `watchlist`          | array of channels | No       | Channel slugs, or objects containing a `channel` slug and optional `inputId`. Used in watchlist mode. |
| `channelNames`       | array of strings  | No       | Older input alias for a channel watchlist.                                                            |
| `query`              | string            | No       | Search phrase used in search mode.                                                                    |
| `category`           | string            | No       | Kick category slug used in category mode, such as `just-chatting`.                                    |
| `recordTypes`        | array of enums    | No       | Return `channel`, `stream`, `vod`, and/or `clip` records. Defaults depend on the selected mode.       |
| `videoType`          | enum              | No       | Older channel-video setting. `videos` maps to VOD records and `clips` maps to clip records.           |
| `maxResults`         | integer           | No       | Maximum records returned after filtering, sorting, and change annotation.                             |
| `minFollowers`       | number            | No       | Keep channels with at least this source-published follower count.                                     |
| `minViewers`         | number            | No       | Keep live streams with at least this source-published viewer count.                                   |
| `language`           | string            | No       | Exact case-insensitive stream or video language filter.                                               |
| `tags`               | array of strings  | No       | Keep records whose public stream or category tags include these values.                               |
| `verified`           | boolean           | No       | Keep records marked as verified when set.                                                             |
| `affiliate`          | boolean           | No       | Keep records marked as affiliate when set.                                                            |
| `mature`             | boolean           | No       | Exact mature-content filter. Set `false` to exclude mature records.                                   |
| `sortBy`             | enum              | No       | Sort by record type, followers, viewers, rank, title, category, collection time, or stable ID.        |
| `sortOrder`          | enum              | No       | Sort ascending or descending.                                                                         |
| `monitorMode`        | enum              | No       | `snapshot` returns the current result set. `changes` compares successful runs under a state key.      |
| `stateKey`           | string            | No       | Stable name shared by scheduled `changes` runs.                                                       |
| `includeUnchanged`   | boolean           | No       | Include `UNCHANGED` rows when using `changes` mode.                                                   |
| `proxyConfiguration` | object            | No       | Optional connection settings for the run.                                                             |

Watchlist inputs can look like this:

```json
{
    "mode": "watchlist",
    "watchlist": [{ "channel": "xqc", "inputId": "xqc-main" }, "amouranth"],
    "recordTypes": ["channel", "stream"],
    "mature": false,
    "sortBy": "followers",
    "sortOrder": "desc"
}
```

### 📦 Output example

```json
{
    "recordType": "stream",
    "stableId": "stream:public-id",
    "channelName": "creator-name",
    "currentViewers": 18429,
    "category": "Just Chatting",
    "status": "success",
    "retrievedAt": "2026-08-10T08:00:00.000Z"
}
```

### 📋 Data table

Every successful row contains a record type, stable ID, source link, input label, collection time, and status. Empty fields are omitted rather than guessed.

| Field                                                                                                  | Type               | Description                                                                                     |
| ------------------------------------------------------------------------------------------------------ | ------------------ | ----------------------------------------------------------------------------------------------- |
| `recordType`                                                                                           | string             | Row kind: `channel`, `stream`, `vod`, `clip`, or `failure`.                                     |
| `stableId`                                                                                             | string             | Stable identifier used for sorting and monitoring.                                              |
| `channelId` / `channelExternalId`                                                                      | number / string    | Public channel identifiers when Kick supplies them.                                             |
| `channelName` / `displayName`                                                                          | string             | Channel slug and displayed creator name.                                                        |
| `channelUrl`                                                                                           | URL                | Direct public Kick channel link.                                                                |
| `verified` / `isAffiliate`                                                                             | boolean            | Public verification and affiliate markers.                                                      |
| `followersCount`                                                                                       | number             | Public follower count when supplied.                                                            |
| `isLive` / `currentViewers`                                                                            | boolean / number   | Live status and current viewer count when supplied.                                             |
| `streamTitle`                                                                                          | string             | Current public livestream title.                                                                |
| `category` / `categorySlug`                                                                            | string             | Current category name and slug.                                                                 |
| `categoryTags` / `streamTags`                                                                          | arrays             | Public category and stream tags.                                                                |
| `streamLanguage`                                                                                       | string             | Public language value for a livestream.                                                         |
| `isMature`                                                                                             | boolean            | Public mature-content marker.                                                                   |
| `liveStartedAt`                                                                                        | date-time          | Public livestream start time.                                                                   |
| `avatarUrl` / `bannerUrl`                                                                              | URL                | Public channel images.                                                                          |
| `bio`                                                                                                  | string             | Public channel description.                                                                     |
| `socialTwitter`, `socialInstagram`, `socialYoutube`, `socialDiscord`, `socialTiktok`, `socialFacebook` | URLs               | Public social links when supplied by Kick.                                                      |
| `playbackUrl`                                                                                          | URL                | Public playback link when supplied.                                                             |
| `isBanned` / `vodEnabled`                                                                              | boolean            | Public channel availability and VOD settings.                                                   |
| `subscriptionEnabled` / `subscriptionPrice`                                                            | boolean / number   | Public subscription settings when supplied.                                                     |
| `recentCategories`                                                                                     | array              | Public recent channel categories.                                                               |
| `chatroomSlowMode`, `chatroomFollowersMode`, `chatroomSubscribersMode`, `chatroomEmotesMode`           | boolean            | Public chatroom settings when supplied.                                                         |
| `chatroomMessageInterval`, `chatroomMinFollowDuration`                                                 | number             | Public chatroom timing settings when supplied.                                                  |
| `videoType` / `videoId`                                                                                | string             | VOD or clip type and source ID.                                                                 |
| `videoViews` / `videoLikes` / `videoDuration`                                                          | number             | Public video engagement and duration values.                                                    |
| `videoCategory` / `videoLanguage`                                                                      | string             | Public VOD or clip category and language.                                                       |
| `clipCreator`                                                                                          | string             | Public clip creator name.                                                                       |
| `videoUrl` / `thumbnailUrl`                                                                            | URL                | Public VOD or clip links and thumbnail.                                                         |
| `createdAt` / `rank`                                                                                   | date-time / number | Public creation time and source ranking when supplied.                                          |
| `sourceUrl` / `inputId`                                                                                | URL / string       | Source request and the input target that produced the row.                                      |
| `retrievedAt` / `status`                                                                               | date-time / string | Collection time and `success`, `error`, or `expired` status.                                    |
| `errorCode` / `errorMessage`                                                                           | string             | Details for an explicit failure row.                                                            |
| `stateKey` / `changeType`                                                                              | string             | Monitoring key and `NEW`, `UPDATED`, `STATUS_CHANGED`, `REAPPEARED`, `EXPIRED`, or `UNCHANGED`. |
| `changedFields` / `firstSeenAt` / `lastSeenAt`                                                         | array / date-time  | Monitoring explanation and source-backed history timestamps.                                    |

Example successful stream row:

```json
{
    "recordType": "stream",
    "stableId": "stream:01JPM733EGW4MHA5S5BWFATP3Q",
    "channelName": "spreen",
    "channelUrl": "https://kick.com/spreen",
    "followersCount": 234567,
    "currentViewers": 18429,
    "streamTitle": "HOLA CHAT",
    "category": "Just Chatting",
    "rank": 1,
    "status": "success",
    "sourceUrl": "https://kick.com/just-chatting",
    "retrievedAt": "2026-08-10T08:00:00.000Z"
}
```

### 💰 Pricing

This Actor uses pay-per-result pricing. You pay only for records saved to the dataset. Empty runs cost nothing, and there are no subscriptions. Use `maxResults` to keep a run focused.

### ⭐ Enjoying Kick Streamer Intelligence Monitor?

<table width="100%" style="display:table;width:100%;border-collapse:collapse">
<tr>
<td style="padding:20px 24px 14px;background:#F0FDF4;border:1px solid #BBF7D0;border-left:5px solid #16A34A;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px;color:#15803D">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#14532D">Did this monitor help you find a creator or audience signal faster?</span><br>
<span style="font-size:14px;color:#365314">A rating helps sponsorship teams, creator managers, and researchers find a dependable Kick data workflow.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#16A34A;border:1px solid #BBF7D0;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/kick-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### Can I monitor several Kick channels together?

Yes. Add channel slugs to `watchlist`, optionally giving each target an `inputId` for your downstream workflow.

##### Can I collect only live streams or clips?

Yes. Set `recordTypes` to the rows you need. Watchlists, searches, and categories can use different record selections.

##### How does changes mode work?

Use the same `stateKey` for scheduled runs. The Actor compares successful scans and emits new, updated, reappeared, expired, or unchanged records when requested.

##### Does it access private Kick information?

No. It returns only public channel, livestream, VOD, clip, and profile fields that Kick publishes. It does not access private chat or account-only content.

##### What happens if a source request fails?

The run emits an explicit failure record. It does not advance monitoring state or mark missing records as expired.

### 🛟 Support

If a public Kick field is important to your workflow, open an issue from the Actor page with a representative source link and the output you expected.

### 🔗 Other actors

- [🎮 Twitch Scraper: channels, live streams, clips and games](https://apify.com/getascraper/twitch-scraper) ↗ - compare public creator and livestream signals on Twitch.
- [📊 Viewstats YouTube Channel Growth Monitor](https://apify.com/getascraper/viewstats-scraper) ↗ - monitor public YouTube channel growth signals.
- [🎬 Xigua video search scraper 西瓜视频: Chinese video trends and creator data](https://apify.com/getascraper/xigua-video-search-scraper) ↗ - search Chinese video topics and creator signals.
- [📕 RedNote KOL Monitor: 小红书](https://apify.com/getascraper/rednote-kol-monitor) ↗ - monitor public creator changes on RedNote.
- [🎧 Mixcloud Scraper: Show & Creator Monitor](https://apify.com/getascraper/mixcloud-media-monitor) ↗ - collect public show and creator information from Mixcloud.

# Actor input Schema

## `mode` (type: `string`):

Choose a channel watchlist, text search, or category livestream scope.

## `watchlist` (type: `array`):

Kick channel slugs or objects such as {"channel":"xqc","inputId":"xqc-main"}.

## `channelNames` (type: `array`):

Backward-compatible alias for watchlist.

## `query` (type: `string`):

Search text used in search mode.

## `category` (type: `string`):

Kick category slug used in category mode, for example just-chatting.

## `recordTypes` (type: `array`):

Channel, stream, clip, and/or vod. Watchlist defaults to channel and stream; category/search default to stream.

## `videoType` (type: `string`):

Legacy channel\_videos alias: videos maps to vod, clips maps to clip.

## `maxResults` (type: `integer`):

Maximum source records emitted after filtering, sorting, and monitoring annotation.

## `minFollowers` (type: `number`):

Keep channels with at least this source-published follower count.

## `minViewers` (type: `number`):

Keep live streams with at least this source-published viewer count.

## `language` (type: `string`):

Exact case-insensitive language code. languageFilter is accepted as a legacy alias.

## `tags` (type: `array`):

Keep records whose source-provided tags include these values.

## `verified` (type: `boolean`):

Filter to source records marked as verified when set.

## `affiliate` (type: `boolean`):

Filter to source records marked as affiliate when set.

## `mature` (type: `boolean`):

Exact filter. Set false to exclude mature records; excludeMature is accepted as a legacy alias.

## `sortBy` (type: `string`):

Deterministic source-field sort with stable ID tie-breaking.

## `sortOrder` (type: `string`):

Ascending or descending order for the selected sort field.

## `monitorMode` (type: `string`):

Snapshot emits the current source view. Changes compares successful scans under stateKey.

## `stateKey` (type: `string`):

Stable explicit key shared by scheduled changes runs.

## `includeUnchanged` (type: `boolean`):

In changes mode, also emit UNCHANGED records.

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

Optional Apify Proxy configuration for source requests.

## Actor input object example

```json
{
  "mode": "watchlist",
  "videoType": "videos",
  "maxResults": 25,
  "sortBy": "recordType",
  "sortOrder": "asc",
  "monitorMode": "snapshot",
  "stateKey": "kick-snapshot",
  "includeUnchanged": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/kick-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/kick-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 '{}' |
apify call getascraper/kick-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/kick-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/n0AgcQ7QDd1uHdM6Q/builds/n3qyatI9juIhZDff7/openapi.json
