# Kick Scraper: Channels, Live Streams, VODs, Clips & Monitoring (`getascraper/kick-scraper`) Actor

Scrape Kick.com channel profiles, live streams, VODs and clips by channel list, search or the full live directory. Filter by followers, viewers, language and tags, then track new, updated and ended streams on a schedule. No login, API key or proxy setup needed.

- **URL**: https://apify.com/getascraper/kick-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Social media, Videos
- **Features:** Limited permissions
- **Stats:** 34 total users, 6 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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Kick Scraper: Channels, Live Streams, VODs, Clips & Monitoring

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;margin-bottom:0">
<tr>
<td colspan="4" style="padding:14px 18px;background:#F0FDF4;border:none;border-top:3px solid #107E39;border-left:1px solid #BBF7D0;border-right:1px solid #BBF7D0;color:#1C1917;border-radius:10px 10px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">One suite for creator and sponsorship intelligence.</span> <span style="font-size:15px;color:#57534E">Live audience data, growth analytics, and archival downloads across Kick, Twitch, and YouTube, cross-linked so a research or sponsorship workflow never needs a second data source.</span>
</td>
</tr>
<tr>
<td colspan="4" style="padding:10px 14px;background:#107E39;border:none;border-left:1px solid #BBF7D0;border-right:1px solid #BBF7D0;color:#FFFFFF">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">LIVE-STREAMING &amp; CREATOR INTELLIGENCE SUITE</span>
<span style="color:#FFFFFF;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Channel data, growth analytics, and video downloads across Kick, Twitch, and YouTube</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border:none;border-left:1px solid #BBF7D0;border-bottom:1px solid #BBF7D0;vertical-align:top;width:25.0%;background:#F0FDF4;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-n0AgcQ7QDd1uHdM6Q-ckVSht3rh3-images_%2851%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/kick-scraper" style="color:#107E39;text-decoration:none;font-weight:700;font-size:13px">Kick Scraper</a></span><br>
<span style="color:#107E39;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #BBF7D0;border-bottom:1px solid #BBF7D0;vertical-align:top;width:25.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-0HOa61SNYHSU1aJeM-TdVFnkDikD-twitch-logo_578229-259_%281%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/twitch-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Twitch Scraper</a></span><br>
<span style="color:#57534E;font-size:11px">Channels, live streams, clips</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #BBF7D0;border-bottom:1px solid #BBF7D0;vertical-align:top;width:25.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-yPcp52fDsr7deKgLb-UkUkNlVUhl-channels4_profile.jpg" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/viewstats-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Viewstats YouTube Monitor</a></span><br>
<span style="color:#57534E;font-size:11px">YouTube growth and rankings</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #BBF7D0;border-right:1px solid #BBF7D0;border-bottom:1px solid #BBF7D0;vertical-align:top;width:25.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-6yE6UrUImbGHIqCYL-8Nt8QFvzHl-images_%2851%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/kick-video-downloader" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Kick Video Downloader</a></span><br>
<span style="color:#57534E;font-size:11px">Download clips and VODs</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#F0FDF4;border:1px solid #BBF7D0;border-top:none;color:#1C1917">
<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:separate;border-spacing:0;margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBF7D0;vertical-align:top;color:#1C1917;border-top:none;border-radius:0 0 0 10px">
<span style="font-size:15px;font-weight:800;color:#16A34A">📡 Live audience</span><br>
<span style="font-size:12px;color:#57534E">Compare viewers, followers, categories, and live status.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBF7D0;border-left:none;vertical-align:top;color:#1C1917;border-top:none">
<span style="font-size:15px;font-weight:800;color:#16A34A">👤 Full creator profile</span><br>
<span style="font-size:12px;color:#57534E">Bio, verification, chatroom rules, and social links across six platforms in one row.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBF7D0;border-left:none;vertical-align:top;color:#1C1917;border-top:none">
<span style="font-size:15px;font-weight:800;color:#16A34A">🎬 VODs and clips</span><br>
<span style="font-size:12px;color:#57534E">Find recent broadcasts and clips for selected channels.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #BBF7D0;border-left:none;vertical-align:top;color:#1C1917;border-top:none;border-radius:0 0 10px 0">
<span style="font-size:15px;font-weight:800;color:#16A34A">🔔 Change tracking</span><br>
<span style="font-size:12px;color:#57534E">Get new, updated, or expired alerts automatically on every scheduled run.</span>
</td>
</tr>
</table>

Kick Scraper turns public Kick.com data into clean rows for creator research, sponsorship scouting, audience analysis, and scheduled watchlists. Choose channels, a search phrase, or the live directory (all categories or one), then return only the record types and changes your workflow needs. No login, API key, or proxy setup is needed.

### 🔍 What does this Kick monitor do?

- Collects public channel profiles, live streams, VOD broadcasts, and clips, including deep clip history for a channel.
- Lists everything live on Kick right now, or one category, most-watched first or newest first.
- Searches live streams and channels by text across names, titles, categories, and tags.
- Tracks changes across scheduled runs: new channels, updated stats, status changes, and expired records, all with timestamps.
- Returns the widest social link coverage available: Twitter, Instagram, YouTube, Discord, TikTok, and Facebook in one row.
- Surfaces chatroom rules most scrapers skip: slow mode, followers-only mode, subscriber mode, emote mode, and message intervals.
- Filters by followers, viewers, language, tags, verification, affiliate status, and mature-content flags.
- Sorts results deterministically with stable ID tie-breaking, so the same input always produces the same order.
- 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:separate;border-spacing:0;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;color:#1C1917"><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 the live directory.</span></td>
<td width="33%" style="width:33.333%;padding:16px 14px;background:#F0FDF4;border:1px solid #BBF7D0;border-left:none;vertical-align:top;color:#1C1917"><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;color:#1C1917"><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 monitor name 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` (the live directory). Older names such as `top_channels` still work. |
| `watchlist`          | array of channels | No       | Channel names, links, or objects containing a `channel` name and optional `inputId`. Used in watchlist mode. |
| `channelNames`       | array of strings  | No       | Older input alias for a channel watchlist.                                                            |
| `query`              | string            | No       | Text to find in live channels, titles, categories, and tags. A channel name also returns that profile. |
| `category`           | string            | No       | Kick category slug such as `just-chatting`. Leave empty to scan every live stream.                    |
| `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. Free plans are limited to 25. |
| `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, stable ID, or `recent` (newest first). |
| `sortOrder`          | enum              | No       | Sort ascending or descending.                                                                         |
| `monitorMode`        | enum              | No       | `snapshot` returns the current result set. `changes` compares successful runs that share a monitor name. |
| `monitorScope`       | string            | No       | Monitor 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"
}
```

Live directory inputs can look like this:

```json
{
    "mode": "category",
    "category": "just-chatting",
    "minViewers": 500,
    "sortBy": "recent",
    "maxResults": 50
}
```

### 📦 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.                                                            |
| `monitorScope` / `changeType`                                                                          | string             | Monitoring scope 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. Free plans are limited to 25 records per run and a short pause between runs.

### ⭐ Enjoying Kick Scraper?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:20px 24px 14px;background:#F0FDF4;border:1px solid #BBF7D0;border-left:5px solid #16A34A;border-radius:10px 10px 0 0;color:#1C1917">
<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:#107E39;border:1px solid #107E39;border-left:5px solid #107E39;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#1C1917">
<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 list everything live on Kick right now?

Yes. Use `category` mode and leave `category` empty to scan all live streams, most-watched first. Add a category slug to narrow it, and set `sortBy` to `recent` for the newest streams first.

##### 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 `monitorScope` for scheduled runs. The Actor remembers the last complete scan under that name, compares the next one, and emits new, updated, reappeared, expired, or unchanged records when requested. Scans cut short by `maxResults` or a source issue do not replace the saved baseline.

##### 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?

If some sources fail, the run adds an error row next to your data and does not advance monitoring state or mark missing records as expired. If nothing at all is found, the run ends normally with an explanation in its status message and charges nothing.

### 🛟 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.
- [🎬 Kick Video Downloader: Clips and VODs as MP4 with Watchlist](https://apify.com/getascraper/kick-video-downloader) ↗ - download the clips and VODs this monitor surfaces before a streamer deletes them.
- [🎬 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.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/kick-scraper/changelog.md

# Actor input Schema

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

Channel watchlist (profiles, live status, VODs, clips), search (live streams and channels matching your text) or live directory (all live streams, optionally for one category). Older mode names channel_details, channel_videos, live_streams and top_channels still work.

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

Kick channel names, short links or full URLs, for example xqc or kick.com/xqc. Objects such as {"channel":"xqc","inputId":"xqc-main"} are also accepted. Used by watchlist mode.

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

Older name for the channel list. Still accepted and merged with the list above.

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

Text to look for in live channels, titles, categories and tags. A channel name (such as xqc) also returns that channel profile. Used by search mode.

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

Kick category slug, for example just-chatting or slots. Leave empty to scan all live streams. Used by live directory mode.

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

Any of channel, stream, clip and vod. Defaults: channel and stream for a watchlist or search, stream for the live directory.

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

Only used with the older channel_videos mode: videos returns past broadcasts, clips returns clips.

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

Keep records whose channel has at least this many followers.

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

Keep live streams with at least this many current viewers.

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

Two-letter language code such as en or es. languageFilter is accepted as an older name.

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

Keep records whose stream or category tags include all of these values.

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

Set to true to keep only verified channels, false to exclude them.

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

Set to true to keep only affiliate channels, false to exclude them.

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

Set to false to exclude mature streams or true to keep only mature ones. excludeMature is accepted as an older name.

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

Most records returned in this run, after filters and sorting. Free plans are limited to 25.

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

Order of the returned records. Recent puts the newest streams, VODs and clips first. Viewers with descending order gives the most-watched first.

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

Ascending or descending order for the selected sort field.

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

Snapshot returns what Kick shows now. Changes compares with the previous run that used the same monitor name and labels each record NEW, UPDATED, STATUS_CHANGED, REAPPEARED or EXPIRED.

## `monitorScope` (type: `string`):

Name shared by the scheduled runs you want compared. Use a different name for each watchlist or search.

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

In changes mode, also return records that did not change.

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

Optional. Requests go out directly first and use Apify Proxy automatically only if Kick refuses them.

## Actor input object example

```json
{
  "mode": "watchlist",
  "watchlist": [
    "xqc",
    "trainwreckstv"
  ],
  "videoType": "videos",
  "maxResults": 25,
  "sortBy": "recordType",
  "sortOrder": "asc",
  "monitorMode": "snapshot",
  "monitorScope": "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 = {
    "mode": "watchlist",
    "watchlist": [
        "xqc",
        "trainwreckstv"
    ],
    "videoType": "videos",
    "maxResults": 25,
    "sortBy": "recordType",
    "sortOrder": "asc",
    "monitorMode": "snapshot",
    "monitorScope": "kick-snapshot",
    "includeUnchanged": false
};

// 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 = {
    "mode": "watchlist",
    "watchlist": [
        "xqc",
        "trainwreckstv",
    ],
    "videoType": "videos",
    "maxResults": 25,
    "sortBy": "recordType",
    "sortOrder": "asc",
    "monitorMode": "snapshot",
    "monitorScope": "kick-snapshot",
    "includeUnchanged": False,
}

# 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 '{
  "mode": "watchlist",
  "watchlist": [
    "xqc",
    "trainwreckstv"
  ],
  "videoType": "videos",
  "maxResults": 25,
  "sortBy": "recordType",
  "sortOrder": "asc",
  "monitorMode": "snapshot",
  "monitorScope": "kick-snapshot",
  "includeUnchanged": false
}' |
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/8L7Ip8sykSbsFpyAR/openapi.json
