> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kavachos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Kick

> Authenticate users via Kick OAuth 2.0. Register an app in the Kick developer dashboard, set a redirect URI, and configure `user:read` scope in the `oauth()` plugin.

## Setup

<Steps>
  <Step>
    ### Get credentials

    Go to [kick.com](https://kick.com) and navigate to **Dashboard > Developer > Applications**. Create an app and set your redirect URI:

    ```
    https://your-app.com/api/kavach/auth/oauth/callback/kick
    ```
  </Step>

  <Step>
    ### Configure

    ```ts title="lib/kavach.ts" theme={"system"}
    import { createKavach } from 'kavachos';
    import { oauth } from 'kavachos/auth';

    const kavach = await createKavach({
      database: { provider: 'sqlite', url: 'kavach.db' },
      plugins: [
        oauth({
          providers: [
            {
              id: 'kick',
              clientId: process.env.KICK_CLIENT_ID!,
              clientSecret: process.env.KICK_CLIENT_SECRET!,
            },
          ],
        }),
      ],
    });
    ```

    ```bash theme={"system"}
    KICK_CLIENT_ID=...
    KICK_CLIENT_SECRET=...
    ```
  </Step>
</Steps>

## Scopes

Default scopes: `user:read`

| Scope          | What it unlocks             |
| -------------- | --------------------------- |
| `user:read`    | Read user profile and email |
| `channel:read` | Read channel information    |
| `chat:read`    | Read chat messages          |

<Info>
  Kick's OAuth implementation is relatively new. Check the [Kick API documentation](https://kick.com/api) for the latest scope definitions.
</Info>

## Endpoints

| Method | Path                         | Description      |
| ------ | ---------------------------- | ---------------- |
| GET    | `/auth/oauth/authorize/kick` | Redirect to Kick |
| GET    | `/auth/oauth/callback/kick`  | Handle callback  |
