---
title: "Update Agent"
method: PATCH
path: "/v1/agents/{id}"
tags: ["Agents"]
---

# Update Agent

`PATCH /v1/agents/{id}`

## Request

- Base URL: `https://api.bey.dev`
- URL: `https://api.bey.dev/v1/agents/{id}`
- Auth: API key in header `x-api-key`

Update an existing agent.

Only the fields present in the request body are changed; omitted fields keep
their current values.

## Path parameters

- `id` string, required: Agent ID.

## Request body

- UpdateAgentRequest: Request body to update an agent. Omitted fields are unchanged.
  - `name` string: Display name to use. Also used when addressed in conversations.
  - `avatar_id` string: ID of avatar to use.
  - `system_prompt` string: System prompt to use.
  - `language` 'ar' | 'ar-SA' | 'bn' | 'bg' | 'zh' | 'cs' | 'da' | 'nl' | 'en' | 'en-AU' | 'en-GB' | 'en-US' | 'fi' | 'fr' | 'fr-CA' | 'fr-FR' | 'de' | 'el' | 'hi' | 'hu' | 'id' | 'it' | 'ja' | 'kk' | 'ko' | 'ms' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'pt-PT' | 'ro' | 'ru' | 'sk' | 'es' | 'sv' | 'tr' | 'uk' | 'ur' | 'vi': Language for communication.
  - `greeting` string, nullable: What to say when a call starts.
  - `max_session_length_minutes` integer, nullable: Maximum session length in minutes.
  - `capabilities` AgentCapability[]
    - union
      - WebcamVisionAgentCapability: Agent capability to see user camera feed.
        - `type` 'webcam_vision'
      - WakeupModeAgentCapability: Agent capability to wake up only on specific keywords.
        - `type` 'wakeup_mode'
        - `triggers` string[], required
  - `llm` union
    - LivekitAgentLlm: Configuration for LLMs supported via LiveKit Inference.
      - `type` 'livekit'
      - `model` string, nullable
      - `reasoning_effort` 'low' | 'medium' | 'high' | 'xhigh', nullable
    - OpenaiAgentLlm: Configuration for OpenAI LLM.
      - `type` 'openai'
      - `model` 'gpt-5.4-mini' | 'gpt-4.1-mini' | 'gpt-4.1', nullable: Name of model to use. Defaults to GPT 5.4 mini.
    - OpenaiCompatibleAgentLlm: Configuration for an LLM provided by an OpenAI-compatible API. The notion of "OpenAI-compatible API" is somewhat fuzzy, there is no agreed upon standard for what it means. In practice, we care if the API is compatible with how LiveKit's openai plugin interacts with it, i.e. a subset of OpenAI's API specification that provides chat completions: https://platform.openai.com/docs/api-reference/completions
      - `type` 'openai_compatible'
      - `api_id` string, required
      - `model` string, required
      - `temperature` number, required
      - `headers` object
    - ElevenlabsAgentLlm: Configuration for running your own ElevenLabs agent. ElevenLabs runs the conversation with the agent's own prompt, voice, knowledge base and tools, so the agent cannot set a TTS or a greeting, nor use webcam vision, wakeup mode or dynamic avatar emotions. The ElevenLabs agent should send the `agent_response_complete` client event.
      - `type` 'elevenlabs_agent'
      - `api_id` string, required
      - `agent_id` string, required
  - `tts` union
    - LivekitAgentTts: Configuration for TTS supported via LiveKit Inference.
      - `type` 'livekit'
      - `model` string, nullable
      - `voice` string, nullable
    - CartesiaAgentTts: Configuration for Cartesia TTS.
      - `type` 'cartesia'
      - `model` string, nullable
      - `voice` string, nullable
    - ElevenlabsAgentTts: Configuration for Elevenlabs TTS.
      - `type` 'elevenlabs'
      - `voice` string, nullable
    - DeepgramAgentTts: Configuration for Deepgram TTS.
      - `type` 'deepgram'
      - `voice` string, nullable
    - OpenaiAgentTts: Configuration for OpenAI TTS.
      - `type` 'openai_tts'
      - `voice` string, nullable
    - GoogleAgentTts: Configuration for Google TTS.
      - `type` 'google_tts'
      - `voice` string, nullable
  - `knowledge_file_ids` string[]: IDs of knowledge files to refer to.

## Response `204`

Successful Update

## Other responses

- `401`: Authentication failed. The `x-api-key` header is missing or the provided API key is invalid.
- `402`: The plan's usage limit has been reached, or the requested feature requires a plan upgrade.
- `403`: The API key is valid but not permitted to perform this action, because the resource belongs to someone else.
- `404`: The requested resource does not exist or is not accessible with this API key.
- `422`: The request is malformed. `detail` lists each field that failed validation, where it was located, and why.
- `429`: The plan's limit on the number of concurrent sessions has been reached.

## Changes

- **2026-10-20** `0469e200c235`: 1 info
  - added the non-success response with the status `402`
- **2026-10-16** `c8f80740b51c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bey-dev/apis/beyond-presence-api/changes/v1/agents/:id/patch.md)

---

[API](https://skmtc.dev/bey-dev/apis/beyond-presence-api.md) - [All operations](https://skmtc.dev/bey-dev/apis/beyond-presence-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bey-dev/apis/beyond-presence-api/revisions/2d37d86bc5c1?raw)
