# Kick Sponsor Tracker for Streamers, Brands and Promo Codes (`cleanscrape/kick-sponsor-tracker`) Actor

Find which brands Kick streamers promote: casinos, skin sites, game stores and more, from !commands in live titles, the last month of broadcasts, channel links and promo codes. Scan live streams or check your own list. No login. Maintained by CleanScrape.

- **URL**: https://apify.com/cleanscrape/kick-sponsor-tracker.md
- **Developed by:** [CleanScrape](https://apify.com/cleanscrape) (community)
- **Categories:** Social media, Marketing, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 sponsorships

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 Sponsor Tracker for Streamers, Brands and Promo Codes

See which brands Kick streamers promote, how often and with which codes. This Kick scraper scans the live streams on Kick.com (or checks your own list of streamers) and reads what each channel shows publicly:

- **Sponsorships:** one row per streamer and brand. Where the brand shows up (live title, past broadcast titles, channel links, bio, chat), how many of the last month's broadcasts named it and for how many hours, the brand links with their affiliate codes (`stake.com/?c=name`), promo codes from titles ("CODE KAYZ") and ad tags such as #ad or #reklama.
- **Channels:** followers, live viewers, all sponsors, other commands that look like sponsors, link panel, socials, broadcast hours and the share of hours in Slots & Casino.
- **Live streams:** every scanned stream with a sponsor signal in its title, with viewers, category and language.
- **Brands:** a summary per brand: streamers promoting it, how many are live with it now, live viewers, broadcasts and hours.

About 110 brands are recognised out of the box: casinos and sportsbooks (Stake, Roobet, Gamdom, Shuffle, Rainbet, Betclic…), skin sites (CSGORoll, Pirateswap, Casehug, Key-Drop…), crypto exchanges (BingX, Bybit, MEXC…), game stores, gear, energy drinks, connection boosters and more. Add your own brand names, chat commands or websites and they are tracked the same way. No login.

### Who uses it

- **Brand and sponsorship managers:** see which streamers your competitors sponsor, how many hours they get and which codes they hand out.
- **Casino, iGaming and skin-site affiliate teams:** list the Kick streamers promoting Stake, Roobet, Shuffle, Gamdom and others, with their affiliate links and codes.
- **Esports and gaming brands** (energy drinks, gear, game stores, VPNs): find streamers who already run sponsorships in your category.
- **Influencer marketing agencies:** a shortlist of active Kick streamers with followers, live viewers, socials and current sponsors.
- **Compliance and research:** which channels promote gambling, whether titles carry an ad tag and whether the link panel has a responsible-gambling link.

**$3 per 1,000 sponsorships, $3 per 1,000 channels, $1 per 1,000 live streams** (10 to 20% less on paid Apify plans). No start fee. Brand summary rows are free. Maintained by CleanScrape.

### Watch the walkthrough

Let's use energy drinks as an example: which Kick streamers promote HOLY, G FUEL, Red Bull or DZIK, with broadcasts, hours and codes per streamer, and the totals per brand. Use your own brands for another market.

https://www.youtube.com/watch?v=\_Ph2BLiKzeM

### Quick start

1. Click **Start**. With the default settings the Actor scans the 1,000 most watched live streams on Kick and checks the 100 streamers with the most viewers whose title shows a sponsor.
2. To focus, set **Categories** (such as `Slots & Casino` or `Counter-Strike 2`), **Languages** (such as `Polish`) or **Brands** (such as `Stake`, `!gamdom`, `shuffle.com`).
3. To check particular streamers, paste their channel links or usernames under **Streamers**. To check only them, turn off **Scan live streams**.

The Sponsorships table shows each streamer and brand. Open the Brands table for the totals per brand.

Input for the API or a scheduled task:

```json
{
  "categories": ["Slots & Casino"],
  "languages": ["English"],
  "brands": ["Stake", "Roobet", "Shuffle"],
  "minViewers": 20,
  "maxChannels": 200,
  "watchName": "Casino sponsors on Kick"
}
```

### Choose a ready-to-run example

Each example opens with its input filled in. Change it and run.

| Example | What it does |
| --- | --- |
| [Find Kick streamers sponsored by Stake](https://apify.com/cleanscrape/kick-sponsor-tracker/examples/kick-streamers-sponsored-by-stake) | Streamers promoting Stake, with affiliate links and codes, live viewers, and broadcasts and hours with Stake in the last month. |
| [Track casino and gambling sponsors on Kick](https://apify.com/cleanscrape/kick-sponsor-tracker/examples/kick-casino-gambling-sponsors) | Every brand promoted in Slots & Casino streams, with codes, hours and live viewers per streamer. |
| [Find skin site sponsors of Kick CS2 streamers](https://apify.com/cleanscrape/kick-sponsor-tracker/examples/kick-cs2-skin-site-sponsors) | Case-opening and skin sites promoted by Counter-Strike 2 streamers. |
| [Check a Kick streamer's sponsors and promo codes](https://apify.com/cleanscrape/kick-sponsor-tracker/examples/kick-streamer-sponsors-promo-codes) | Paste channels: every brand each one promotes, with links, codes and a month of broadcast hours. |
| [Monitor new streamer sponsorships on Kick](https://apify.com/cleanscrape/kick-sponsor-tracker/examples/monitor-new-kick-sponsorships) | Schedule it daily: new sponsorships are marked isNew. |
| [Find Kick streamers promoting crypto exchanges](https://apify.com/cleanscrape/kick-sponsor-tracker/examples/kick-crypto-exchange-sponsors) | Brands promoted in Crypto & Trading streams, such as BingX, Bitunix, Bybit and MEXC. |
| [Find energy drink and gaming brand sponsors on Kick](https://apify.com/cleanscrape/kick-sponsor-tracker/examples/kick-gaming-brand-sponsors) | HOLY, G FUEL, Red Bull, ExitLag, NoPing, SteelSeries, Eneba, Instant Gaming and more. |

### Use it from the API

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("cleanscrape/kick-sponsor-tracker").call(run_input={
    "categories": ["Slots & Casino"],
    "maxChannels": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["streamer"], item["brand"], item["broadcastsWithBrand"], item["hoursWithBrand"], item["affiliateCodes"])

## Channels, live streams and the brand summary are in their own datasets:
brands = client.dataset(run["storageIds"]["datasets"]["brands"]).list_items().items
channels = client.dataset(run["storageIds"]["datasets"]["channels"]).list_items().items
```

### What you get

#### Sponsorships (main table)

| Field | Example |
| --- | --- |
| streamer, channelUrl, followers, language | `innocenttt`, https://kick.com/innocenttt, 8796, `pl` |
| brand, brandType | `CSGO-Skins`, Skin site (cases, skin trading) |
| foundIn | `["past broadcast titles", "channel links"]` |
| liveNow, liveViewers, inLiveTitle | true, 1982, false |
| broadcastsChecked, broadcastsWithBrand, shareOfBroadcasts | 25, 10, 40 |
| hoursWithBrand, viewsOfThoseBroadcasts | 57.7, and the view counts of those broadcasts added up |
| firstSeenInBroadcastsAt, lastSeenInBroadcastsAt, exampleTitle | dates, and the newest title naming the brand |
| brandLinks, affiliateCodes | `https://csgo-skins.com/?ref=INNOCENT`, `INNOCENT` |
| promoCodes, adDisclosed | `INNOCENT`, false |

With a **Watch name**, each row also has `isNew` and `firstSeenAt`.

#### Channels

Profile (followers, verified, Kick affiliate, bio, Instagram, X, YouTube, TikTok, Discord), live status and title, `sponsors`, `otherCommands` (commands in titles that are not a known brand and not a social or stream tool: often a sponsor not yet in the built-in list), promo and affiliate codes, the whole link panel, other websites, a responsible-gambling link flag, broadcast hours and views, broadcasts with an ad tag, the share of hours in Slots & Casino and the main categories.

#### Live streams

Viewers, streamer, title, category, language, start time, tags, sponsors, other commands, promo codes and ad tag for every scanned stream whose title shows a sponsor (or every scanned stream with **Also save streams and channels without sponsors**).

#### Brands

Per brand: streamers promoting it in this run, how many are live with it in the title now and their viewers together, broadcasts and hours with the brand, the streamers with the most followers and their followers added up.

### How sponsors are found

A sponsorship means the channel points viewers to the brand:

- a chat command in a title, such as `!stake` or `!pirateswap` (also with "❗");
- a link to the brand in the link panel, often with an affiliate code;
- the brand's website or distinctive name in a title or the bio ("CODE VICEE ON RAINBET", "Xtragambles.com");
- with **Read recent chat**, a sponsor link posted by a bot or moderator in the last 25 messages.

Esports team and tournament names that contain a brand ("NIP vs Betclic Apogee", "Stake Pulse Beat III") and product names in everyday titles ("Logitech Driving Force") are not counted. It is what the channel shows publicly, not a confirmed contract: a streamer can play on a site with no command or link, and a few commands may be the streamer's own project.

**With a brand list**, the live scan picks streamers whose live title names one of your brands, and only those brands are reported. Streamers you list under **Streamers** are always checked against your brands.

### Monitoring brands over time

Give the run a **Watch name** (for example `Stake on Kick`) and schedule it. Each sponsorship then carries `isNew` (not found by earlier runs with that name) and `firstSeenAt`. The **Watch (new sponsorships)** view of the Sponsorships table puts these columns first. The watch history lives in your own Apify account for 180 days.

### What is not available

- Sponsorship contracts or payments: only what the channel shows publicly.
- Kick keeps about a month of past broadcasts (at most 30 per channel), so `broadcastsWithBrand` and `hoursWithBrand` cover that period.
- Kick's view counts for past broadcasts include replays; Kick does not publish peak viewers per broadcast.
- Chat history beyond the last 25 messages.

### Pricing

| Event | Price |
| --- | --- |
| Sponsorship row | $0.003 |
| Channel row | $0.003 |
| Live stream row | $0.001 |
| Brand summary row | free |

Measured on 12 October 2026:

- **Default settings** (1,000 live streams, 100 streamers checked): 116 sponsorships, 100 channels and 198 live streams, about **$0.85**, in under 3 minutes.
- **Slots & Casino only**, 100 streamers: 98 sponsorships, 85 channels, 85 live streams, about **$0.64**.
- **Your own list of 5 streamers**, no live scan: 6 sponsorships and 5 channels, about **$0.03**.

Set **Maximum cost per run** to cap spending. The live scan uses at most about 30% of that limit, so most of it goes to sponsorships and channels.

### Speed and settings

300 live streams and 15 streamers take about 20 seconds; the default 1,000 streams and 100 streamers about 3 minutes. Each connection sends about one request per second, which stays under Kick's limits; **Connections** (default 4) sets how many run in parallel, each on its own IP. Apify datacenter proxy works for Kick. Memory: 512 MB is plenty. The run stops cleanly before its timeout and keeps everything it saved. With a short timeout, the live scan stops early to leave time for checking channels.

### Run report

Each run saves a readable summary (Output tab > Run summary) and the same as JSON (`SUMMARY`): the live scan (streams scanned, how many showed sponsor signals, streamers checked), the brands found with their streamers and live viewers, your streamers with their outcome, and notes, such as a category or language that was not found.

### Use it from an AI agent

This Actor works as a tool in Claude, Cursor and other AI assistants that support MCP, through Apify's MCP server. Add this server and sign in with your Apify account when asked:

```
https://mcp.apify.com?tools=cleanscrape/kick-sponsor-tracker
```

Then ask in plain words, for example: "Which Kick streamers promote Roobet right now, and what codes do they use?" The price per result is the same as in Console.

### Common questions

#### Is there an official Kick API for sponsors?

Kick's official API needs a registered app and has no sponsor data. This Actor reads the public pages kick.com itself shows: live streams, channel pages, past broadcasts and link panels.

#### Which brands are recognised?

About 110: casinos and sportsbooks, prediction markets, crypto exchanges, skin sites, game stores, gear, energy drinks, connection boosters, game servers and software. Anything else a title advertises with a command shows up under `otherCommands` in the Channels table. Add it under **Brands** to track it as a sponsorship.

#### How do I find every streamer promoting one brand?

Type the brand under **Brands** (name, `!command` or website), raise **Live streams to scan** and **Maximum streamers to check**, and narrow with **Categories** if you know where it is promoted. The scan finds streamers live with the brand in their title; add known streamers under **Streamers** to check them too.

#### Can I track my own brand or a competitor?

Yes. A term that is not in the built-in list ("Acme Energy", `!acme`, `acme.gg`) is tracked as your own brand, with the same fields.

#### How do I export the results to Excel or CSV?

Open the run's Output or Storage tab and click Export. Pick Excel, CSV or JSON. Channels, live streams and brands export from Storage > Dataset.

#### Is it legal to scrape Kick?

The Actor reads public pages that anyone can open without an account, at a gentle pace (about one request per second per connection). Check the rules that apply to how you use the data. Gambling advertising is regulated in many countries; the data shows what channels publish, and how you act on it is up to you.

### More tools from CleanScrape

- [Whatnot Scraper](https://apify.com/cleanscrape/whatnot-scraper): Whatnot listings with prices and seller stats, and live shows
- [Whatnot Seller Tracker](https://apify.com/cleanscrape/whatnot-seller-tracker): top sellers per category, items sold, sales per day and followers over time
- [TikTok Shop Product Scraper](https://apify.com/cleanscrape/tiktok-shop-product-scraper): US TikTok Shop prices, sellers and ratings
- [Bilibili Scraper](https://apify.com/cleanscrape/bilibili-scraper): Bilibili videos, danmaku, comments and creators
- [App Store & Google Play Reviews Scraper](https://apify.com/cleanscrape/app-store-reviews-scraper): reviews from both app stores in one table
- [Google Trends Scraper API](https://apify.com/cleanscrape/google-trends-scraper): search interest over time, by region, related queries and trending searches
- [Map Your Show Exhibitor Scraper API](https://apify.com/cleanscrape/event-exhibitor-monitor): trade show exhibitor lists and booth changes
- [Shopify Product Reviews Scraper API](https://apify.com/cleanscrape/shopify-reviews-scraper): Judge.me and Okendo reviews from Shopify product links
- [Google News Scraper API](https://apify.com/cleanscrape/google-news-scraper): headlines from Google News and publisher feeds
- [Google Jobs Scraper](https://apify.com/cleanscrape/google-jobs-scraper): job listings with salaries and apply links
- [Pinterest Scraper API](https://apify.com/cleanscrape/pinterest-scraper): pins from searches, boards and profiles
- [Google Hotels Scraper API](https://apify.com/cleanscrape/google-hotels-scraper): hotel prices and booking offers for your dates
- [Threads Scraper API](https://apify.com/cleanscrape/threads-scraper): public Threads posts from accounts or post links
- [Likee Scraper API](https://apify.com/cleanscrape/likee-scraper): Likee videos and comments
- [Tennis Scraper API](https://apify.com/cleanscrape/tennis-match-data): tennis results, statistics, point-by-point and head-to-head

### Support

Questions, a brand that is missing or a streamer that does not look right: open an issue on the Actor's Issues tab or write to contact.cleanscrape@gmail.com.

This Actor is an independent tool. It is not affiliated with, endorsed by or sponsored by Kick or any brand named here.

# Actor input Schema

## `scanLive` (type: `boolean`):

Looks through the live streams on Kick now, most viewers first, and checks every streamer whose title shows a sponsor (!stake, a promo code, #ad…).

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

Only scan these Kick categories, such as "Slots & Casino", "Just Chatting" or "Counter-Strike 2". Names, category links (https://kick.com/category/slots) or ids. Empty = all categories.

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

Only scan streams in these languages: names (English, Polish) or codes (en, pl). Empty = all languages.

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

Skip live streams with fewer viewers than this.

## `maxLiveStreams` (type: `integer`):

How many live streams to look through, most viewers first (split evenly between the categories and languages). Kick has about 5,000–10,000 streams live at a time.

## `streamers` (type: `array`):

Kick streamers to check, whether live or not: channel links (https://kick.com/xqc) or usernames, one per line. They are checked in depth even when no sponsor shows up.

## `brands` (type: `array`):

Only report these brands: names (Stake, Roobet), chat commands (!gamdom) or websites (shuffle.com). A term not in the built-in list is tracked as your own brand. Empty = every brand found.

## `maxChannels` (type: `integer`):

Streamers from the live scan to check in depth, most viewers first. Streamers you list are always checked.

## `pastBroadcasts` (type: `boolean`):

Reads the titles of each streamer's latest broadcasts (Kick keeps about a month, at most 30) to count how often and how many hours each brand was promoted.

## `readChat` (type: `boolean`):

Also reads the last 25 chat messages of each channel for sponsor links posted by bots and moderators. Adds one request per streamer; it seldom finds more than the titles and links.

## `includeUnsponsored` (type: `boolean`):

Saves every live stream scanned and every channel checked, even without a sponsor signal (useful as a full snapshot).

## `watchName` (type: `string`):

Names a watch, for example "Stake on Kick". Runs with the same name mark each sponsorship as new or seen before (isNew, firstSeenAt). Schedule the Actor to follow brands over time.

## `connections` (type: `integer`):

Requests in parallel, each on its own IP and kept to about one per second, which stays under Kick's limits. More is faster on big runs.

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

Apify datacenter proxy works for Kick. Without a proxy the run uses one connection and is slower.

## Actor input object example

```json
{
  "scanLive": true,
  "minViewers": 10,
  "maxLiveStreams": 300,
  "maxChannels": 15,
  "pastBroadcasts": true,
  "readChat": false,
  "includeUnsponsored": false,
  "connections": 4,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `sponsorships` (type: `string`):

No description

## `evidence` (type: `string`):

No description

## `watch` (type: `string`):

No description

## `brands` (type: `string`):

No description

## `channels` (type: `string`):

No description

## `streams` (type: `string`):

No description

## `report` (type: `string`):

No description

## `summary` (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 = {
    "maxLiveStreams": 300,
    "maxChannels": 15,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("cleanscrape/kick-sponsor-tracker").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 = {
    "maxLiveStreams": 300,
    "maxChannels": 15,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("cleanscrape/kick-sponsor-tracker").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 '{
  "maxLiveStreams": 300,
  "maxChannels": 15,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call cleanscrape/kick-sponsor-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cleanscrape/kick-sponsor-tracker"
        }
    }
}
```

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/n1OuBb6GCL2huqeac/builds/piZFfUzYDOXJAAyVy/openapi.json
