Kick Scraper avatar

Kick Scraper

Pricing

Pay per event

Go to Apify Store
Kick Scraper

Kick Scraper

Discover or look up public Kick creators and export channel identity, followers, live status, audience signals, categories, recent videos, recent clips, and source URLs.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Discover public Kick creators or look up known channels and export one analysis-ready record per streamer. The Actor combines channel identity, follower and verification signals, current live status, category, audience indicators, and bounded recent video and clip summaries.

Use it for creator discovery, sponsorship research, livestream-market monitoring, and repeatable Kick streaming data exports. It does not require a Kick account, API credential, browser, or proxy configuration.

What does Kick Scraper do?

Kick Scraper supports three complementary routes:

  1. look up exact public channel URLs or usernames;
  2. search Kick by creator name or keyword;
  3. discover channels in Kick's featured live feed.

Every route produces the same typed channel record. Optional liveOnly and category filters are applied consistently to exact lookups, search results, and featured discovery. Recent videos and clips are nested in the channel record, so spreadsheets and data pipelines receive one stable row per creator rather than unrelated record types.

Who is this Kick streamer data for?

  • Influencer and sponsorship teams building candidate lists with follower, verification, category, and current-audience context.
  • Livestream analysts comparing who is live, what category they stream, and visible concurrent viewer counts.
  • Creator managers checking a known roster and collecting recent channel activity.
  • Data teams scheduling recurring exports into Sheets, warehouses, dashboards, or monitoring workflows.
  • Developers who need a managed Kick API-style workflow without maintaining TLS impersonation or pagination code.

Why use this Actor?

  • Search, exact lookup, and live discovery share one output contract.
  • Each result includes recent video and clip summaries when requested.
  • The Actor uses structured public endpoints rather than rendering pages or downloading media.
  • Limits are explicit: at most 500 channel rows, 25 videos, and 25 clips per channel.
  • Stable channel IDs and URLs make repeat-run comparison straightforward.
  • You pay for accepted channel records, not each nested video or clip.

What Kick channel data can I extract?

AreaExample fields
IdentitychannelId, userId, username, slug, channelUrl, profilePictureUrl, bio
AudiencefollowersCount, verified, affiliate
Channel statebanned, isLive
Current streamliveTitle, liveViewerCount, liveStartedAt, language, currentCategory
Channel historyrecentCategories
Recent VODstitle, start time, duration, viewer count, language, category, thumbnail, URL
Recent clipstitle, creation time, duration, views, likes, category, creator, thumbnail, URL
ProvenancediscoveryMethod, discoveryValue, scrapedAt

Upstream fields can be unavailable. Nullable output fields remain null instead of receiving guessed values.

How to scrape Kick channels

  1. Open the Actor input.
  2. Choose at least one route: startUrls, channelSlugs, searchQueries, or discoverFeatured.
  3. Optionally keep only currently live channels or supply a category filter.
  4. Choose whether to enrich channels with recent videos and clips.
  5. Set maxItems to the maximum number of channel records you need.
  6. Start the run and open the default dataset.
  7. Export JSON, CSV, Excel, XML, RSS, or connect the dataset to another Apify integration.

A useful first run is the prefilled https://kick.com/xqc channel lookup. It emits one enriched channel record.

Input parameters

FieldTypeDefaultPurpose
startUrlsarrayxQc channel prefillExact public Kick channel URLs.
channelSlugsstring array[]Exact channel usernames or slugs.
searchQueriesstring array[]Creator names or keywords searched on Kick.
discoverFeaturedbooleanfalseDiscover channels from the featured live feed.
liveOnlybooleanfalseKeep channels live at scrape time.
categorystringunsetCase-insensitive current/recent category name or slug filter.
includeVideosbooleantrueAdd recent VOD summaries to each channel.
videosLimitinteger5Videos per channel, from 0 to 25.
includeClipsbooleantrueAdd recent clip summaries to each channel.
clipsLimitinteger5Clips per channel, from 0 to 25.
maxItemsinteger25Maximum channel records, from 1 to 500.

Channel URLs must use kick.com. Invalid hosts, blank slugs, blank filters, and out-of-range limits fail with a clear error rather than silently broadening the run.

Example inputs

Search Kick for creators and enrich the first three matches:

{
"searchQueries": ["xqc"],
"videosLimit": 2,
"clipsLimit": 2,
"maxItems": 3
}

Look up a known channel:

{
"startUrls": [{ "url": "https://kick.com/xqc" }],
"videosLimit": 5,
"clipsLimit": 5,
"maxItems": 1
}

Discover ten currently featured livestreamers without media enrichment:

{
"discoverFeatured": true,
"liveOnly": true,
"includeVideos": false,
"includeClips": false,
"maxItems": 10
}

Output example

The default dataset contains one object per accepted channel. This shortened example mirrors the current output shape; counts and live status change over time.

{
"channelId": 12345,
"userId": 23456,
"username": "example_streamer",
"slug": "example_streamer",
"channelUrl": "https://kick.com/example_streamer",
"profilePictureUrl": "https://files.kick.com/images/user/23456/profile.webp",
"bio": "Gaming and conversation streams.",
"followersCount": 125000,
"verified": true,
"affiliate": false,
"banned": false,
"isLive": true,
"liveTitle": "Evening community stream",
"liveViewerCount": 4200,
"liveStartedAt": "2025-01-15T12:00:00.000Z",
"language": "English",
"currentCategory": {
"id": 15,
"name": "Just Chatting",
"slug": "just-chatting"
},
"recentCategories": [],
"recentVideos": [],
"recentClips": [],
"discoveryMethod": "search",
"discoveryValue": "gaming",
"scrapedAt": "2025-01-15T12:05:00.000Z"
}

Nested arrays follow the limits in your input. Disabling videos or clips returns an empty array for that section.

How much does it cost to scrape Kick channels?

The Actor uses pay-per-event pricing: $0.005 per run plus one item event for every accepted channel written to the default dataset. Videos and clips nested in that channel record do not trigger separate events.

Apify tierPrice per channel
FREE$0.0036432
BRONZE$0.003168
SILVER$0.002471
GOLD$0.0019008
PLATINUM$0.0012672
DIAMOND$0.00088704

At BRONZE, 1 accepted channel costs about $0.0082, 10 cost about $0.0367, and 100 cost about $0.3218, including the one-time start event. Runtime platform usage is covered by this PPE pricing configuration.

For an exact estimate, calculate:

$0.005 + (accepted channel rows ร— your active item tier)

Filters can reduce the number of accepted rows below maxItems. Failed, duplicate, and filtered-out candidates are not emitted as item records.

Recurring monitoring workflows

A scheduled run can capture a comparable snapshot of selected channels or currently featured creators. Use channelSlugs for a stable roster and discoverFeatured for changing market coverage.

Suggested flow:

  1. schedule the Actor hourly, daily, or weekly;
  2. keep channelId as the stable entity key;
  3. store scrapedAt, isLive, liveViewerCount, category, and follower count;
  4. compare each row with the previous run in your database or automation;
  5. alert only on changes relevant to your campaign or research.

The Actor exports observations. It does not maintain historical diffs or send alerts by itself.

Spreadsheet and data-pipeline exports

From the dataset page, export the overview as CSV or Excel for manual analysis. For automated pipelines, request JSON from the dataset API and upsert by channelId.

Good downstream patterns include:

  • append daily channel snapshots to BigQuery or Snowflake;
  • update creator research rows in Airtable or Google Sheets;
  • send currently live channels to Slack through Make or Zapier;
  • rank candidates by follower and visible live-viewer signals;
  • join Kick creator data with an internal sponsorship CRM.

API access with cURL

Start a run through the Apify API:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~kick-streamer-channel-analytics/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["xqc"],
"videosLimit": 2,
"clipsLimit": 2,
"maxItems": 3
}'

Wait for completion, then read the run's defaultDatasetId and fetch its items.

API access with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/kick-streamer-channel-analytics').call({
channelSlugs: ['xqc'],
videosLimit: 5,
clipsLimit: 5,
maxItems: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API access with Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("automation-lab/kick-streamer-channel-analytics").call(
run_input={
"discoverFeatured": True,
"liveOnly": True,
"includeVideos": False,
"includeClips": False,
"maxItems": 10,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use Kick Scraper through MCP

Add the Actor to Claude Code through Apify MCP:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/kick-streamer-channel-analytics"

For Claude Desktop, add this remote server under mcpServers in its configuration file. Cursor users can add the same JSON in MCP settings, and VS Code users can add it through their MCP server configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/kick-streamer-channel-analytics"
}
}
}

Example prompts:

  • โ€œSearch Kick for xQc and return the first three enriched channels.โ€
  • โ€œLook up these Kick usernames and show follower count, live status, and category.โ€
  • โ€œDiscover ten featured live Kick creators without fetching clips or videos.โ€

Tips for efficient runs

  • Disable includeVideos and includeClips when you only need current channel or livestream state.
  • Use exact channel slugs for recurring roster monitoring.
  • Start search runs with a small maxItems; search terms can match multiple channels.
  • Keep media limits low for frequent schedules and raise them only when content history is needed.
  • Combine discoverFeatured with liveOnly for a focused current-market snapshot.
  • Use the category filter after testing the exact category name or slug shown by Kick.

Limits and data freshness

Kick controls the public endpoints and can change fields, ordering, availability, or rate limits. followersCount, live-viewer values, and current status are point-in-time observations. A channel can go offline between discovery and enrichment.

Search relevance and the featured feed are controlled by Kick. The Actor does not promise exhaustive platform coverage. Recent video and clip endpoints return the source's available order and are capped at 25 summaries per channel by this Actor.

Private, deleted, banned, renamed, or unavailable channels may not produce a row. If every discovered candidate is unavailable after bounded retries, the run fails instead of returning a misleading successful empty dataset.

Troubleshooting

Why did a search return no rows?

Kick may have no channel match for the query. Try a known channel username, use a direct URL, or broaden the query. A legitimate search with no matches completes with an empty dataset.

Why are live fields null?

liveTitle, liveViewerCount, liveStartedAt, language, and currentCategory are expected to be null while a channel is offline.

Why are recent videos or clips empty?

The channel may have no public recent media, VODs may be disabled, or your input disabled that enrichment. Check includeVideos, videosLimit, includeClips, and clipsLimit.

Why did the run fail for a channel URL?

Confirm the URL uses kick.com and points to a public channel rather than a video, clip, category, or unrelated path. Supply the channel's first path segment only.

Responsible use and legality

This Actor collects public Kick data available without login. You are responsible for complying with Kick's terms, applicable privacy and database laws, and the rules governing your intended use.

Do not use output for harassment, invasive profiling, discrimination, unsolicited spam, or attempts to access private information. Minimize stored personal data, secure exports, define a retention period, and honor valid deletion or correction obligations.

Choose this Actor when Kick is the source and you need channel identity, live status, audience context, and recent media in one row.

FAQ

Does Kick Scraper require a Kick API key?

No. Users provide public URLs, usernames, searches, or featured-discovery settings. No Kick credential is requested.

Does it download videos or clips?

No. It exports public metadata and source URLs. It does not download or store media files.

Can I scrape only live channels?

Yes. Set liveOnly to true. The filter applies to exact URLs, usernames, search results, and featured discovery.

Can I filter by category?

Yes. Provide a case-insensitive category name or slug. The Actor compares it with the current and recent categories available on each enriched channel.

Are videos and clips charged separately?

No. The only per-record event is the accepted channel item. Nested videos and clips do not create separate charge events.

Can I monitor follower or viewer changes?

Yes, by scheduling repeat runs and comparing snapshots externally. The Actor does not maintain a history table or send alerts itself.

Is the output complete for every Kick creator?

No. Exact lookups cover supplied public channels. Search and featured discovery follow Kick's current public result sets and ordering; they are not a complete platform index.