> For the complete documentation index, see [llms.txt](https://docs.kickbot.com/dashboard/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kickbot.com/dashboard/api/api-keys.md).

# Create and use API keys

Create a KickBot API key for your own scripts and agents, choose read-only or read and write access, and revoke the key when you no longer need it.

An API key lets a script or agent use the KickBot API as you, on one channel. It has your team permissions on that channel, nothing more.

## Create a key

1. Navigate to **API & MCP** in the KickBot dashboard sidebar (under **Account**).
2. Click **Create key**.
3. Enter a name you will recognize later, for example "Stream agent".
4. Choose the access: **Read and write**, or **Read only**.
5. Choose when the key expires, or **Never**.
6. Click **Create key** and copy the key.

{% hint style="warning" %}
KickBot shows the full key only once. Store it in a password manager or an environment variable. Do not paste it into an AI chat or commit it to a code repository.
{% endhint %}

The key starts with `kb_live_`. The dashboard shows only the first characters afterwards, so you can tell keys apart.

## Use a key

Send the key in the `Authorization` header of every request:

```bash
curl https://kickbot.com/api/v1/account \
  -H "Authorization: Bearer $KICKBOT_API_KEY"
```

The same header works for the MCP server at `https://kickbot.com/api/v1/mcp`.

## Team members

The channel owner and admins can always create keys. Moderators need the **API & MCP access** permission, which the owner or an admin turns on in **Manage Team**. A team member's key can only do what that member can do in the dashboard.

If you remove a team member, or take away a permission, their keys lose that access at once.

## Revoke a key

Navigate to **API & MCP** in the dashboard sidebar and click **Revoke** next to the key, then click again to confirm. Requests with that key stop working at once. Owners and admins can revoke any key on the channel.

Each team member can have up to 20 active keys per channel.

## FAQ

<details>

<summary>Can I use one key for two channels?</summary>

No. A key belongs to one channel. If you manage more than one channel, switch channels in the dashboard and create a key for each.

</details>

<details>

<summary>Is my Stream Deck key the same as an API key?</summary>

No. The Stream Deck plugin uses its own key in \*\*Settings\*\*. API keys are separate, and creating or revoking one does not affect the Stream Deck.

</details>

<details>

<summary>What happens if my key leaks?</summary>

Revoke it right away in \*\*API & MCP\*\* in the dashboard sidebar and create a new one. Check \*\*Recent API activity\*\* to see what the key changed.

</details>

## Need a hand?

Email <support@kickbot.com> or ask in the `#support` channel on [Discord](https://discord.gg/MAg3gBbc89).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.kickbot.com/dashboard/api/api-keys.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
