---
title: "PUT /simulate/agent-definitions/{agent_id}/edit/"
method: PUT
path: "/simulate/agent-definitions/{agent_id}/edit/"
tags: ["simulate"]
---

# PUT /simulate/agent-definitions/{agent_id}/edit/

`PUT /simulate/agent-definitions/{agent_id}/edit/`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/simulate/agent-definitions/{agent_id}/edit/`
- Auth: one of:
  - API key in header `X-Api-Key`
  - API key in header `X-Secret-Key`

Update an existing agent definition.

## Request body

- AgentDefinitionEditRequest
  - `agent_name` string
  - `agent_type` 'voice' | 'text'
  - `description` string, nullable
  - `provider` string, nullable
  - `api_key` string, nullable
  - `assistant_id` string, nullable
  - `authentication_method` 'api_key', nullable
  - `language` string, nullable
  - `languages` string[], nullable
  - `contact_number` string, nullable
  - `inbound` boolean
  - `target_speaks_first` boolean, nullable
  - `knowledge_base` string, uuid, nullable
  - `model` string, nullable
  - `model_details` object, nullable
  - `websocket_url` string, uri, nullable
  - `websocket_headers` object, nullable
  - `livekit_url` string, nullable
  - `livekit_api_key` string, nullable
  - `livekit_api_secret` string, nullable
  - `livekit_agent_name` string, nullable
  - `livekit_config_json` object, nullable
  - `livekit_max_concurrency` integer, nullable

## Response `200`

OK

- AgentDefinitionEditResponse
  - `message` string
  - `agent` AgentDefinitionResponse
    - `id` string, uuid
    - `agent_name` string: Name of the AI agent
    - `agent_type` 'voice' | 'text'
    - `contact_number` string, nullable: Phone number associated with the AI agent
    - `inbound` boolean: Whether the agent handles inbound calls
    - `target_speaks_first` boolean, nullable: Whether the target agent speaks first (greets) in a hosted voice simulation. True: the simulator waits for the target's greeting; False: the simulator opens the conversation; null: derive from inbound/outbound. Retell targets always let the simulator open (SDK limitation).
    - `description` string: Detailed description of the AI agent's purpose and capabilities
    - `assistant_id` string, nullable: External identifier for the assistant
    - `provider` string, nullable: Provider of the AI agent
    - `language` 'ar' | 'bg' | 'zh' | 'cs' | 'da' | 'nl' | 'en' | 'fi' | 'fr' | 'de' | 'el' | 'hi' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'ms' | 'no' | 'pl' | 'pt' | 'ro' | 'ru' | 'sk' | 'es' | 'sv' | 'tr' | 'uk' | 'vi', nullable: Language of the agent
    - `languages` string[], nullable
    - `authentication_method` 'api_key', nullable
    - `websocket_url` string, uri, nullable: WebSocket URL for real-time communication with the agent
    - `websocket_headers` object, nullable: Headers to be sent to the websocket server
    - `workspace` string, uuid, nullable
    - `knowledge_base` string, uuid, nullable
    - `organization` string, uuid: Organization this agent definition belongs to
    - `api_key` string
    - `observability_provider` string, uuid, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `model` string, nullable: Model of the agent
    - `model_details` object, nullable: Details of the model
    - `livekit_url` string
    - `livekit_api_key` string
    - `livekit_agent_name` string
    - `livekit_config_json` string
    - `livekit_max_concurrency` string

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `500`: Internal Server Error
- `default`: Default error response

---

[API](https://skmtc.dev/futureagi/apis/future-agi-management-api.md) · [All operations](https://skmtc.dev/futureagi/apis/future-agi-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/futureagi/apis/future-agi-management-api/revisions/c8684118e142?raw)
