Video & audio · Coming soon

Kick Live Streams & Viewer Count

Paste Kick channel names or links. Get live status, viewers, title, category and paid subscribers. You can also list the top live streams of a category. You use your own free Kick key.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

matchedBycategory
channelSlugabsi
userId27894320

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: xqc in Channels. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Kick Live Streams & Viewer Count gets live status, viewer count, stream title, category, language and paid subscriber count for a list of Kick channels, or the top live streams of any Kick category. You paste channel names or kick.com links, or type a category such as Just Chatting, and add your own free Kick Client ID and Client Secret. You get one clean table row per channel, with numbers as numbers.

  • Accepts channel names (xqc), handles (@adinross) and links (https://kick.com/xqc). Upper and lower case do not matter.
  • Channel rows come in the order of your list. A channel that appears twice is looked up once.
  • For a category, the Actor saves the channels live in it right now, most viewers first, up to maxItems. A channel that is already in your list is not saved twice.
  • A channel that Kick does not have gets a not_found row with your original line. A line that is not a Kick channel name gets an invalid_input row.
  • An offline channel has isLive: false and null viewers, title and category. null is never written as 0.
  • E-mail addresses in a channel description are replaced with [email removed]. The Actor does not collect contacts.

Good for

  • You track a list of streamers and need to know who is live, with how many viewers, right now.
  • You want the biggest live streams of a category (for example Slots & Casino or Just Chatting) as a table.
  • You want an official, stable data source instead of page scraping.

Not a good fit

  • You need follower counts. The official Kick API does not give followers, so this Actor does not have them. It gives the paid subscriber count instead.
  • You need clips, past broadcasts (VODs), chat messages or viewer lists.
  • You need e-mails or other contacts of streamers. This Actor does not collect them.
  • You have no Kick account with two-factor authentication. You need it to make the free key.

Who uses it

Streamer managers

Check which of your streamers are live now.

Sponsors

Compare viewer counts of channels before a deal.

Analysts

Save the top live streams of a category on a schedule.

Price

Prices will be shown after release.

Questions

Do I need a Kick key?

Yes. You make a free Client ID and Client Secret in your Kick account. Two-factor login must be on.

Does it give follower counts?

No. The official Kick API does not give followers. You get paid subscribers instead.

What if a channel is offline?

The row shows isLive false. Viewers, title and category are empty, not zero.

How many channels can I check?

Up to 1,000 channels and 20 categories per run. Kick gives up to 100 live streams per category.

Do I need a Kick account?

Yes, to make the free key, with two-factor authentication on. The Actor does not log in to your account and does not use cookies.

Does it cost Kick money?

No. The Kick API is free. You pay only the Apify price above.

Can I switch from another Kick scraper without changes?

Not without changes. Field names differ (for example viewerCount, channelSlug, title), and there are no followers. In return you get one row format for channels and categories, clear not_found / invalid_input rows and ISO UTC times.

Is personal data included?

Only public channel and stream data that Kick shows on the channel page. E-mail addresses in descriptions are removed. No viewer or chat data.

Details

Step by step on Apify
  1. Get a key (see above).
  2. Paste your Client ID and Client Secret.
  3. The Channels field already has xqc. Add more names or links, one per line, or add a category in Categories.
  4. Click Start. A few channels take about 3 seconds.
  5. Open the Channels view of the dataset, or download it as CSV, Excel or JSON.
Use cases
TaskInputKey fieldsNext step
Check which of your streamers are livethe creators' channel namesisLive, viewerCount, title, categoryAlert your team or update a dashboard
Find top streamers of a category for a campaigncategories, maxItems: 100rank, viewerCount, language, activeSubscribersShortlist channels of the right size and language
Track viewers over timethe same list every 15 minutes or every hourviewerCount, fetchedAt, userIdChart peak and average viewers in a sheet
Clean a creator lista list from a sheet or CRMstatus, channelSlug, urlRemove renamed or banned channels
Enrich data for BI or a modelmany channelsall fieldsJoin on userId
Tips for better results
  • Paste names, @handles or kick.com links. Each form works.
  • Add a category like Just Chatting to see the most watched channels.
  • Run it on a schedule to build a history of viewer counts.
Limits and good to know

Data comes from the Kick Public API under your own Kick app. Please follow the Kick Developer Terms. This Actor is not affiliated with or endorsed by Kick.

  • Up to 1,000 lines in channels and up to 20 categories with up to 100 live streams each per run. We tested both at once: 1,449 rows saved in about 118 seconds (the other category streams were already in the channel list)
  • Kick gives at most 100 live streams per category, most viewers first
  • Kick marks its old live streams endpoint (the only one sorted by viewers) as deprecated. If Kick turns it off, the Actor switches by itself to the newer endpoint, reads all live streams of the category and sorts them by viewers. Results stay the same; a big category takes a few more requests
  • If Kick says "too many requests" and the limit does not come back after about 45 seconds of waiting, the Actor keeps the saved rows and ends as PARTIAL with reason QUOTA_LIMIT. The run still SUCCEEDED. Run again a few minutes later, or split the list
  • The Actor stops looking up channels 15 seconds before the run timeout so it can save the results. It keeps the saved rows and ends as PARTIAL with reason TIME_LIMIT. The default timeout of 300 seconds is enough for the maximum input
  • If Kick fails again and again, the run keeps saved rows and ends with reason SOURCE_ERROR
  • isLive and viewerCount are live at fetchedAt and change all the time
  • No follower counts: the official Kick Public API does not give them

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "status": "complete",
  "input": "Just Chatting",
  "matchedBy": "category",
  "rank": 1,
  "channelSlug": "absi",
  "userId": 27894320,
  "displayName": "Absi",
  "isLive": true,
  "title": "مين ضيف اليوم",
  "viewerCount": 18942,
  "category": "Just Chatting",
  "categoryId": 15,
  "language": "ar",
  "isMature": false,
  "startedAt": "2026-10-22T08:59:29.000Z",
  "thumbnailUrl": "https://images.kick.com/video_thumbnails/IUNVIedvenl6/4RMUEbHHHebd/480.webp",
  "description": null,
  "activeSubscribers": 1593,
  "profilePictureUrl": "https://files.kick.com/images/user/27894320/profile_image/conversion/951102c4-68da-415c-a344-d6dbaec3fb05-medium.webp",
  "bannerPictureUrl": null,
  "url": "https://kick.com/absi",
  "source": "kick-public-api",
  "fetchedAt": "2026-10-22T10:31:40.720Z",
  "message": null
}
Data fields (24)
FieldTypeMeaning
statusstringcomplete = all fields found; partial = saved, but Kick did not return some fields (see message); not_found = no Kick channel or category with this name (small empty-result fee); invalid_input = not a Kick channel name (small empty-result fee); api_key_required = free notice when the Client ID or Secret is missing.
inputstringYour channels or categories entry as typed.
matchedBystringchannel = from your channels list; category = a live stream from one of your categories.
rankinteger1-based position among the category's live streams by viewers (category rows only).
channelSlugstringChannel name as in kick.com/<channel>.
userIdintegerKick broadcaster user id; stable even when the channel name changes.
displayNamestringChannel display name.
isLivebooleanTrue when the channel is live right now.
titlestringLive stream title; null when offline.
viewerCountintegerCurrent viewers; null when offline (never a made-up 0).
categorystringCategory of the live stream, e.g. Just Chatting; null when offline.
categoryIdintegerKick category id of the live stream.
languagestringStream language as Kick reports it; null when offline.
isMaturebooleanTrue when the stream is marked for mature audiences.
startedAtstringWhen the live stream started (ISO 8601, UTC).
thumbnailUrlstringLive stream thumbnail image.
descriptionstringChannel description. E-mail addresses are replaced with [email removed].
activeSubscribersintegerActive paid subscribers of the channel as reported by Kick.
profilePictureUrlstringChannel avatar.
bannerPictureUrlstringChannel banner image.
urlstringhttps://kick.com/<channel>.
sourcestringAlways kick-public-api.
fetchedAtstringWhen this row was fetched (ISO 8601, UTC).
messagestringWhy a row is partial, not_found, invalid_input or api_key_required; null otherwise.
Input settings (5)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Kick Client IDclientIdstring
Kick Client SecretclientSecretstring
Channelschannelsarray["xqc"]
Categoriescategoriesarray
Max live streams per categorymaxItemsinteger50

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure