# Moderation API

> KickBot API and MCP reference for chat moderation: change the link, caps, banned word, regex and length filters, and read the moderation logs.

Source: https://kickbot.com/docs/api/reference/moderation

Use these actions to read and change the chat filters that KickBot uses to moderate your Kick chat, and to read what the filters removed.

Each action is a REST endpoint under `https://kickbot.com/api/v1` and an MCP tool with the same name. The MCP area name is `moderation`. Use it to load only this area: `https://kickbot.com/api/v1/mcp?areas=moderation`.

A team member needs the **Moderation** permission in Manage Team. Owners and admins have every permission. Write actions also need a read and write key or connection. See [Permissions and security](https://kickbot.com/docs/api/start/permissions-and-security).

How the feature works in the dashboard: [Moderation](https://kickbot.com/docs/chat-bot/moderation).

## Actions

| Tool | REST | Access |
|---|---|---|
| [`get_moderation_settings`](#get_moderation_settings) | `GET /moderation/settings` | Read |
| [`update_moderation_settings`](#update_moderation_settings) | `PATCH /moderation/settings` | Write |
| [`list_moderation_logs`](#list_moderation_logs) | `GET /moderation/logs` | Read |

## get_moderation_settings

**Get the chat moderation settings.** Read the chat filters KickBot uses to delete messages: bad words, repeated text, caps, zalgo, message length, banned words, and banned regex.

```http
GET /api/v1/moderation/settings
```

No input fields.

## update_moderation_settings

**Update the chat moderation settings.** Change some chat filters. Only the fields you send change; lists replace the whole list. Requires a verified account. Returns the saved settings (check the lists: invalid entries are dropped).

```http
PATCH /api/v1/moderation/settings
```

Needs a read and write key or connection. This can delete or replace data, and you may not be able to undo it.

| Field | Type | Required | Description |
|---|---|---|---|
| `bad_word_filter` | boolean | No | Delete messages that contain words from KickBot's built-in bad word list. |
| `repeated_text_filter` | boolean | No | Delete messages with a lot of repeated text (spam). |
| `excessive_caps_filter` | boolean | No | Delete messages that are mostly capital letters. |
| `zalgo_filter` | boolean | No | Delete messages with zalgo (glitch) text. |
| `max_message_length` | integer | No | Delete messages longer than this many characters. 500 (the default) means no length limit. Must be at least 1. |
| `custom_banned_words` | array of string | No | Your own banned words or phrases. Replaces the whole list. Entries shorter than 2 characters are dropped; at most 200 are kept. A newline-separated string also works. |
| `banned_regex` | array of string | No | Regular expressions (JavaScript syntax) that delete matching messages. Replaces the whole list. Invalid patterns and patterns with nested quantifiers like (a+)+ are dropped; at most 20 are kept. Check the returned list. |

## list_moderation_logs

**List moderation logs.** List the chat messages the filters deleted, newest first: who sent it, the reason (the filter), and the message.

```http
GET /api/v1/moderation/logs
```

| Field | Type | Required | Description |
|---|---|---|---|
| `limit` (query) | integer | No | Max logs to return (1-100, default 50). |
| `offset` (query) | integer | No | Number of logs to skip (default 0). |
