---
title: "Update AI bot settings for an app (v2, tenant actor)"
method: PUT
path: "/v2/apps/{appId}/bot"
tags: ["Apps"]
---

# Update AI bot settings for an app (v2, tenant actor)

`PUT /v2/apps/{appId}/bot`

## Request

- Base URL: `https://api.chat.ethora.com`
- URL: `https://api.chat.ethora.com/v2/apps/{appId}/bot`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

**Auth**: Tenant Actor

Same operation as `/v2/bot`, but with explicit app targeting.
Supports `User JWT` and `B2B Server JWT`.

## Path parameters

- `appId` string, required

## Request body

- object
  - `status` 'on' | 'off': `on` to enable the AI bot for this app, `off` to disable. When off, no LLM calls are made and the bot user does not respond in chats.
  - `trigger` 'any_message' | '/bot': When the bot replies. `any_message` (every message in joined rooms) or `/bot` (only when a message starts with `/bot`).
  - `prompt` string: System prompt prepended to the LLM context on every reply. Shapes the bot's persona and behavior; supports markdown.
  - `greetingMessage` string: Optional message the bot posts when first added to a room or when a new user joins.
  - `chatId` string: Optional chat ID the bot is anchored to. When set, the bot only responds in this room rather than every room it's been added to.
  - `isRAG` boolean: If true, the bot augments LLM context with the app's RAG sources (uploaded docs + crawled sites) at reply time.
  - `botFirstName` string: Given name for the bot user. Shown as the message sender in the chat-component.
  - `botLastName` string: Family name for the bot user. Shown alongside `botFirstName`.
  - `savedAgentId` string
  - `ragTags` string[]
  - `llmProvider` string
  - `llmModel` string
  - `widgetPublicEnabled` boolean
  - `widgetPublicUrl` string
  - `botDisplayName` string: Empty means unchanged.
  - `botAvatarUrl` string
  - `defaultBotInstanceId` string: Which BotInstance answers the website widget. Must be one of this App's BotInstances (422 otherwise); "" clears it.

## Response `200`

ok

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity
- `500`: Internal Server Error

---

[API](https://skmtc.dev/ethora/apis/platform-api.md) · [All operations](https://skmtc.dev/ethora/apis/platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ethora/apis/platform-api/revisions/01b6e64378ee?raw)
