Kick Scraper
Pricing
from $2.50 / 1,000 results
Kick Scraper
[๐ฐ $2.5 / 1K] Scrape Kick.com channels, live streams, videos, clips, and top-channel rankings. Get profiles, followers, viewer counts, stream titles, categories, social links, and more โ for any channel or category.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pull structured data from Kick.com at scale โ full streamer profiles, the currently-live directory, past broadcasts and clips with view counts, and the platform's top-channel rankings, all in clean rows you can sort and filter. Four scrape modes share one tidy output schema, so a follower count, a live viewer number, and a clip's view total all come back ready for analysis. Built for talent scouts, sponsorship researchers, esports analysts, and stream-analytics builders who need fresh Kick data without babysitting a browser or copy-pasting numbers off the site.
Why This Scraper?
- 4 scrape modes in one actor โ Channel Details, Live Streams, Channel Videos, and Top Channels, each selected from a single dropdown. No separate tools, no juggling.
- Full streamer profiles โ username, bio, follower count, verified and affiliate flags, profile and banner images, subscriber badges, and live status in a single row.
- Up to 6 social links per channel โ Twitter, Instagram, YouTube, Discord, TikTok, and Facebook handles, expanded into ready-to-click full URLs (not bare handles).
- VODs and clips with engagement metrics โ past broadcasts carry view counts and duration; clips add likes, the original clipper's name, and unbounded pagination sorted by most-viewed or most-recent.
- Live-stream directory with real filters โ pull up to ~100 currently-live streams, narrow to a single category, set a minimum-viewer floor, and order by viewers or by most recently started.
- Rank-ordered top channels โ the curated featured ranking comes back numbered 1, 2, 3โฆ, each enriched with live viewer counts, category, and stream title.
- Flexible channel input โ paste a bare username (
xqc), a short link (kick.com/xqc), or a fullhttps://kick.com/...URL; all three resolve to the same channel. - Normalized, consistent fields โ durations always in seconds (VOD milliseconds and clip seconds reconciled for you), viewer counts as numbers, and timestamps in ISO format across every record type.
Use Cases
Influencer & Talent Discovery
- Find live streamers in a category and rank them by current viewers
- Build shortlists of verified or affiliate channels with follower thresholds
- Pull contact and social-handle lists straight from channel profiles
- Spot fast-rising channels by tracking follower counts over time
Sponsorship & Brand Research
- Match brands to streamers by category, audience size, and content
- Capture every social link a channel publishes for outreach
- Measure live reach by reading current viewer counts across top channels
- Vet a creator's recent broadcasts and clips before signing a deal
Stream & Audience Analytics
- Snapshot the live directory on a schedule to chart viewership trends
- Compare viewer counts across categories like Just Chatting, Slots, or IRL
- Track how long streams run using start-time and duration data
- Benchmark a channel's VOD and clip view counts against peers
Competitive & Market Research
- Monitor which categories dominate the featured ranking
- Watch competitor channels' live status, titles, and categories
- Map the mature-content landscape using the per-stream maturity flag
- Track top-channel turnover week over week
Content Aggregation
- Collect a channel's most-viewed clips for a highlight reel
- Feed past-broadcast metadata into a content calendar
- Surface trending live streams for a discovery feed or newsletter
Getting Started
Scrape a Channel Profile
The simplest run โ full details for one or more channels:
{"mode": "channel_details","channelNames": ["xqc", "kick.com/trainwreckstv"]}
Browse the Live Directory
Pull the busiest streams in a category, skipping quiet ones:
{"mode": "live_streams","category": "just-chatting","minViewers": 500,"sortBy": "viewers","maxResults": 100}
Collect a Channel's Clips
Grab a channel's most-viewed clips with engagement data:
{"mode": "channel_videos","channelNames": ["xqc"],"videoType": "clips","sortBy": "viewers","maxResults": 200}
Rank the Top Live Channels
{"mode": "top_channels","sortBy": "viewers"}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | select | channel_details | What to collect: Channel Details (full profiles), Live Streams (live right now), Channel Videos (past broadcasts or clips), or Top Channels (most-watched featured channels). |
channelNames | string[] | ["xqc"] | Channel names or links, one per line โ a bare name (xqc), short link (kick.com/xqc), or full URL. Used by Channel Details and Channel Videos. |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
category | string | "" | Return only streams in this category. Use the slug as it appears in the Kick URL โ e.g. just-chatting, slots, fortnite. Applies to Live Streams and Top Channels. Leave empty for all categories. |
videoType | select | videos | For Channel Videos: collect full past broadcasts (VODs) or short clips. |
sortBy | select | viewers | Ordering โ most viewers first or most recent. Applies to Live Streams, Top Channels, and Channel Videos clips (clips: most-viewed vs. most recently created). Past broadcasts (VODs) always come back newest-first. |
minViewers | integer | 0 | Drop streams with fewer current viewers than this. Leave at 0 to include every stream. |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 50 | Most rows to return this run (1โ1000). Some modes have natural ceilings: Live Streams returns up to ~100, Top Channels ~14, and VODs up to the 24 most recent per channel. Clips and Channel Details honor this limit fully. |
Output
Every row carries a recordType field (channel, stream, video, or topChannel) and a scrapedAt ISO timestamp, so mixed datasets stay easy to split. Each mode produces one record type.
Channel (channel_details)
{"recordType": "channel","channelName": "xqc","channelUrl": "https://kick.com/xqc","displayName": "xQc","bio": "THE BEST STREAMER IN THE WORLD","avatarUrl": "https://files.kick.com/images/user/xqc/profile.webp","bannerUrl": "https://files.kick.com/images/user/xqc/banner.webp","followersCount": 1248300,"isLive": true,"currentViewers": 41200,"currentCategory": "Just Chatting","currentStreamTitle": "REACTING TO EVERYTHING","startedAt": "2026-06-19T13:02:00Z","verified": true,"isAffiliate": true,"isBanned": false,"hasSubscriptions": true,"subscriberBadges": [{ "months": 1, "imageUrl": "https://files.kick.com/badges/1.png" }],"socialLinks": {"twitter": "https://twitter.com/xqc","instagram": "https://www.instagram.com/xqc","youtube": "https://www.youtube.com/xqc","discord": null,"tiktok": null,"facebook": null},"createdAt": "2022-09-30T18:14:00Z","scrapedAt": "2026-06-19T14:30:00Z"}
| Field | Type | Description |
|---|---|---|
channelName | string | Channel slug (the part after kick.com/) |
channelUrl | string | Full channel URL |
displayName | string | Streamer's display name |
bio | string | Channel bio / about text |
avatarUrl | string | Profile picture URL |
bannerUrl | string | Channel banner image URL |
followersCount | number | Total follower count |
isLive | boolean | Whether the channel is streaming right now |
currentViewers | number | Live viewer count (null when offline) |
currentCategory | string | Category being streamed (null when offline) |
currentStreamTitle | string | Current stream title (null when offline) |
startedAt | string | Stream start time (null when offline) |
verified | boolean | Verified-channel flag |
isAffiliate | boolean | Affiliate-program flag |
isBanned | boolean | Whether the channel is currently banned on Kick |
hasSubscriptions | boolean | Whether subscriptions are enabled |
subscriberBadges | object[] | Subscriber-tier badges (months + image URL) |
socialLinks | object | Full URLs for Twitter, Instagram, YouTube, Discord, TikTok, Facebook |
createdAt | string | Channel creation date |
Live Stream (live_streams)
{"recordType": "stream","channelName": "trainwreckstv","channelUrl": "https://kick.com/trainwreckstv","displayName": "Trainwreckstv","viewers": 18750,"title": "SLOTS & CHILL","category": "Slots","language": "English","startedAt": "2026-06-19T12:40:00Z","thumbnailUrl": "https://images.kick.com/video_thumbnails/trainwreckstv/720.webp","isMature": true,"tags": ["gambling", "slots"],"scrapedAt": "2026-06-19T14:30:00Z"}
| Field | Type | Description |
|---|---|---|
channelName | string | Channel slug |
channelUrl | string | Full channel URL |
displayName | string | Streamer's display name |
viewers | number | Current viewer count |
title | string | Stream title |
category | string | Stream category name |
language | string | Stream language |
startedAt | string | Stream start time |
thumbnailUrl | string | Live thumbnail image URL |
isMature | boolean | Mature-content flag |
tags | string[] | Stream tags |
Video & Clip (channel_videos)
{"recordType": "video","channelName": "xqc","channelUrl": "https://kick.com/xqc","type": "clip","clipId": "clip_01HXYZ","title": "Insane clutch moment","duration": 42,"views": 215000,"likes": 8400,"category": "Counter-Strike 2","createdAt": "2026-06-10T19:22:00Z","thumbnailUrl": "https://clips.kick.com/clip_01HXYZ/thumb.webp","videoUrl": "https://kick.com/xqc/clips/clip_01HXYZ","creator": "clipmaster99","isMature": false,"scrapedAt": "2026-06-19T14:30:00Z"}
| Field | Type | Description |
|---|---|---|
channelName | string | Channel slug |
channelUrl | string | Full channel URL |
type | string | video (past broadcast) or clip |
clipId | string | Unique video or clip identifier |
title | string | Video or clip title |
duration | number | Length in seconds (normalized for both VODs and clips) |
views | number | View count |
likes | number | Like count (clips only; null on VODs) |
category | string | Category the content belongs to |
createdAt | string | Publication date |
thumbnailUrl | string | Thumbnail image URL |
videoUrl | string | Direct watch URL |
creator | string | Username of the clip's creator (clips only) |
isMature | boolean | Mature-content flag |
Top Channel (top_channels)
{"recordType": "topChannel","rank": 1,"channelName": "xqc","channelUrl": "https://kick.com/xqc","displayName": "xQc","avatarUrl": "https://files.kick.com/images/user/xqc/profile.webp","currentViewers": 41200,"currentStreamTitle": "REACTING TO EVERYTHING","category": "Just Chatting","startedAt": "2026-06-19T13:02:00Z","bio": "THE BEST STREAMER IN THE WORLD","isAffiliate": true,"hasSubscriptions": true,"socialLinks": { "twitter": "https://twitter.com/xqc" },"scrapedAt": "2026-06-19T14:30:00Z"}
| Field | Type | Description |
|---|---|---|
rank | number | Position in the featured ranking (1 = top) |
channelName | string | Channel slug |
channelUrl | string | Full channel URL |
displayName | string | Streamer's display name |
avatarUrl | string | Profile picture URL |
currentViewers | number | Live viewer count |
currentStreamTitle | string | Current stream title |
category | string | Category being streamed |
startedAt | string | Stream start time |
bio | string | Channel bio (enriched per channel) |
isAffiliate | boolean | Affiliate-program flag (enriched) |
hasSubscriptions | boolean | Subscriptions enabled (enriched) |
socialLinks | object | Full social URLs (enriched) |
Tips for Best Results
- Get category slugs from the Kick URL. Open a category page on Kick and copy the slug from the address bar โ
kick.com/browse/categories/just-chattingmeans yourcategoryvalue isjust-chatting. The visible category name won't work. - Clips is the only unbounded mode. Past broadcasts cap at the 24 most recent per channel, Live Streams at ~100, and Top Channels at ~14. If you need deep history for a channel, use
videoType: "clips"and raisemaxResults. - Use
minViewersto focus on active streams. Setting a floor like 500 trims the long tail of tiny streams so you only keep channels with real reach โ ideal for sponsorship shortlists. - Mix input formats freely.
channelNamesaccepts bare names, short links, and full URLs in the same run, so you can paste a list straight from wherever you collected it. - Snapshot live data on a schedule. Live viewer counts and the directory change minute to minute โ run Live Streams or Top Channels on a recurring schedule to build a time series.
- Split mixed datasets by
recordType. When you run several modes into one dataset, filter onrecordType(channel,stream,video,topChannel) to separate them cleanly.
Pricing
From $2.50 per 1,000 results โ competitively priced for Kick data, with deeper discounts as your subscription tier grows. The table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.30 | $0.28 | $0.27 | $0.25 |
| 1,000 | $3.00 | $2.80 | $2.65 | $2.50 |
| 10,000 | $30.00 | $28.00 | $26.50 | $25.00 |
| 100,000 | $300.00 | $280.00 | $265.00 | $250.00 |
A "result" is any row in the output dataset โ a channel, stream, video, clip, or top-channel entry. No compute or time-based charges โ you pay per result, plus a small fixed per-run start fee.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n โ Workflow automation
- Google Sheets โ Direct spreadsheet export
- Slack / Email โ Notifications on new results
- Webhooks โ Trigger custom APIs on run completion
- Apify API โ Full programmatic access
Legal & Ethical Use
This actor is intended for legitimate research, analytics, talent discovery, and brand work using publicly available Kick.com data. You are responsible for complying with applicable laws and Kick's Terms of Service. Do not use collected data for spam, harassment, or any unlawful purpose, and handle any personal data (such as social handles) in line with relevant privacy regulations.