---
title: "Simulates A Conversation (Stream)"
method: POST
path: "/v1/convai/agents/{agent_id}/simulate-conversation/stream"
tags: ["Agents Platform"]
deprecated: true
---

# Simulates A Conversation (Stream)

`POST /v1/convai/agents/{agent_id}/simulate-conversation/stream`

> **Deprecated.**

Deprecated. Use the `/v1/convai/agent-testing/create` and `/v1/convai/agents/:agent_id/run-tests` endpoints to create and run simulations. Run a conversation between the agent and a simulated user and stream back the response. Response is streamed back as partial lists of messages that should be concatenated and once the conversation has complete a single final message with the conversation analysis will be sent.

## Path parameters

- `agent_id` string, required — The id of an agent. This is returned on agent creation.

## Headers

- `xi-api-key` string, nullable — Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

## Request body

- BodySimulatesAConversationStreamV1ConvaiAgentsAgentIdSimulateConversationStreamPost
  - `simulation_specification` ConversationSimulationSpecification, required — A specification that will be used to simulate a conversation between an agent and an AI user.
    - `simulated_user_config` AgentConfigAPIModelInput, required
      - `first_message` string — If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion.
      - `language` string — Language of the agent - used for ASR and TTS
      - `hinglish_mode` boolean — When enabled and language is Hindi, the agent will respond in Hinglish
      - `dynamic_variables` DynamicVariablesConfig
        - `dynamic_variable_placeholders` object — A dictionary of dynamic variable placeholders and their values
      - `disable_first_message_interruptions` boolean — If true, the user will not be able to interrupt the agent while the first message is being delivered.
      - `max_conversation_duration_message` string — If non-empty, the message the agent will send when max conversation duration is reached.
      - `text_behavior_overrides` object, nullable — Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset.
      - `prompt` PromptAgentAPIModelInput
        - `prompt` string — The prompt for the agent
        - `llm` 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4' | 'gpt-4-turbo' | 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.2-chat-latest' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'gpt-5.6-sol' | 'gpt-5.6-terra' | 'gpt-5.6-luna' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-3.5-turbo' | 'gemini-1.5-pro' | 'gemini-1.5-flash' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.5-flash-lite' | 'gemini-2.5-flash' | 'gemini-3-pro-preview' | 'gemini-3-flash-preview' | 'gemini-3.1-pro-preview' | 'gemini-3.1-flash-lite-preview' | 'gemini-3.1-flash-lite' | 'gemini-3.5-flash' | 'gemini-3.5-flash-lite' | 'claude-sonnet-4-5' | 'claude-opus-4-7' | 'claude-opus-4-8' | 'claude-sonnet-4-6' | 'claude-sonnet-5' | 'claude-sonnet-4' | 'claude-haiku-4-5' | 'claude-3-7-sonnet' | 'claude-3-5-sonnet' | 'claude-3-5-sonnet-v1' | 'claude-3-haiku' | 'grok-beta' | 'custom-llm' | 'qwen3-4b' | 'qwen3-30b-a3b' | 'qwen36-35b-a3b' | 'qwen35-397b-a17b' | 'gpt-oss-20b' | 'gpt-oss-120b' | 'glm-45-air-fp8' | 'gemini-2.5-flash-preview-09-2025' | 'gemini-2.5-flash-lite-preview-09-2025' | 'gemini-2.5-flash-preview-05-20' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.5-flash-lite-preview-06-17' | 'gemini-2.0-flash-lite-001' | 'gemini-2.0-flash-001' | 'gemini-1.5-flash-002' | 'gemini-1.5-flash-001' | 'gemini-1.5-pro-002' | 'gemini-1.5-pro-001' | 'claude-sonnet-4@20250514' | 'claude-sonnet-4-5@20250929' | 'claude-haiku-4-5@20251001' | 'claude-3-7-sonnet@20250219' | 'claude-3-5-sonnet@20240620' | 'claude-3-5-sonnet-v2@20241022' | 'claude-3-haiku@20240307' | 'gpt-5-2025-08-07' | 'gpt-5.1-2025-11-13' | 'gpt-5.2-2025-12-11' | 'gpt-5.4-2026-03-05' | 'gpt-5.4-mini-2026-03-17' | 'gpt-5.4-nano-2026-03-17' | 'gpt-5.5-2026-04-23' | 'gpt-5-mini-2025-08-07' | 'gpt-5-nano-2025-08-07' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o-mini-2024-07-18' | 'gpt-4o-2024-11-20' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-05-13' | 'gpt-4-0613' | 'gpt-4-0314' | 'gpt-4-turbo-2024-04-09' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-1106' | 'watt-tool-8b' | 'watt-tool-70b'
        - `reasoning_effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'
        - `thinking_budget` integer, nullable — Max number of tokens used for thinking. Use 0 to turn off if supported by the model.
        - `enable_reasoning_summary` boolean — Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible.
        - `temperature` number, nullable — The temperature for the LLM. Defaults to 0. Set to null to omit the parameter from the LLM request entirely (useful for custom LLMs that reject the temperature field).
        - `max_tokens` integer — If greater than 0, maximum number of tokens the LLM can predict
        - `tool_ids` string[] — A list of IDs of tools used by the agent
        - `built_in_tools` BuiltInToolsInput
          - `end_call` SystemToolConfigInput — A system tool is a tool that is used to call a system method in the server
            - `type` 'system' — The type of tool
            - `name` string, required
            - `description` string — Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type.
            - `response_timeout_secs` integer — The maximum time in seconds to wait for the tool call to complete.
            - `disable_interruptions` boolean — DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.
            - `interruption_mode` 'allow' | 'disable_during_tool' | 'disable_during_tool_and_turn'
            - `force_pre_tool_speech` boolean — DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.
            - `pre_tool_speech` 'auto' | 'force' | 'off'
            - `assignments` DynamicVariableAssignment[] — Configuration for extracting values from tool responses and assigning them to dynamic variables
              - …
            - `tool_call_sound` 'typing' | 'elevator1' | 'elevator2' | 'elevator3' | 'elevator4', nullable — Predefined tool call sounds; ``None`` means no sound.
            - `tool_call_sound_behavior` 'auto' | 'always' — Determines how the tool call sound should be played.
            - `tool_error_handling_mode` 'auto' | 'summarized' | 'passthrough' | 'hide' — Controls how tool errors are processed before being shared with the agent.
            - `params` union, required
              - …
          - `language_detection` SystemToolConfigInput — A system tool is a tool that is used to call a system method in the server
            - `type` 'system' — The type of tool
            - `name` string, required
            - `description` string — Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type.
            - `response_timeout_secs` integer — The maximum time in seconds to wait for the tool call to complete.
            - `disable_interruptions` boolean — DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.
            - `interruption_mode` 'allow' | 'disable_during_tool' | 'disable_during_tool_and_turn'
            - `force_pre_tool_speech` boolean — DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.
            - `pre_tool_speech` 'auto' | 'force' | 'off'
            - `assignments` DynamicVariableAssignment[] — Configuration for extracting values from tool responses and assigning them to dynamic variables
              - …
            - `tool_call_sound` 'typing' | 'elevator1' | 'elevator2' | 'elevator3' | 'elevator4', nullable — Predefined tool call sounds; ``None`` means no sound.
            - `tool_call_sound_behavior` 'auto' | 'always' — Determines how the tool call sound should be played.
            - `tool_error_handling_mode` 'auto' | 'summarized' | 'passthrough' | 'hide' — Controls how tool errors are processed before being shared with the agent.
            - `params` union, required
              - …
          - `transfer_to_agent` SystemToolConfigInput — A system tool is a tool that is used to call a system method in the server
            - `type` 'system' — The type of tool
            - `name` string, required
            - `description` string — Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type.
            - `response_timeout_secs` integer — The maximum time in seconds to wait for the tool call to complete.
            - `disable_interruptions` boolean — DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.
            - `interruption_mode` 'allow' | 'disable_during_tool' | 'disable_during_tool_and_turn'
            - `force_pre_tool_speech` boolean — DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.
            - `pre_tool_speech` 'auto' | 'force' | 'off'
            - `assignments` DynamicVariableAssignment[] — Configuration for extracting values from tool responses and assigning them to dynamic variables
              - …
            - `tool_call_sound` 'typing' | 'elevator1' | 'elevator2' | 'elevator3' | 'elevator4', nullable — Predefined tool call sounds; ``None`` means no sound.
            - `tool_call_sound_behavior` 'auto' | 'always' — Determines how the tool call sound should be played.
            - `tool_error_handling_mode` 'auto' | 'summarized' | 'passthrough' | 'hide' — Controls how tool errors are processed before being shared with the agent.
            - `params` union, required
              - …
          - `transfer_to_number` SystemToolConfigInput — A system tool is a tool that is used to call a system method in the server
            - `type` 'system' — The type of tool
            - `name` string, required
            - `description` string — Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type.
            - `response_timeout_secs` integer — The maximum time in seconds to wait for the tool call to complete.
            - `disable_interruptions` boolean — DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.
            - `interruption_mode` 'allow' | 'disable_during_tool' | 'disable_during_tool_and_turn'
            - `force_pre_tool_speech` boolean — DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.
            - `pre_tool_speech` 'auto' | 'force' | 'off'
            - `assignments` DynamicVariableAssignment[] — Configuration for extracting values from tool responses and assigning them to dynamic variables
              - …
            - `tool_call_sound` 'typing' | 'elevator1' | 'elevator2' | 'elevator3' | 'elevator4', nullable — Predefined tool call sounds; ``None`` means no sound.
            - `tool_call_sound_behavior` 'auto' | 'always' — Determines how the tool call sound should be played.
            - `tool_error_handling_mode` 'auto' | 'summarized' | 'passthrough' | 'hide' — Controls how tool errors are processed before being shared with the agent.
            - `params` union, required
              - …
          - `skip_turn` SystemToolConfigInput — A system tool is a tool that is used to call a system method in the server
            - `type` 'system' — The type of tool
            - `name` string, required
            - `description` string — Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type.
            - `response_timeout_secs` integer — The maximum time in seconds to wait for the tool call to complete.
            - `disable_interruptions` boolean — DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.
            - `interruption_mode` 'allow' | 'disable_during_tool' | 'disable_during_tool_and_turn'
            - `force_pre_tool_speech` boolean — DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.
            - `pre_tool_speech` 'auto' | 'force' | 'off'
            - `assignments` DynamicVariableAssignment[] — Configuration for extracting values from tool responses and assigning them to dynamic variables
              - …
            - `tool_call_sound` 'typing' | 'elevator1' | 'elevator2' | 'elevator3' | 'elevator4', nullable — Predefined tool call sounds; ``None`` means no sound.
            - `tool_call_sound_behavior` 'auto' | 'always' — Determines how the tool call sound should be played.
            - `tool_error_handling_mode` 'auto' | 'summarized' | 'passthrough' | 'hide' — Controls how tool errors are processed before being shared with the agent.
            - `params` union, required
              - …
          - `play_keypad_touch_tone` SystemToolConfigInput — A system tool is a tool that is used to call a system method in the server
            - `type` 'system' — The type of tool
            - `name` string, required
            - `description` string — Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type.
            - `response_timeout_secs` integer — The maximum time in seconds to wait for the tool call to complete.
            - `disable_interruptions` boolean — DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.
            - `interruption_mode` 'allow' | 'disable_during_tool' | 'disable_during_tool_and_turn'
            - `force_pre_tool_speech` boolean — DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.
            - `pre_tool_speech` 'auto' | 'force' | 'off'
            - `assignments` DynamicVariableAssignment[] — Configuration for extracting values from tool responses and assigning them to dynamic variables
              - …
            - `tool_call_sound` 'typing' | 'elevator1' | 'elevator2' | 'elevator3' | 'elevator4', nullable — Predefined tool call sounds; ``None`` means no sound.
            - `tool_call_sound_behavior` 'auto' | 'always' — Determines how the tool call sound should be played.
            - `tool_error_handling_mode` 'auto' | 'summarized' | 'passthrough' | 'hide' — Controls how tool errors are processed before being shared with the agent.
            - `params` union, required
              - …
          - `voicemail_detection` SystemToolConfigInput — A system tool is a tool that is used to call a system method in the server
            - `type` 'system' — The type of tool
            - `name` string, required
            - `description` string — Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type.
            - `response_timeout_secs` integer — The maximum time in seconds to wait for the tool call to complete.
            - `disable_interruptions` boolean — DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.
            - `interruption_mode` 'allow' | 'disable_during_tool' | 'disable_during_tool_and_turn'
            - `force_pre_tool_speech` boolean — DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.
            - `pre_tool_speech` 'auto' | 'force' | 'off'
            - `assignments` DynamicVariableAssignment[] — Configuration for extracting values from tool responses and assigning them to dynamic variables
              - …
            - `tool_call_sound` 'typing' | 'elevator1' | 'elevator2' | 'elevator3' | 'elevator4', nullable — Predefined tool call sounds; ``None`` means no sound.
            - `tool_call_sound_behavior` 'auto' | 'always' — Determines how the tool call sound should be played.
            - `tool_error_handling_mode` 'auto' | 'summarized' | 'passthrough' | 'hide' — Controls how tool errors are processed before being shared with the agent.
            - `params` union, required
              - …
        - `mcp_server_ids` string[] — A list of MCP server ids to be used by the agent
        - `native_mcp_server_ids` string[] — A list of Native MCP server ids to be used by the agent
        - `knowledge_base` KnowledgeBaseLocator[] — A list of knowledge bases to be used by the agent
          - `type` 'file' | 'url' | 'text' | 'folder', required
          - `name` string, required — The name of the knowledge base
          - `id` string, required — The ID of the knowledge base
          - `usage_mode` 'prompt' | 'auto'
        - `custom_llm` CustomLLM
          - `url` string, required — The URL of the Chat Completions compatible endpoint
          - `model_id` string, nullable — The model ID to be used if URL serves multiple models
          - `api_key` union — The API key for authentication. Either a workspace secret reference {'secret_id': '...'} or an environment variable reference {'env_var_label': '...'}.
            - ConvAISecretLocator — Used to reference a secret from the agent's secret store.
              - …
            - ConvAIEnvVarLocator — Used to reference an environment variable by label.
              - …
          - `auth_connection` union — Optional workspace auth connection for authentication. Only auth connections that produce an Authorization Bearer token are supported; Basic auth, mTLS, custom header, and URL secret auth connections are not supported.
            - AuthConnectionLocator — Used to reference an auth connection from the workspace's auth connection store.
              - …
            - EnvironmentAuthConnectionLocator — References an environment variable of type 'auth_connection' by label. At runtime, resolves to the auth connection for the current environment, falling back to the default environment.
              - …
          - `request_headers` object — Headers that should be included in the request
          - `api_version` string, nullable — The API version to use for the request
          - `api_type` 'chat_completions' | 'responses' | 'websocket'
        - `ignore_default_personality` boolean, nullable — Whether to remove the default personality lines from the system prompt
        - `rag` RagConfigInput
          - `enabled` boolean
          - `embedding_model` 'e5_mistral_7b_instruct' | 'multilingual_e5_large_instruct'
          - `max_vector_distance` number — Maximum vector distance of retrieved chunks.
          - `max_documents_length` integer — Maximum total length of document chunks retrieved from RAG.
          - `max_retrieved_rag_chunks_count` integer — Maximum number of RAG document chunks to initially retrieve from the vector store. These are then further filtered by vector distance and total length.
          - `num_candidates` integer, nullable — Number of candidates evaluated in ANN vector search. Higher number means better results, but higher latency. Minimum recommended value is 100. If disabled, the default value is used.
          - `query_rewrite_prompt_override` string, nullable — Custom prompt for rewriting user queries before RAG retrieval. The conversation history will be automatically appended at the end. If not set, the default prompt will be used.
        - `timezone` string, nullable — Timezone for displaying current time in system prompt. If set, the current time will be included in the system prompt using this timezone. Must be a valid timezone name (e.g., 'America/New_York', 'Europe/London', 'UTC'). Recommended for accurate time-aware responses; without this, the agent has no knowledge of the current date/time unless you provide it via dynamic variables or tools, which can lead to incorrect or hallucinated time references.
        - `backup_llm_config` union — Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.
          - BackupLLMDefault
            - `preference` 'default'
          - BackupLLMDisabled
            - `preference` 'disabled'
          - BackupLLMOverride
            - `preference` 'override'
            - `order` LLM[], required
        - `cascade_timeout_seconds` number — Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds.
        - `tools` union[] — A list of tools that the agent can use over the course of the conversation, use tool_ids instead
          - union — The type of tool
            - WebhookToolConfigInput — A webhook tool is a tool that calls an external webhook from our server
              - …
            - ClientToolConfigInput — A client tool is one that sends an event to the user's client to trigger something client side
              - …
            - SystemToolConfigInput — A system tool is a tool that is used to call a system method in the server
              - …
            - MCPToolConfigInput — An MCP tool configuration that can be used to call MCP servers
              - …
            - ApiIntegrationWebhookToolConfigInput
              - …
            - SMBToolConfig — SMB tool configuration that wraps SMB tool parameters.
              - …
    - `tool_mock_config` object
    - `partial_conversation_history` ConversationHistoryTranscriptCommonModelInput[] — A partial conversation history to start the simulation from. If empty, simulation starts fresh.
      - `role` 'user' | 'agent', required
      - `agent_metadata` AgentMetadata
        - `agent_id` string, required
        - `branch_id` string, nullable
        - `workflow_node_id` string, nullable
        - `version_id` string, nullable
      - `message` string, nullable
      - `multivoice_message` ConversationHistoryMultivoiceMessageModel — Represents a message from a multi-voice agent.
        - `parts` ConversationHistoryMultivoiceMessagePartModel[], required
          - `text` string, required
          - `voice_label` string, nullable, required
          - `time_in_call_secs` integer, nullable, required
      - `tool_calls` ConversationHistoryTranscriptToolCallCommonModelInput[]
        - `type` 'system' | 'webhook' | 'client' | 'mcp' | 'workflow' | 'api_integration_webhook' | 'api_integration_mcp' | 'smb'
        - `request_id` string, required
        - `tool_name` string, required
        - `params_as_json` string, required
        - `tool_has_been_called` boolean, required
        - `tool_details` union
          - ConversationHistoryTranscriptToolCallWebhookDetails
            - `type` 'webhook'
            - `method` string, required
            - `url` string, required
            - `headers` object
            - `path_params` object
            - `query_params` object
            - `body` string, nullable
          - ConversationHistoryTranscriptToolCallClientDetails
            - `type` 'client'
            - `parameters` string, required
          - ConversationHistoryTranscriptToolCallMCPDetails
            - `type` 'mcp'
            - `mcp_server_id` string, required
            - `mcp_server_name` string, required
            - `integration_type` string, required
            - `parameters` object
            - `approval_policy` string, required
            - `requires_approval` boolean
            - `mcp_tool_name` string
            - `mcp_tool_description` string
          - ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetailsInput
            - `type` 'api_integration_webhook'
            - `integration_id` string
            - `credential_id` string
            - `integration_connection_id` string
            - `webhook_details` ConversationHistoryTranscriptToolCallWebhookDetails, required
              - …
      - `tool_results` union[]
        - union
          - ConversationHistoryTranscriptOtherToolsResultCommonModel
            - `request_id` string, required
            - `tool_name` string, required
            - `result_value` string, required
            - `is_error` boolean, required
            - `is_blocked` boolean
            - `tool_has_been_called` boolean, required
            - `tool_latency_secs` number
            - `error_type` string
            - `raw_error_message` string
            - `dynamic_variable_updates` DynamicVariableUpdateCommonModel[]
              - …
            - `type` 'client' | 'webhook' | 'mcp' | 'code', nullable
          - ConversationHistoryTranscriptSystemToolResultCommonModelInput
            - `request_id` string, required
            - `tool_name` string, required
            - `result_value` string, required
            - `is_error` boolean, required
            - `is_blocked` boolean
            - `tool_has_been_called` boolean, required
            - `tool_latency_secs` number
            - `error_type` string
            - `raw_error_message` string
            - `dynamic_variable_updates` DynamicVariableUpdateCommonModel[]
              - …
            - `type` 'system', required
            - `result` union
              - …
          - ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelInput
            - `request_id` string, required
            - `tool_name` string, required
            - `result_value` string, required
            - `is_error` boolean, required
            - `is_blocked` boolean
            - `tool_has_been_called` boolean, required
            - `tool_latency_secs` number
            - `error_type` string
            - `raw_error_message` string
            - `dynamic_variable_updates` DynamicVariableUpdateCommonModel[]
              - …
            - `type` 'api_integration_webhook', required
            - `integration_id` string
            - `credential_id` string
            - `integration_connection_id` string
          - ConversationHistoryTranscriptWorkflowToolsResultCommonModelInput
            - `request_id` string, required
            - `tool_name` string, required
            - `result_value` string, required
            - `is_error` boolean, required
            - `is_blocked` boolean
            - `tool_has_been_called` boolean, required
            - `tool_latency_secs` number
            - `error_type` string
            - `raw_error_message` string
            - `dynamic_variable_updates` DynamicVariableUpdateCommonModel[]
              - …
            - `type` 'workflow', required
            - `result` WorkflowToolResponseModelInput — A common model for workflow tool responses.
              - …
      - `feedback` UserFeedback
        - `score` 'like' | 'dislike', required
        - `time_in_call_secs` integer, required
      - `llm_override` string, nullable
      - `producing_llm` string, nullable
      - `time_in_call_secs` integer, required
      - `conversation_turn_metrics` ConversationTurnMetrics
        - `metrics` object
        - `convai_asr_provider` string, nullable
        - `convai_tts_model` string, nullable
        - `convai_tts_cascade` string, nullable
      - `rag_retrieval_info` RagRetrievalInfo
        - `chunks` RagChunkMetadata[], required
          - `document_id` string, required
          - `chunk_id` string, required
          - `vector_distance` number, required
        - `embedding_model` 'e5_mistral_7b_instruct' | 'multilingual_e5_large_instruct', required
        - `retrieval_query` string, required
        - `rag_latency_secs` number, required
        - `used_chunk_ids` string[]
      - `llm_usage` LLMUsageInput
        - `model_usage` object
      - `interrupted` boolean
      - `ignored_as_backchannel` boolean
      - `original_message` string, nullable
      - `reasoning` ConversationReasoningModel[]
        - `summary` string, nullable
        - `provider_redact` boolean
      - `source_medium` 'audio' | 'text' | 'image' | 'file'
      - `source_event_id` integer, nullable
      - `used_static_kb_document_ids` string[]
      - `user_identifier` string, nullable
      - `id` string, nullable
      - `triggered_guardrails` TriggeredGuardrailCommonModel[]
        - `guardrail_type` 'custom' | 'prompt_injection' | 'self_harm_intent' | 'violence_graphic' | 'sexual' | 'violence' | 'harassment' | 'sexual_minors' | 'self_harm' | 'self_harm_instructions' | 'harassment_threatening' | 'hate' | 'hate_threatening' | 'profanity' | 'religion_or_politics' | 'medical_and_legal' | 'guardrail', required
        - `guardrail_name` string, nullable
    - `dynamic_variables` object
  - `extra_evaluation_criteria` PromptEvaluationCriteria[], nullable — A list of evaluation criteria to test
    - `id` string, required — The unique identifier for the evaluation criteria
    - `name` string, required
    - `type` 'prompt' — The type of evaluation criteria
    - `conversation_goal_prompt` string, required — The prompt that the agent should use to evaluate the conversation
    - `use_knowledge_base` boolean — When evaluating the prompt, should the agent's knowledge base be used.
    - `scope` 'conversation' | 'agent'
    - `llm` 'gpt-4o-mini' | 'gpt-4o' | 'gpt-4' | 'gpt-4-turbo' | 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.2-chat-latest' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'gpt-5.6-sol' | 'gpt-5.6-terra' | 'gpt-5.6-luna' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-3.5-turbo' | 'gemini-1.5-pro' | 'gemini-1.5-flash' | 'gemini-2.0-flash' | 'gemini-2.0-flash-lite' | 'gemini-2.5-flash-lite' | 'gemini-2.5-flash' | 'gemini-3-pro-preview' | 'gemini-3-flash-preview' | 'gemini-3.1-pro-preview' | 'gemini-3.1-flash-lite-preview' | 'gemini-3.1-flash-lite' | 'gemini-3.5-flash' | 'gemini-3.5-flash-lite' | 'claude-sonnet-4-5' | 'claude-opus-4-7' | 'claude-opus-4-8' | 'claude-sonnet-4-6' | 'claude-sonnet-5' | 'claude-sonnet-4' | 'claude-haiku-4-5' | 'claude-3-7-sonnet' | 'claude-3-5-sonnet' | 'claude-3-5-sonnet-v1' | 'claude-3-haiku' | 'grok-beta' | 'custom-llm' | 'qwen3-4b' | 'qwen3-30b-a3b' | 'qwen36-35b-a3b' | 'qwen35-397b-a17b' | 'gpt-oss-20b' | 'gpt-oss-120b' | 'glm-45-air-fp8' | 'gemini-2.5-flash-preview-09-2025' | 'gemini-2.5-flash-lite-preview-09-2025' | 'gemini-2.5-flash-preview-05-20' | 'gemini-2.5-flash-preview-04-17' | 'gemini-2.5-flash-lite-preview-06-17' | 'gemini-2.0-flash-lite-001' | 'gemini-2.0-flash-001' | 'gemini-1.5-flash-002' | 'gemini-1.5-flash-001' | 'gemini-1.5-pro-002' | 'gemini-1.5-pro-001' | 'claude-sonnet-4@20250514' | 'claude-sonnet-4-5@20250929' | 'claude-haiku-4-5@20251001' | 'claude-3-7-sonnet@20250219' | 'claude-3-5-sonnet@20240620' | 'claude-3-5-sonnet-v2@20241022' | 'claude-3-haiku@20240307' | 'gpt-5-2025-08-07' | 'gpt-5.1-2025-11-13' | 'gpt-5.2-2025-12-11' | 'gpt-5.4-2026-03-05' | 'gpt-5.4-mini-2026-03-17' | 'gpt-5.4-nano-2026-03-17' | 'gpt-5.5-2026-04-23' | 'gpt-5-mini-2025-08-07' | 'gpt-5-nano-2025-08-07' | 'gpt-4.1-2025-04-14' | 'gpt-4.1-mini-2025-04-14' | 'gpt-4.1-nano-2025-04-14' | 'gpt-4o-mini-2024-07-18' | 'gpt-4o-2024-11-20' | 'gpt-4o-2024-08-06' | 'gpt-4o-2024-05-13' | 'gpt-4-0613' | 'gpt-4-0314' | 'gpt-4-turbo-2024-04-09' | 'gpt-3.5-turbo-0125' | 'gpt-3.5-turbo-1106' | 'watt-tool-8b' | 'watt-tool-70b'
    - `scoring_mode` 'binary' | 'numeric_uniform'
    - `max_score` integer — Maximum value of the numeric score scale (minimum is always 0). Only used when scoring_mode is 'numeric_uniform'.
    - `score_instructions` string, nullable — Optional free-text instructions describing how to assign values on the numeric scale. Only used when scoring_mode is 'numeric_uniform'.
  - `new_turns_limit` integer — Maximum number of new turns to generate in the conversation simulation

## Response `200`

Successful Response

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/elevenlabs/apis/elevenlabs-api-documentation.md) · [All operations](https://skmtc.net/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elevenlabs/elevenlabs-api-documentation/versions/e77a0a530a82/schema)
