# Kick Scraper — Streamers, Influencer Emails & Socials (`cleandata/kick-streamers-scraper`) Actor

Find Kick streamers by category, language or name, or look up any channel: followers, average viewers, streaming frequency, engagement rate, verified badge, business emails and Instagram, X, YouTube, TikTok and Discord links. Filter before you pay. Influencer leads.

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

## Pricing

from $4.00 / 1,000 channels

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 — Streamers, Influencer Emails & Socials

Find **Kick streamers** for influencer marketing, sponsorships and creator research. Discover streamers who are live in any category and language, search channels by name (live and offline), or look up specific channels, and get one complete row per streamer: **followers**, **average viewers**, **streaming frequency**, **engagement rate**, **verified badge**, the **business email** published in their bio or panels and their **Instagram / X / YouTube / TikTok / Discord links**.

**Fast and cheap:** no browser, no login. All filters run *before* billing, so you only pay for channels that match.

### What can you use it for?

- **Influencer discovery:** find Kick streamers in your game or category, in the languages your brand sells in.
- **Micro-influencer campaigns:** combine *Min followers* and *Max followers* (for example, 1,000 to 50,000).
- **Real reach, not vanity numbers:** set *Min average viewers* and sort by `engagementRate` to find streamers whose audience actually shows up.
- **Outreach lists:** use *Only channels with a business email* to keep streamers who publish a contact.
- **Cross-platform campaigns:** most Kick streamers also stream on Twitch or post on YouTube; the social links are in every row.

### Sample results

A real run looking up six well-known channels:

| Streamer | Followers | Language | Avg viewers | Avg hours per stream | Streams per week |
|---|---|---|---|---|---|
| Westcol | 4,548,357 | Spanish | 110,987 | 4.8 | 4.7 |
| AdinRoss | 2,765,578 | English | 74,463 | 1.9 | 3.2 |
| xQc | 1,393,383 | English | 3,930 | 11.4 | 5.9 |
| Trainwreckstv | 682,184 | English | 9,907 | 5.0 | 0.5 |
| ROSHTEIN | 423,564 | English | 11,084 | 5.0 | 3.1 |

Discovery runs work the same way for the thousands of smaller streamers who are live on Kick right now.

### How much does it cost?

You pay per result, with no monthly rental: **$5 per 1,000 channels** ($0.005 each). **Business emails and social links are included at no extra cost.** Channels removed by your filters are never charged. Apify's free plan includes $5 of monthly credit, which covers about 1,000 channels a month. You can also set a maximum cost per run in the run options.

### How to use it

1. Click **Try for free** and sign in to Apify (no credit card needed).
2. Add the categories and languages you care about, search keywords, or specific channels to look up.
3. Optionally filter by followers, average viewers, recent activity, verified badge or business email.
4. Click **Start**. When the run finishes, download the results as JSON, CSV or Excel, or send them to Google Sheets, your CRM or your own system.

### Input

| Field | Description |
|---|---|
| **Categories / games** | `Just Chatting`, `GTA V`, `Slots & Casino`… or a category URL. |
| **Search keywords** | Kick's own channel search by name (`asmr`, `poker`, `fortnite`…). Also finds streamers who are offline right now. |
| **Stream languages** | 2-letter codes: `EN`, `ES`, `PT`, `DE`, `FR`, `AR`, `TR`… |
| **Channels to look up** | Usernames or channel URLs. They don't need to be live. |
| **Min / Max followers** | Follower range (0 = no limit). |
| **Min average viewers** | Skip channels whose recent streams average fewer viewers. Channels without saved streams are skipped when this is set. |
| **Only verified channels** | Keep only channels with Kick's verified badge. |
| **Only channels with a business email** | Skip channels without an email in their bio or panels. |
| **Email types** | Keep only channels whose emails are `company` (own or agency domain, like `business@brand.com`), `free provider` (Gmail, Outlook…) and/or `both`. Empty = any. |
| **Streamed in the last X days** | Only channels that are live now or streamed recently. Most useful with search keywords and lookups. |
| **Max channels** | Limit for the whole run. When filters remove many channels, the Actor keeps looking until it reaches this number or runs out of streamers. |

```json
{
    "categories": ["Just Chatting", "Slots & Casino"],
    "languages": ["EN", "ES"],
    "minFollowers": 1000,
    "maxFollowers": 100000,
    "minAvgViewers": 50,
    "onlyWithEmail": true,
    "maxResults": 300
}
```

### Output

```json
{
    "slug": "xqc",
    "username": "xQc",
    "url": "https://kick.com/xqc",
    "bio": "THE BEST AT ABSOLUTELY EVERYTHING. THE JUICER. LEADER OF THE JUICERS.",
    "followers": 1393383,
    "isVerified": true,
    "isAffiliate": false,
    "language": "English",
    "mainCategory": "Grand Theft Auto V (GTA)",
    "isLive": true,
    "liveViewers": 7337,
    "liveTitle": "GTA V NOPIXEL",
    "liveSince": "2026-10-27T21:02:50.000Z",
    "recentStreams": 25,
    "avgViewers": 3930,
    "avgStreamHours": 11.4,
    "streamsPerWeek": 5.9,
    "lastStreamAt": "2026-10-27T21:02:50.000Z",
    "engagementRate": 0.3,
    "emails": [],
    "companyEmails": [],
    "emailType": null,
    "socials": {
        "instagram": ["https://instagram.com/xqcow1"],
        "x": ["https://x.com/xqc"],
        "youtube": ["https://youtube.com/channel/UCmDTrq0LNgPodDOFZiSbsww"],
        "discord": ["https://discord.gg/xqcow"]
    },
    "panelLinks": [{ "title": null, "url": "https://streamelements.com/xqc/tip" }],
    "profileImageUrl": "https://files.kick.com/...",
    "foundVia": "input",
    "searchCategory": null,
    "searchKeyword": null
}
```

- `avgViewers`, `avgStreamHours` and `streamsPerWeek` are calculated from the channel's latest saved streams (up to 25). They are `null` when the channel keeps no past streams.
- `engagementRate` is the average viewers as a percentage of followers (2.7 = 2.7%).
- `emailType` says whether the emails are on a `company` domain (the streamer's own or their agency's), a `free provider` (Gmail, Outlook, Yahoo…) or `both`; `companyEmails` lists only the company ones. Handy for batch outreach.
- `emails` are addresses the streamer published in their bio or channel panels, usually for business inquiries.
- `foundVia` is `live` (found live in a category, see `searchCategory`), `search` (found by name, see `searchKeyword`) or `input` (looked up by name).

### How discovery works

Kick lists the streams that are live right now, 100 per page, by category and language: this Actor reads them page by page. **Search keywords** use Kick's channel search, which matches channel names and also returns offline channels. With several categories, languages and keywords, each one gets an equal share of the results.

### Privacy

The Actor only collects public channel information: what anyone sees on a Kick channel without signing in. Emails are only the ones streamers published themselves for business inquiries.

### Limits

- Kick is smaller than Twitch: a single category and language can have only a few hundred streamers live at once. Add categories or languages, or run at different times of day, for bigger lists.
- Keyword search matches channel names, not stream titles.

### Use it from AI agents

This Actor works with AI agents and LLM apps:

- **MCP:** add it to Claude, Cursor, VS Code or any other MCP client through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp).
- **Agentic payments:** agents can run it and pay per result with [x402](https://docs.apify.com/platform/integrations/x402) (USDC), without an Apify account.

### FAQ

**Is it legal to scrape Kick?** The Actor only reads public channel information, the same anyone sees without an account. Use the data responsibly: respect privacy laws such as GDPR and CAN-SPAM when you contact streamers, and Kick's terms.

**Why don't all channels have an email?** Only some streamers publish an email. The social links in every row are often the next best way to reach them.

**Do you also have Twitch and YouTube?** Yes: [Twitch Streamers Scraper](https://apify.com/cleandata/twitch-streamers-scraper) and [YouTube Channel Scraper](https://apify.com/cleandata/youtube-creator-leads) return the same kind of rows, so you can combine all three in one creator list.

**Can I call it from code?**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("cleandata/kick-streamers-scraper").call(
    run_input={"categories": ["Just Chatting"], "languages": ["EN"], "minFollowers": 1000, "maxResults": 100}
)
for channel in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(channel["username"], channel["followers"], channel["emails"])
```

The same works in JavaScript (`apify-client`) or with plain HTTP. See the *API* tab on this page.

**Something broke or you need a field?** Open an issue on the Actor's Issues tab. Feature requests are welcome.

**Found it useful?** A short review on the Reviews tab helps other people find this Actor and tells me what to improve next.

# Actor input Schema

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

Find streamers who are live in these categories, e.g. <code>Just Chatting</code>, <code>GTA V</code>, <code>Slots & Casino</code>, or a category URL like <code>https://kick.com/category/just-chatting</code>.

## `searchKeywords` (type: `array`):

Find channels whose name matches, with Kick's own channel search, e.g. <code>asmr</code>, <code>poker</code>, <code>fortnite</code>. This also finds streamers who are offline right now.

## `languages` (type: `array`):

Only streamers in these languages, as 2-letter codes: <code>EN</code>, <code>ES</code>, <code>PT</code>, <code>DE</code>, <code>FR</code>, <code>AR</code>, <code>TR</code>… For categories, each language is searched separately, which also finds more streamers.

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

Usernames or channel URLs, e.g. <code>xqc</code> or <code>https://kick.com/xqc</code>. They don't need to be live.

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

Skip channels with fewer followers (0 = no minimum). Great for finding micro-influencers together with Max followers.

## `maxFollowers` (type: `integer`):

Skip channels with more followers (0 = no maximum).

## `minAvgViewers` (type: `integer`):

Skip channels whose recent streams average fewer viewers (0 = no minimum). Followers can be old or inflated; viewers show the audience a streamer really has today. Channels without saved streams are skipped when this is set.

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

Keep only channels with Kick's verified badge.

## `onlyWithEmail` (type: `boolean`):

Only return channels that publish an email address in their bio or panels.

## `emailTypes` (type: `array`):

Keep only channels whose emails are of these types (leave empty for any): <b>company</b> = on their own or their agency's domain, like business@brand.com; <b>free provider</b> = Gmail, Outlook, Yahoo or similar; <b>both</b> = one of each. Channels without an email are skipped when this is set.

## `activeWithinDays` (type: `integer`):

Only channels that are live now or streamed within this many days (0 = any). Most useful with <b>Search keywords</b> or <b>Channels to look up</b>, which also return offline channels.

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

Maximum number of channels for the whole run (0 = no limit).

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

Apify Proxy is used by default. If Kick starts blocking a run, switch to residential proxies.

## Actor input object example

```json
{
  "categories": [
    "Just Chatting"
  ],
  "languages": [
    "EN"
  ],
  "minFollowers": 0,
  "maxFollowers": 0,
  "minAvgViewers": 0,
  "verifiedOnly": false,
  "onlyWithEmail": false,
  "activeWithinDays": 0,
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `channels` (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 = {
    "categories": [
        "Just Chatting"
    ],
    "languages": [
        "EN"
    ],
    "maxResults": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("cleandata/kick-streamers-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 = {
    "categories": ["Just Chatting"],
    "languages": ["EN"],
    "maxResults": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("cleandata/kick-streamers-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 '{
  "categories": [
    "Just Chatting"
  ],
  "languages": [
    "EN"
  ],
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call cleandata/kick-streamers-scraper --silent --output-dataset

```

## MCP server setup

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