Kick source

Receives Kick’s official webhook events. Unlike Twitch, Kick does not offer a public EventSub WebSocket transport, so a public HTTPS server must receive the webhooks. No unofficial chat API is used. Each Kick account picks one Connection:

  • Webhook gateway (default): the operator-managed webhook gateway receives and verifies the webhooks and streams them to the app. Nothing to install or tunnel.
  • Self-hosted Kick companion: a local companion with your own Kick developer app and a public HTTPS tunnel or relay.

Supported in both the standalone app and Overwolf. With the companion, Overwolf requires explicit companion pairing.

The Stream Pulse-operated gateway requires StreamPulse Pro. Self-hosted Kick companions, gateways and user-provided tunnels/relays do not require Pro.

Setup with the webhook gateway

  1. Under Connections > Accounts, register a Kick sign-in account and open Sign-in settings. Connection is Webhook gateway (default); enter the Webhook gateway URL if it is empty.
  2. Select Sign in with Kick and Open the approval page. Continue only if the page shows the same phrase as the app, then approve on Kick.
  3. Under Connections > Sources, add Kick, select the signed-in account, channels and events, then save. Webhook delivery shows Webhook gateway (default) and needs no setup.

Setup with a self-hosted companion

  1. Follow Kick companion setup: register a Kick developer app, configure its callback and webhook URLs, and start the companion. Keep its client secret server-side.
  2. Under Connections > Accounts, register a Kick sign-in account. Open Sign-in settings, set Connection to Self-hosted Kick companion, confirm the companion origin, then select Sign in with Kick and Continue sign-in on Kick. Approve access in the new tab. Refresh accounts loads existing companion sign-ins.
  3. Under Connections > Sources, add Kick, select the signed-in account, channels and events, then save. Optionally select a shared Webhook delivery connection. HTTP tunnels and raw-body relays preserve signatures; standard Smee is not eligible. Leave the delivery unselected for the legacy tunnel setup.

The companion defaults to http://127.0.0.1:5180. The simulator uses http://127.0.0.1:5173; its existing local endpoints remain private. Tunnel only the companion’s public callback and webhook routes, never the simulator or the companion’s /local/ controls. The companion rejects forwarded requests to local controls.

For another channel, first register a read-only Kick account with its kick.com/<slug> channel name. Saving verifies the channel through a signed-in Kick account. Select it in Channels to watch. Registering a channel does not grant access: Kick still enforces subscription permissions, and authorization failures appear on the source card.

Events

Events appear under Kick (source) with feature webhook:

Event Default
chat.message.sent on
channel.followed on
channel.subscription.new on
channel.subscription.renewal on
channel.subscription.gifts on
channel.reward.redemption.updated on
livestream.status.updated on
livestream.metadata.updated on
moderation.banned off
kicks.gifted on

data.channel is the broadcaster’s slug, data.channelId its numeric user ID as a string, data.message the chat content, and data.author contains userId and name for the sender, follower, subscriber or gifter. Anonymous gifters have empty author fields. Chat message IDs are in data.id, gifted subscription counts in data.count, and stream status in data.isLive. Reward redemptions include data.rewardTitle, data.status and the user input in data.message; KICKs gifts include data.amount and the gift message. The original payload is preserved in data.raw. Rule conditions offer the corresponding channel, author, message and status fields.

The gateway or companion checks Kick’s signature over the raw body, timestamp and message ID, rejects stale/replayed deliveries, and scopes events to registered subscriptions. Sources retry interrupted streams with backoff and remove their subscription leases when stopped. They obey Dry run / Live; dry run still receives events but never sends destination actions.

With the gateway, events received while the app is closed are kept for a few minutes and replayed on reconnect; the source reports when some were missed. With a companion, it must remain running, and a changed tunnel hostname requires updating the app’s registered callback and webhook URLs and restarting the companion. See Kick’s official documentation.