Overview

VMSC connects to Kick using the Pusher WebSocket protocol. No API key or OAuth token is required — VMSC only needs your Kick channel slug (the part after kick.com/) to subscribe to public channel events.

All Kick events are normalized into the VMSC StreamEvent format with source set to "kick".

Pusher WebSocket Connection

Setting Value
WebSocket URL wss://ws-us2.pusher.com/app/{key}
Protocol Pusher Protocol v7
Channel Format chatrooms.{chatroomId}.v2
Auth Required No (public channels only)
Keepalive Pusher ping/pong every 120 seconds
Channel ID resolution

VMSC resolves your channel slug to a chatroom ID automatically by querying the Kick API on connection. You only need to enter the slug (e.g., myusername).

Auto-Reconnect with Exponential Backoff

If the Pusher WebSocket connection drops (network interruption, server restart, etc.), VMSC automatically attempts to reconnect using exponential backoff.

Attempt Delay
1st retry1 second
2nd retry2 seconds
3rd retry4 seconds
4th retry8 seconds
5th+ retry16 seconds (max)

The backoff resets once a successful connection is established. A small random jitter (0–1 second) is added to each delay to prevent reconnection storms.

Kick Events

The following Pusher events are captured from the chatroom channel and normalized into VMSC event types.

Pusher Event VMSC Event Type Description
App\Events\ChatMessageEvent chat A viewer sends a message in the chatroom.
App\Events\FollowEvent follow A user follows the channel.
App\Events\SubscriptionEvent subscribe A user subscribes to the channel.
App\Events\GiftedSubscriptionsEvent gift_sub A user gifts one or more subscriptions to other viewers.

Per-Event Data Fields

chat (ChatMessageEvent)

FieldTypeDescription
messagestringFull text of the chat message.
emotesobject[]Array of emote objects with id and name.
chatIdstringUnique ID of the chat message.
senderIdentityobjectSender identity with color and badges.

follow (FollowEvent)

FieldTypeDescription
followersCountnumberUpdated total follower count for the channel.

subscribe (SubscriptionEvent)

FieldTypeDescription
monthsnumberTotal months subscribed.

gift_sub (GiftedSubscriptionsEvent)

FieldTypeDescription
giftedCountnumberNumber of subscriptions gifted.
gifterUsernamestringDisplay name of the gifter.

Limitations

Public events only

Kick does not currently provide an authenticated API for streamers. VMSC subscribes to public chatroom events only. Some events that require authentication (e.g., detailed subscriber data, moderation actions) are not available.

  • No official Kick API documentation — event structures may change without notice.
  • Moderation events (bans, timeouts) are not available on the public channel.
  • Donation/tip events are not natively supported by Kick — use Streamlabs or StreamElements for donation tracking.
  • VMSC monitors the Kick event format and updates the integration when changes are detected.