Kick Scraper avatar

Kick Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Kick Scraper

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

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 full https://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

ParameterTypeDefaultDescription
modeselectchannel_detailsWhat to collect: Channel Details (full profiles), Live Streams (live right now), Channel Videos (past broadcasts or clips), or Top Channels (most-watched featured channels).
channelNamesstring[]["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

ParameterTypeDefaultDescription
categorystring""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.
videoTypeselectvideosFor Channel Videos: collect full past broadcasts (VODs) or short clips.
sortByselectviewersOrdering โ€” 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.
minViewersinteger0Drop streams with fewer current viewers than this. Leave at 0 to include every stream.

Limits

ParameterTypeDefaultDescription
maxResultsinteger50Most 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"
}
FieldTypeDescription
channelNamestringChannel slug (the part after kick.com/)
channelUrlstringFull channel URL
displayNamestringStreamer's display name
biostringChannel bio / about text
avatarUrlstringProfile picture URL
bannerUrlstringChannel banner image URL
followersCountnumberTotal follower count
isLivebooleanWhether the channel is streaming right now
currentViewersnumberLive viewer count (null when offline)
currentCategorystringCategory being streamed (null when offline)
currentStreamTitlestringCurrent stream title (null when offline)
startedAtstringStream start time (null when offline)
verifiedbooleanVerified-channel flag
isAffiliatebooleanAffiliate-program flag
isBannedbooleanWhether the channel is currently banned on Kick
hasSubscriptionsbooleanWhether subscriptions are enabled
subscriberBadgesobject[]Subscriber-tier badges (months + image URL)
socialLinksobjectFull URLs for Twitter, Instagram, YouTube, Discord, TikTok, Facebook
createdAtstringChannel 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"
}
FieldTypeDescription
channelNamestringChannel slug
channelUrlstringFull channel URL
displayNamestringStreamer's display name
viewersnumberCurrent viewer count
titlestringStream title
categorystringStream category name
languagestringStream language
startedAtstringStream start time
thumbnailUrlstringLive thumbnail image URL
isMaturebooleanMature-content flag
tagsstring[]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"
}
FieldTypeDescription
channelNamestringChannel slug
channelUrlstringFull channel URL
typestringvideo (past broadcast) or clip
clipIdstringUnique video or clip identifier
titlestringVideo or clip title
durationnumberLength in seconds (normalized for both VODs and clips)
viewsnumberView count
likesnumberLike count (clips only; null on VODs)
categorystringCategory the content belongs to
createdAtstringPublication date
thumbnailUrlstringThumbnail image URL
videoUrlstringDirect watch URL
creatorstringUsername of the clip's creator (clips only)
isMaturebooleanMature-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"
}
FieldTypeDescription
ranknumberPosition in the featured ranking (1 = top)
channelNamestringChannel slug
channelUrlstringFull channel URL
displayNamestringStreamer's display name
avatarUrlstringProfile picture URL
currentViewersnumberLive viewer count
currentStreamTitlestringCurrent stream title
categorystringCategory being streamed
startedAtstringStream start time
biostringChannel bio (enriched per channel)
isAffiliatebooleanAffiliate-program flag (enriched)
hasSubscriptionsbooleanSubscriptions enabled (enriched)
socialLinksobjectFull 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-chatting means your category value is just-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 raise maxResults.
  • Use minViewers to 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. channelNames accepts 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 on recordType (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.

ResultsNo discountBronzeSilverGold
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

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.