---
title: "Update Bot"
method: PATCH
path: "/v1/bots/{uid}"
tags: ["Bots"]
---

# Update Bot

`PATCH /v1/bots/{uid}`

Update an existing bot's configuration.

## Path parameters

- `uid` string, required

## Request body

- UpdateBotRequest — All fields are optional for updates
  - `name` string, required — Name of the bot (max 255 characters)
  - `prompt` string, required — System prompt for the bot
  - `first_message` string — Initial message the bot will send
  - `knowledge_base_id` integer — ID of the knowledge base to use
  - `voice_provider` 'OpenAI' | 'ElevenLabs' | 'Deepgram' — Voice synthesis provider
  - `voice` string — Voice ID or name
  - `voice_model` string — Voice model to use
  - `voice_speed` number — Speech speed multiplier
  - `llm_model_name` string — Large language model to use
  - `llm_model_temperature` number — Temperature setting for the LLM
  - `stt_provider` 'Deepgram' — Speech-to-text provider
  - `stt_model` string — Speech-to-text model
  - `call_settings` CallSettings
    - `max_call_duration` integer — Maximum call duration in minutes (2-30)
    - `silence_timeout` integer — Silence timeout in seconds (5-45)
    - `silence_timeout_max_retries` integer — Maximum retries for silence timeout (1-5)
    - `silence_timeout_message` string — Message to play when silence timeout occurs
    - `call_recording_enabled` boolean — Whether to record calls
    - `voicemail_detection_enabled` boolean — Whether to detect voicemail
    - `hipaa_compliance_enabled` boolean — Whether HIPAA compliance is enabled
    - `pci_compliance_enabled` boolean — Whether PCI compliance is enabled
  - `advanced_settings` AdvancedSettings
    - `agent_personality` 'casual' | 'humorous' | 'direct' | 'formal' | 'persuasive' | 'friendly' — Personality type for the agent
    - `humanize_conversation` boolean — Whether to humanize the conversation
    - `background_noise_reduction` boolean — Whether to reduce background noise
    - `allow_interruptions` boolean — Whether to allow user interruptions
    - `min_interruption_duration` number — Minimum interruption duration in seconds (0.2-5, step 0.1)
    - `background_sound` string — Background sound to play
    - `agent_response_length` 'normal' | 'short' | 'concise' | 'long' — Preferred response length
    - `short_pause` number — Short pause duration in seconds (0.2-2, step 0.1)
    - `long_pause` number — Long pause duration in seconds (0.5-6, step 0.1)
    - `filter_phrases` string — Phrases to filter from speech
  - `post_call_settings` PostCallSettings
    - `summary_prompt` string — Prompt for generating call summary
    - `success_evaluation_prompt` string — Prompt for evaluating call success
    - `success_evaluation_rubric_type` 'NUMERIC_SCALE' | 'DESCRIPTIVE_SCALE' | 'PERCENTAGE_SCALE' | 'LIKERT_SCALE' | 'PASS_FAIL' | 'SENTIMENT' — Type of success evaluation rubric
    - `structured_extraction_prompt` string — Prompt for structured data extraction
    - `structured_extraction_json_schema` object — JSON schema for structured extraction

## Response `200`

Bot updated successfully

- BotResponse
  - `uid` string, required — Unique identifier of the bot
  - `name` string, required — Name of the bot
  - `prompt` string, required — System prompt for the bot
  - `first_message` string — Initial message the bot will send
  - `knowledge_base_id` integer — ID of the knowledge base
  - `voice_provider` 'OpenAI' | 'ElevenLabs' | 'Deepgram' — Voice synthesis provider
  - `voice` string — Voice ID or name
  - `voice_model` string — Voice model being used
  - `voice_speed` number — Speech speed multiplier
  - `llm_model_name` string — Large language model being used
  - `llm_model_temperature` number — Temperature setting for the LLM
  - `stt_provider` 'Deepgram' — Speech-to-text provider
  - `stt_model` string — Speech-to-text model
  - `call_settings` CallSettings
    - `max_call_duration` integer — Maximum call duration in minutes (2-30)
    - `silence_timeout` integer — Silence timeout in seconds (5-45)
    - `silence_timeout_max_retries` integer — Maximum retries for silence timeout (1-5)
    - `silence_timeout_message` string — Message to play when silence timeout occurs
    - `call_recording_enabled` boolean — Whether to record calls
    - `voicemail_detection_enabled` boolean — Whether to detect voicemail
    - `hipaa_compliance_enabled` boolean — Whether HIPAA compliance is enabled
    - `pci_compliance_enabled` boolean — Whether PCI compliance is enabled
  - `advanced_settings` AdvancedSettings
    - `agent_personality` 'casual' | 'humorous' | 'direct' | 'formal' | 'persuasive' | 'friendly' — Personality type for the agent
    - `humanize_conversation` boolean — Whether to humanize the conversation
    - `background_noise_reduction` boolean — Whether to reduce background noise
    - `allow_interruptions` boolean — Whether to allow user interruptions
    - `min_interruption_duration` number — Minimum interruption duration in seconds (0.2-5, step 0.1)
    - `background_sound` string — Background sound to play
    - `agent_response_length` 'normal' | 'short' | 'concise' | 'long' — Preferred response length
    - `short_pause` number — Short pause duration in seconds (0.2-2, step 0.1)
    - `long_pause` number — Long pause duration in seconds (0.5-6, step 0.1)
    - `filter_phrases` string — Phrases to filter from speech
  - `post_call_settings` PostCallSettings
    - `summary_prompt` string — Prompt for generating call summary
    - `success_evaluation_prompt` string — Prompt for evaluating call success
    - `success_evaluation_rubric_type` 'NUMERIC_SCALE' | 'DESCRIPTIVE_SCALE' | 'PERCENTAGE_SCALE' | 'LIKERT_SCALE' | 'PASS_FAIL' | 'SENTIMENT' — Type of success evaluation rubric
    - `structured_extraction_prompt` string — Prompt for structured data extraction
    - `structured_extraction_json_schema` object — JSON schema for structured extraction
  - `created_at` string, date-time, required — Bot creation timestamp
  - `updated_at` string, date-time, required — Bot last update timestamp

## Other responses

- `400` — Bad request - validation error
- `401` — Unauthorized - missing or invalid API key
- `404` — Bot not found
- `500` — Internal server error

## Changes

- **2025-08-04** `fd526cfa1fb2` — 2 breaking
  - the `allOf[#/components/schemas/CreateBotRequest]/post_call_settings/structured_extraction_json_schema` request property type/format changed from ``/`` to `object`/``
  - the `post_call_settings/structured_extraction_json_schema` response's property type/format changed from ``/`` to `object`/`` for status `200`
- **2025-06-09** `37428d2bd367` — 8 warning, 4 info
  - removed the request property `allOf[#/components/schemas/CreateBotRequest]/auto_end_call`
  - removed the request property `allOf[#/components/schemas/CreateBotRequest]/llm_max_tokens`
  - removed the optional property `auto_end_call` from the response with the `200` status
  - removed the optional property `details` from the response with the `400` status
  - …8 more
- **2025-06-08** `bdc693a4558b` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openmicai/apis/openmic-v1-external-api/changes/v1/bots/:uid/patch.md)

---

[API](https://skmtc.dev/openmicai/apis/openmic-v1-external-api.md) · [All operations](https://skmtc.dev/openmicai/apis/openmic-v1-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openmicai/openmic-v1-external-api/revisions/fd526cfa1fb2/schema)
