---
title: "Get Test Invocation"
method: GET
path: "/v1/convai/test-invocations/{test_invocation_id}"
---

# Get Test Invocation

`GET /v1/convai/test-invocations/{test_invocation_id}`

Gets a test invocation by ID.

## Path parameters

- `test_invocation_id` string, required — The id of a test invocation. This is returned when tests are run.

## 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.

## Response `200`

Successful Response

- GetTestSuiteInvocationResponseModel
  - `id` string, required
  - `agent_id` string, nullable
  - `branch_id` string, nullable
  - `created_at` integer
  - `folder_id` string, nullable
  - `repeat_count` integer
  - `bucketing_status` 'pending' | 'completed' | 'failed'
  - `result_groups` TestRunResultSummary[]
    - `test_id` string, required
    - `test_name` string, required
    - `workflow_node_id` string, nullable
    - `buckets` TestRunResultBucket[], required
      - `test_run_ids` string[], required
      - `title` string, required — Short one-line title for this bucket
      - `reason` string, required — Short summary of why the test runs in this bucket passed or failed
      - `status` 'pending' | 'passed' | 'failed', required
  - `test_runs` UnitTestRunResponseModel[], required
    - `test_run_id` string, required
    - `test_info` union
      - ResponseUnitTestModel
        - `from_conversation_metadata` TestFromConversationMetadataOutput
          - `conversation_id` string, required
          - `agent_id` string, required
          - `branch_id` string, nullable
          - `workflow_node_id` string, nullable
          - `original_agent_reply` ConversationHistoryTranscriptCommonModelOutput[]
            - `role` 'user' | 'agent', required
            - `agent_metadata` AgentMetadata
              - …
            - `message` string, nullable
            - `multivoice_message` ConversationHistoryMultivoiceMessageModel — Represents a message from a multi-voice agent.
              - …
            - `tool_calls` ConversationHistoryTranscriptToolCallCommonModelOutput[]
              - …
            - `tool_results` union[]
              - …
            - `feedback` UserFeedback
              - …
            - `llm_override` string, nullable
            - `time_in_call_secs` integer, required
            - `conversation_turn_metrics` ConversationTurnMetrics
              - …
            - `rag_retrieval_info` RagRetrievalInfo
              - …
            - `llm_usage` LLMUsageOutput
              - …
            - `interrupted` boolean
            - `ignored_as_backchannel` boolean
            - `original_message` string, nullable
            - `reasoning` ConversationReasoningModel[]
              - …
            - `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[]
              - …
        - `dynamic_variables` object — Dynamic variables to replace in the agent config during testing
        - `chat_history` ConversationHistoryTranscriptCommonModelOutput[]
          - `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
              - …
          - `tool_calls` ConversationHistoryTranscriptToolCallCommonModelOutput[]
            - `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
              - …
          - `tool_results` union[]
            - union
              - …
          - `feedback` UserFeedback
            - `score` 'like' | 'dislike', required
            - `time_in_call_secs` integer, required
          - `llm_override` 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
              - …
            - `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` LLMUsageOutput
            - `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
        - `conversation_initiation_source` 'unknown' | 'android_sdk' | 'node_js_sdk' | 'react_native_sdk' | 'react_sdk' | 'js_sdk' | 'python_sdk' | 'widget' | 'sip_trunk' | 'twilio' | 'exotel' | 'genesys' | 'audiocodes' | 'swift_sdk' | 'whatsapp' | 'twilio_sms' | 'flutter_sdk' | 'zendesk_integration' | 'slack_integration' | 'telegram_integration' | 'intercom_integration' | 'freshdesk_integration' | 'salesforce_integration' | 'template_preview' | 'genesys_bot_connector' | 'subagent_tool' — Enum representing the possible sources for conversation initiation.
        - `type` 'llm'
        - `success_condition` string — A prompt that evaluates whether the agent's response is successful. Should return True or False.
        - `success_examples` AgentSuccessfulResponseExample[] — Non-empty list of example responses that should be considered successful
          - `response` string, required
          - `type` 'success', required
        - `failure_examples` AgentFailureResponseExample[] — Non-empty list of example responses that should be considered failures
          - `response` string, required
          - `type` 'failure', required
      - ToolCallUnitTestModel
        - `from_conversation_metadata` TestFromConversationMetadataOutput
          - `conversation_id` string, required
          - `agent_id` string, required
          - `branch_id` string, nullable
          - `workflow_node_id` string, nullable
          - `original_agent_reply` ConversationHistoryTranscriptCommonModelOutput[]
            - `role` 'user' | 'agent', required
            - `agent_metadata` AgentMetadata
              - …
            - `message` string, nullable
            - `multivoice_message` ConversationHistoryMultivoiceMessageModel — Represents a message from a multi-voice agent.
              - …
            - `tool_calls` ConversationHistoryTranscriptToolCallCommonModelOutput[]
              - …
            - `tool_results` union[]
              - …
            - `feedback` UserFeedback
              - …
            - `llm_override` string, nullable
            - `time_in_call_secs` integer, required
            - `conversation_turn_metrics` ConversationTurnMetrics
              - …
            - `rag_retrieval_info` RagRetrievalInfo
              - …
            - `llm_usage` LLMUsageOutput
              - …
            - `interrupted` boolean
            - `ignored_as_backchannel` boolean
            - `original_message` string, nullable
            - `reasoning` ConversationReasoningModel[]
              - …
            - `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[]
              - …
        - `dynamic_variables` object — Dynamic variables to replace in the agent config during testing
        - `chat_history` ConversationHistoryTranscriptCommonModelOutput[]
          - `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
              - …
          - `tool_calls` ConversationHistoryTranscriptToolCallCommonModelOutput[]
            - `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
              - …
          - `tool_results` union[]
            - union
              - …
          - `feedback` UserFeedback
            - `score` 'like' | 'dislike', required
            - `time_in_call_secs` integer, required
          - `llm_override` 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
              - …
            - `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` LLMUsageOutput
            - `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
        - `conversation_initiation_source` 'unknown' | 'android_sdk' | 'node_js_sdk' | 'react_native_sdk' | 'react_sdk' | 'js_sdk' | 'python_sdk' | 'widget' | 'sip_trunk' | 'twilio' | 'exotel' | 'genesys' | 'audiocodes' | 'swift_sdk' | 'whatsapp' | 'twilio_sms' | 'flutter_sdk' | 'zendesk_integration' | 'slack_integration' | 'telegram_integration' | 'intercom_integration' | 'freshdesk_integration' | 'salesforce_integration' | 'template_preview' | 'genesys_bot_connector' | 'subagent_tool' — Enum representing the possible sources for conversation initiation.
        - `type` 'tool'
        - `tool_call_parameters` UnitTestToolCallEvaluationModelOutput
          - `parameters` UnitTestToolCallParameter[] — Parameters to evaluate for the agent's tool call. If empty, the tool call parameters are not evaluated.
            - `eval` union, required
              - …
            - `path` string, required
          - `referenced_tool` ReferencedToolCommonModel — Reference to a tool for unit test evaluation.
            - `id` string, required — The ID of the tool
            - `type` 'system' | 'webhook' | 'client' | 'workflow' | 'api_integration_webhook' | 'mcp' | 'code', required — The type of the tool
          - `verify_absence` boolean — Whether to verify that the tool was NOT called.
          - `workflow_node_transition` UnitTestWorkflowNodeTransitionEvaluationNodeId
            - `type` 'node_id'
            - `agent_id` string, required — The ID of the agent whose workflow contains the target node.
            - `target_node_id` string, required — The ID of the workflow node that the agent should transition to.
        - `check_any_tool_matches` boolean, nullable — If set to True this test will pass if any tool call returned by the LLM matches the criteria. Otherwise it will fail if more than one tool is returned by the agent.
      - SimulationTestModel
        - `from_conversation_metadata` TestFromConversationMetadataOutput
          - `conversation_id` string, required
          - `agent_id` string, required
          - `branch_id` string, nullable
          - `workflow_node_id` string, nullable
          - `original_agent_reply` ConversationHistoryTranscriptCommonModelOutput[]
            - `role` 'user' | 'agent', required
            - `agent_metadata` AgentMetadata
              - …
            - `message` string, nullable
            - `multivoice_message` ConversationHistoryMultivoiceMessageModel — Represents a message from a multi-voice agent.
              - …
            - `tool_calls` ConversationHistoryTranscriptToolCallCommonModelOutput[]
              - …
            - `tool_results` union[]
              - …
            - `feedback` UserFeedback
              - …
            - `llm_override` string, nullable
            - `time_in_call_secs` integer, required
            - `conversation_turn_metrics` ConversationTurnMetrics
              - …
            - `rag_retrieval_info` RagRetrievalInfo
              - …
            - `llm_usage` LLMUsageOutput
              - …
            - `interrupted` boolean
            - `ignored_as_backchannel` boolean
            - `original_message` string, nullable
            - `reasoning` ConversationReasoningModel[]
              - …
            - `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[]
              - …
        - `dynamic_variables` object — Dynamic variables to replace in the agent config during testing
        - `chat_history` ConversationHistoryTranscriptCommonModelOutput[]
          - `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
              - …
          - `tool_calls` ConversationHistoryTranscriptToolCallCommonModelOutput[]
            - `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
              - …
          - `tool_results` union[]
            - union
              - …
          - `feedback` UserFeedback
            - `score` 'like' | 'dislike', required
            - `time_in_call_secs` integer, required
          - `llm_override` 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
              - …
            - `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` LLMUsageOutput
            - `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
        - `conversation_initiation_source` 'unknown' | 'android_sdk' | 'node_js_sdk' | 'react_native_sdk' | 'react_sdk' | 'js_sdk' | 'python_sdk' | 'widget' | 'sip_trunk' | 'twilio' | 'exotel' | 'genesys' | 'audiocodes' | 'swift_sdk' | 'whatsapp' | 'twilio_sms' | 'flutter_sdk' | 'zendesk_integration' | 'slack_integration' | 'telegram_integration' | 'intercom_integration' | 'freshdesk_integration' | 'salesforce_integration' | 'template_preview' | 'genesys_bot_connector' | 'subagent_tool' — Enum representing the possible sources for conversation initiation.
        - `type` 'simulation'
        - `success_condition` string, nullable — Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.
        - `success_conditions` string[] — List of prompts that evaluate whether the simulation was successful. If provided, all criteria are evaluated and merged into a final result. Capped at the maximum number of evaluation criteria.
        - `simulation_scenario` string — Description of the simulation scenario and user persona for simulation tests.
        - `simulation_max_turns` integer — Maximum number of conversation turns for simulation tests.
        - `simulation_environment` string, nullable — The environment to use when running this simulation test. If not provided, defaults to 'production'.
        - `tool_mock_config` SimulationToolMockBehaviorConfig — Simulation/preview-side config: tools are identified by IDs, resolved to names at runtime.
          - `mocking_strategy` 'all' | 'selected' | 'none'
          - `fallback_strategy` 'call_real_tool' | 'raise_error'
          - `mocked_tool_ids` string[] — Tool IDs to mock. Resolved to tool names before being passed to the orchestrator.
        - `tool_mock_overrides` object — Test-specific response mocks, keyed by tool ID. Applied ahead of the tool's shared mocks and only within this test. Only take effect for tools that are mocked (see tool_mock_config).
        - `evaluation_model` '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'
        - `simulated_user_model` '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'
    - `test_invocation_id` string, required
    - `agent_id` string, required
    - `branch_id` string, nullable
    - `workflow_node_id` string, nullable
    - `status` 'pending' | 'passed' | 'failed', required
    - `agent_responses` ConversationHistoryTranscriptCommonModelOutput[], nullable
      - `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` ConversationHistoryTranscriptToolCallCommonModelOutput[]
        - `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
          - ConversationHistoryTranscriptToolCallApiIntegrationWebhookDetailsOutput
            - `type` 'api_integration_webhook', required
            - `integration_id` string, required
            - `credential_id` string, required
            - `integration_connection_id` string, required
            - `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
          - ConversationHistoryTranscriptSystemToolResultCommonModelOutput
            - `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
              - …
          - ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelOutput
            - `request_id` string, required
            - `tool_name` string, required
            - `result_value` string, required
            - `is_error` boolean, required
            - `is_blocked` boolean, required
            - `tool_has_been_called` boolean, required
            - `tool_latency_secs` number, required
            - `error_type` string, required
            - `raw_error_message` string, required
            - `dynamic_variable_updates` DynamicVariableUpdateCommonModel[], required
              - …
            - `type` 'api_integration_webhook', required
            - `integration_id` string, required
            - `credential_id` string, required
            - `integration_connection_id` string, required
          - ConversationHistoryTranscriptWorkflowToolsResultCommonModelOutput
            - `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` WorkflowToolResponseModelOutput — A common model for workflow tool responses.
              - …
      - `feedback` UserFeedback
        - `score` 'like' | 'dislike', required
        - `time_in_call_secs` integer, required
      - `llm_override` 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` LLMUsageOutput
        - `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
    - `test_id` string, required
    - `test_name` string
    - `condition_result` TestConditionResultCommonModel
      - `result` 'success' | 'failure' | 'unknown', required
      - `rationale` TestConditionRationaleCommonModel — Structured rationale for test condition results containing individual failure/success reasons.
        - `messages` string[] — List of individual parameter evaluation messages or reasons
        - `summary` string — High-level summary of the evaluation result
    - `last_updated_at_unix` integer
    - `metadata` TestRunMetadata
      - `workspace_id` string, required
      - `test_name` string, required
      - `ran_by_user_email` string, required
      - `test_type` 'llm' | 'tool_call' | 'simulation'
    - `root_folder_id` string, nullable
    - `root_folder_name` string, nullable
    - `environment` string, nullable

## 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/57d56f34628a/schema)
