Webhooks
Set up webhooks for events with the Kick Public API
Webhooks
App Access Tokens and User Access Tokens can access this feature.
Headers
Header | Type | Description |
---|---|---|
Kick-Event-Message-Id | ULID | Unique message ID, idempotent key |
Kick-Event-Subscription-Id | ULID | Subscription ID associated with event |
Kick-Event-Signature | Base64 Encode String | Signature to verify the sender |
Kick-Event-Message-Timestamp | RFC3339 Date-time | Timestamp of when the message was sent |
Kick-Event-Type | string | e.g. channel:write |
Kick-Event-Version | string | e.g. 1 |
Webhook Sender Validation
Kick-Event-Signature
header is used to validate if a request has come from the Kick servers. This is to prevent anyone who finds an app’s webhook endpoint from sending fake events.
Kick Public Key
This is the Kick public key. Any request that is sent from our servers will have a signature signed by our Private Key, which can be decrypted using this Public Key.
The public key can also be fetched from this endpoint: https://api.kick.com/public/v1/public-key
Get Public Key
See the Public Key API documentation
Signature Creation
The signature is created through the concatenation of the following values into a single string, separated by a .
:
Kick-Event-Message-Id
Kick-Event-Message-Timestamp
- The raw body of the request
Once concatenated, the body will be signed with the Kick Private Key.
Examples
Here are some examples of verifying the signature in different languages:
Retrying Sending of Events
Kick will attempt to send a webhook 3 times over a period of time until a 200 response is made by the server.
Disabling of Webhooks
After a certain threshold of errors are received from an app’s webhook endpoint, Kick may automatically unsubscribe the app from receiving webhooks.
The app will then need to resubscribe to webhooks.