# Kick Scraper - Channels, Live Streams, Clips & Creator Leads (`scrapesage/kick-scraper`) Actor

Scrape Kick.com creators, live streams, clips, VODs & categories. Get followers, bios, social links (Instagram/Twitter/YouTube/TikTok/Discord), live viewer counts, lead scores & new-stream alerts.

- **URL**: https://apify.com/scrapesage/kick-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 channel scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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.com Scraper — Channels, Live Streams, Clips, VODs & Creator Leads

Extract **structured data from [Kick.com](https://kick.com)**, the fast-growing live-streaming platform — full **creator profiles** (followers, bio, verified/affiliate status, social links), **live streams** happening right now with viewer counts, **clips**, **past broadcasts (VODs)**, and **top categories/games**. Every channel is also a ready-to-use **influencer lead**: handle, follower tier, and contactable social links (Instagram, Twitter/X, YouTube, TikTok, Discord) with a 0-100 lead score.

No login, no API key, no browser — fast, reliable JSON extraction that works on **any public Kick channel, stream, clip or category**.

### Why this Kick scraper?

Generic "paste-a-URL" crawlers grab a handful of visible fields and miss the data that matters for creator discovery, influencer marketing and stream analytics. This actor reads Kick's own public endpoints directly and ships the **richest dataset in the category** — six entity types, a built-in creator-lead wedge, and a monitor mode for go-live and new-clip alerts.

| Data | Generic crawlers | This actor |
|---|---|---|
| Channel: username, followers, verified, affiliate | partial | ✅ |
| Channel **bio + all social links** (IG / X / YouTube / TikTok / Discord) | ❌ | ✅ when published |
| **Creator lead score** (0-100) for outreach | ❌ | ✅ |
| Live streams **right now** with concurrent viewer count | ❌ | ✅ |
| Category / game each stream & channel belongs to | partial | ✅ |
| Clips (views, likes, duration, creator) | ❌ | ✅ |
| Past broadcasts / VODs (views, duration, category) | ❌ | ✅ |
| Top categories with **live viewers** | ❌ | ✅ |
| **Monitor mode** — only new channels / streams / clips | ❌ | ✅ |
| One clean, dense table per entity (no empty columns) | ❌ | ✅ |

### Use cases

- **Influencer marketing & sponsorship outreach** — discover Kick creators by keyword, game or follower tier, then export them with bio, follower count and **contactable socials** (Discord/Instagram/Twitter) and a lead score. Feed your CRM or outreach sequence.
- **Live-stream monitoring** — poll the live feed for who's streaming a game right now, with viewer counts — power dashboards, alerts, or "going-live" notifications.
- **Creator & competitor analytics** — track follower growth, live viewership, top clips and VOD performance over time.
- **Market & trend research** — see which games/categories are driving live viewers on Kick, and how that shifts day to day.
- **Content & clip aggregation** — pull a channel's top clips and VODs for highlight reels, newsletters or apps.
- **Talent scouting** — find rising affiliate streamers in a category before they blow up.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **Kick.com Scraper**, pick **What to scrape** (Channels by default), and provide input — channel usernames, a search keyword, or just press Start for the live feed / top categories.
3. Click **Start** and watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "inputType": "channels",
    "channels": ["xqc", "trainwreckstv", "adin"],
    "emitChannelLeads": true,
    "includeClips": false,
    "maxResults": 100
}
```

Discover creators by keyword instead:

```json
{
    "inputType": "search",
    "searchQueries": ["valorant", "poker", "cooking"],
    "minFollowers": 5000,
    "emitChannelLeads": true
}
```

Pull the biggest live streams right now:

```json
{
    "inputType": "liveStreams",
    "liveFeed": "featured",
    "language": "en",
    "minViewers": 1000,
    "maxResults": 200
}
```

#### Key input options

- **inputType** — `channels` (profiles + leads), `search` (discover creators by keyword), `liveStreams` (live now, top by viewers), `clips`, `videos` (VODs), or `categories` (top games).
- **channels** — Kick usernames / slugs (or `kick.com/<name>` URLs). Used by Channels, Clips and Videos modes.
- **searchQueries** — keywords for Search mode (a game, topic or streamer name).
- **categorySlugs** — specific category slugs for Categories mode (e.g. `just-chatting`, `slots`); empty = top categories.
- **startUrls** — paste Kick URLs (channel, `/clips`, `/videos`, `/category/<slug>`, or `/browse`) — auto-routed.
- **emitChannelLeads** *(default true)* — also emit a separate **creator lead** record per channel (contactable socials + lead score).
- **includeClips / includeVideos** — in Channels mode, also pull each channel's clips / VODs.
- **liveFeed** *(featured / latest)*, **language**, **minViewers**, **excludeMature** — Live streams options.
- **Filters** — `minFollowers`, `verifiedOnly`, `affiliateOnly`, `liveOnly`.
- **monitorMode** + **monitorKey** — only emit items new since the last run (see below).
- **maxResults**, **maxPages**, **maxConcurrency**, **proxyConfiguration**.

### Output

Choose a single `inputType` for a clean, dense table. Each record carries a `type` field (`channel`, `channelLead`, `liveStream`, `clip`, `video`, `category`) and there are ready-made dataset **views** for each.

A channel record (`type: "channel"`):

```json
{
    "type": "channel",
    "id": 668,
    "slug": "xqc",
    "username": "xQc",
    "bio": "THE BEST AT ABSOLUTELY EVERYTHING. THE JUICER.",
    "verified": true,
    "isAffiliate": false,
    "followersCount": 1080306,
    "subscriptionEnabled": true,
    "vodEnabled": true,
    "isLive": false,
    "recentCategories": [ { "id": 15, "name": "Just Chatting", "slug": "just-chatting" } ],
    "socials": { "instagram": "xqcow1", "twitter": "xqc", "youtube": "channel/UCmD…", "discord": "xqcow" },
    "socialLinks": {
        "instagram": "https://instagram.com/xqcow1",
        "twitter": "https://twitter.com/xqc",
        "youtube": "https://youtube.com/channel/UCmD…",
        "discord": "https://discord.gg/xqcow"
    },
    "profilePic": "https://files.kick.com/images/user/676/profile_image/…",
    "leadScore": 84,
    "url": "https://kick.com/xqc",
    "scrapedAt": "2026-06-17T20:00:00.000Z"
}
```

A **creator lead** (`type: "channelLead"`) flattens the contact data: `slug`, `username`, `followersCount`, `verified`, `instagram`, `twitter`, `youtube`, `tiktok`, `discord`, `leadScore`, `url`.

A **live stream** (`type: "liveStream"`) carries `streamId`, `channelSlug`, `username`, `title`, `viewerCount`, `category`, `language`, `isMature`, `startedAt`, `tags`, the streamer's `socials`, and `channelUrl`. A **clip** (`type: "clip"`) carries `title`, `views`, `likes`, `durationSeconds`, `category`, `creator`, `createdAt`, `clipUrl`, `videoUrl`. A **video/VOD** (`type: "video"`) carries `title`, `views`, `durationSeconds`, `language`, `category`, `startedAt`, `url`. A **category** (`type: "category"`) carries `name`, `slug`, `viewers`, `followersCount`, `parentCategory`, `tags`, `banner`.

#### What to expect (field coverage)

Kick is creator-entered data, so some fields are populated only when the streamer filled them in. Verified across many channels:

| Entity | Always present | Usually present | Present when published |
|---|---|---|---|
| **Channel** | slug, username, followers, verified, affiliate, live status, URL | bio, recent categories, profile pic | `socials` / `socialLinks` (creators who added them), location |
| **Live stream** | streamId, channel, title, viewer count, language, start time | category, tags, thumbnail | streamer socials, follower count |
| **Clip** | id, title, channel, views, duration, URL | likes, category, creator, thumbnail | — |
| **Video (VOD)** | id, title, channel, duration, start time | views, language, category, tags | — |
| **Category** | id, name, slug, live viewers | follower count, parent category, tags, banner | description |

A blank field means the creator didn't publish it for that record — not that scraping failed. Nothing is dropped, so you always get the richest dataset available.

### Monitor mode — only new data

Turn on **Monitor mode** to remember items across runs in a named key-value store and emit **only records that are new since the last run** — new channels, new live broadcasts (every go-live gets a fresh stream id), new clips, or new VODs. It complements (and does not conflict with) Apify Schedules:

- **[Schedules](https://docs.apify.com/platform/schedules)** decide *when* the actor runs (e.g. every 15 minutes).
- **Monitor mode** decides *what* is emitted on each run — only the new stuff — by deduplicating against prior runs.

Use a distinct **monitorKey** per feed (e.g. one per streamer or per category) to run several independent monitors. Pair it with a [webhook](https://docs.apify.com/platform/integrations/webhooks) for instant go-live / new-clip alerts.

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — poll the live feed or a creator list on a cron; combine with Monitor mode for new-only alerts.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, Discord ping) the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/kick-scraper').call({
    inputType: 'search',
    searchQueries: ['valorant'],
    minFollowers: 5000,
    emitChannelLeads: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} records`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new creator leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored streamer goes live.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find Kick creators streaming slots with over 10k followers and their Discord links" and let it run the scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **creator-economy & influencer lead-gen stack** across every platform your prospects publish on:

- **[YouTube Scraper](https://apify.com/scrapesage/youtube-scraper)** — channels, videos, and creator contact links.
- **[Apple Podcasts Scraper](https://apify.com/scrapesage/apple-podcasts-scraper)** — podcasts, episodes, and owner-email leads.
- **[Substack Scraper](https://apify.com/scrapesage/substack-scraper)** — newsletters, subscriber estimates, and author leads.
- **[Product Hunt Scraper](https://apify.com/scrapesage/product-hunt-scraper)** — product launches, makers, and founder leads.
- **[Facebook Ad Library Scraper](https://apify.com/scrapesage/facebook-ad-library-scraper)** — competitor ad intelligence on Meta & Instagram.
- **[Google Ads Transparency Scraper](https://apify.com/scrapesage/google-ads-transparency-scraper)** — who's advertising what on Google.
- **[LinkedIn Jobs Scraper](https://apify.com/scrapesage/linkedin-jobs-scraper)** — job postings as hiring-intent signals.
- **[Eventbrite Scraper](https://apify.com/scrapesage/eventbrite-scraper)** — events plus organizer leads (prices, emails, socials).

### Tips

- **Pick a single `inputType`** for a clean, fully-populated table that's perfect for direct export. The Channels, Leads, Live streams, Clips, Videos and Categories dataset views are pre-built.
- **Creator leads**: keep `emitChannelLeads` on — it's the difference between a username and a contactable creator. Add `minFollowers` / `affiliateOnly` to target established, monetized streamers.
- **Live discovery by game**: use Search mode with the game name, or Live streams mode and filter by `minViewers`. Affiliate streamers (`affiliateOnly`) are usually the contactable ones.
- **Recurring monitoring**: combine [Schedules](https://docs.apify.com/platform/schedules) with Monitor mode to capture new streamers, go-lives and clips as they happen.

### FAQ

**Do I need a Kick account or API key?** No. This actor reads Kick's public channel, search, stream, clip, video and category endpoints — no login, key or browser needed.

**How do I scrape a specific streamer?** Put their username in `channels` (e.g. `xqc`), or paste `kick.com/xqc` in `startUrls`. You can pass many at once.

**Where do the social links come from?** From each creator's own Kick profile, where they choose to list their Instagram, Twitter/X, YouTube, TikTok, Discord and Facebook. Many add them — when they don't, the field is simply absent.

**Can I get a streamer's email?** Kick does not expose creator emails publicly. This actor surfaces the contactable socials creators *do* publish (Discord is the most common business-contact channel for streamers), plus a lead score to prioritize outreach.

**Can I monitor when a channel goes live?** Yes — turn on Monitor mode and create a [Schedule](https://docs.apify.com/platform/schedules). Every go-live is a new stream id, so you only get a record when a monitored channel actually starts streaming. Add a [webhook](https://docs.apify.com/platform/integrations/webhooks) to push it to Slack/Discord.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**A field is empty — why?** Some creators don't publish a bio or socials, some streams have no tags, and some VODs have no view count yet. Fields are blank only when Kick doesn't publish that data — never because the scraper skipped it.

**Is scraping Kick legal?** This actor collects publicly available data only. You're responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and Kick's terms.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `inputType` (type: `string`):

Pick the mode. <b>Channels</b> = full creator profiles + leads from a list of usernames. <b>Search</b> = discover creators/games/streams by keyword. <b>Live streams</b> = top live streams right now (by viewers). <b>Clips</b> / <b>Videos</b> = a channel's clips / past broadcasts. <b>Categories</b> = top games/categories or specific ones. Start URLs work in any mode.

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

Kick usernames / channel slugs to scrape, e.g. <code>xqc</code>, <code>trainwreckstv</code>, <code>adin</code>. Full <code>kick.com/\<name></code> URLs also work. Used by the Channels, Clips and Videos modes.

## `searchQueries` (type: `array`):

Keywords to search Kick for (Search mode) — e.g. <code>valorant</code>, <code>poker</code>, <code>cooking</code>, a streamer name, or a game. Each keyword returns matching creators (and, with "all", categories & live streams).

## `categorySlugs` (type: `array`):

Specific Kick category/game slugs to scrape in Categories mode, e.g. <code>just-chatting</code>, <code>slots-and-casino</code>, <code>grand-theft-auto-v</code>. Leave empty to pull the current TOP categories.

## `startUrls` (type: `array`):

Kick URLs to scrape directly: a channel (<code>kick.com/\<name></code>), its clips (<code>kick.com/\<name>/clips</code>) or videos (<code>kick.com/\<name>/videos</code>), a category (<code>kick.com/category/\<slug></code>), or the browse/live page. Auto-routed by URL shape.

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

Language for the Live streams feed (e.g. <code>en</code>, <code>es</code>, <code>fr</code>, <code>de</code>, <code>tr</code>, <code>pt</code>). Kick localizes the featured live feed by language.

## `liveFeed` (type: `string`):

<b>Featured</b> = top live streams sorted by viewer count (best for finding the biggest streams). <b>Latest</b> = most recently started streams.

## `searchEmit` (type: `string`):

In Search mode, output only matching creators, or also the matching categories and live streams a keyword returns.

## `emitChannelLeads` (type: `boolean`):

For each channel (Channels & Search modes), also push a separate creator <b>lead</b> record with contactable social links (Instagram/Twitter/YouTube/TikTok/Discord) and a 0-100 lead score — ideal for influencer/sponsorship outreach.

## `includeClips` (type: `boolean`):

In Channels mode, also pull each channel's top clips (adds requests per channel). Pushed as separate clip records.

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

In Channels mode, also pull each channel's recent past broadcasts / VODs. Pushed as separate video records.

## `clipSort` (type: `string`):

How to order clips (Clips mode / includeClips).

## `clipTime` (type: `string`):

Only clips created within this window.

## `maxClipsPerChannel` (type: `integer`):

Maximum clips to pull per channel.

## `maxVideosPerChannel` (type: `integer`):

Maximum past broadcasts / VODs to pull per channel.

## `minFollowers` (type: `integer`):

Only keep channels / streamers with at least this many followers (filters out tiny channels). 0 = no filter.

## `verifiedOnly` (type: `boolean`):

Only keep verified channels / streamers.

## `affiliateOnly` (type: `boolean`):

Only keep channels that are Kick affiliates (monetized) — usually the more established, contactable creators.

## `liveOnly` (type: `boolean`):

In Channels / Search modes, only keep channels that are live right now.

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

In Live streams mode, only keep streams with at least this many concurrent viewers. 0 = no filter.

## `excludeMature` (type: `boolean`):

In Live streams mode, drop streams flagged as mature / 18+.

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

Maximum number of records to emit across the whole run (channels + leads + streams + clips + videos + categories all count).

## `maxPages` (type: `integer`):

How many pages to page through for the live feed and clip pagination.

## `deduplicate` (type: `boolean`):

Drop duplicate channels/streams/clips that appear more than once in the same run.

## `monitorMode` (type: `boolean`):

Remember items across runs in a named key-value store and emit ONLY records that are NEW since the last run — new channels, new live broadcasts (each go-live has a new stream id), new clips or new VODs. Pair with Apify <b>Schedules</b> for go-live & new-clip alerts: it complements the scheduler (the schedule starts the run; monitor mode dedupes against prior runs).

## `monitorKey` (type: `string`):

Names the monitor's memory store so you can run several independent monitors (e.g. one per streamer or per category). Reuse the same key to keep tracking the same feed.

## `maxConcurrency` (type: `integer`):

Parallel requests. Kick serves cleanly to Apify datacenter proxies; 3-6 is a good range.

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

Proxies to use. Kick serves cleanly to Apify datacenter proxies; keep the default. A fresh proxy IP is used per request to spread rate limits. Switch to RESIDENTIAL only if you see repeated blocked/challenge warnings.

## Actor input object example

```json
{
  "inputType": "channels",
  "channels": [
    "xqc"
  ],
  "language": "en",
  "liveFeed": "featured",
  "searchEmit": "channels",
  "emitChannelLeads": true,
  "includeClips": false,
  "includeVideos": false,
  "clipSort": "view",
  "clipTime": "all",
  "maxClipsPerChannel": 20,
  "maxVideosPerChannel": 20,
  "minFollowers": 0,
  "verifiedOnly": false,
  "affiliateOnly": false,
  "liveOnly": false,
  "minViewers": 0,
  "excludeMature": false,
  "maxResults": 100,
  "maxPages": 10,
  "deduplicate": true,
  "monitorMode": false,
  "monitorKey": "default",
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All scraped Kick records (channels, leads, live streams, clips, videos, categories) as JSON items in the default dataset.

# 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"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/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 = {
    "channels": ["xqc"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/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 '{
  "channels": [
    "xqc"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapesage/kick-scraper --silent --output-dataset

```

## MCP server setup

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