---
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
            - `producing_llm` 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' | 'dtmf' | '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
          - `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
              - …
            - `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' | 'dtmf' | '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' | 'avaya' | '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.
        - `environment` string, nullable — The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set.
        - `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
            - `producing_llm` 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' | 'dtmf' | '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
          - `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
              - …
            - `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' | 'dtmf' | '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' | 'avaya' | '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.
        - `environment` string, nullable — The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set.
        - `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
            - `producing_llm` 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' | 'dtmf' | '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
          - `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
              - …
            - `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' | 'dtmf' | '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' | 'avaya' | '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.
        - `environment` string, nullable — The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set.
        - `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' | 'gemini-3.6-flash' | 'gemini-3.7-flash' | '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' | 'gemini-3.6-flash' | 'gemini-3.7-flash' | '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
      - `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` 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' | 'dtmf' | '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

## Changes

- **2026-08-27** `f366bca2ae3c` — 7 warning
  - added the new `dtmf` enum value to the `test_runs/items/agent_responses/anyOf[subschema #1]/items/source_medium/anyOf[subschema #1: ChatSourceMedium]/` response property for the response status `200`
  - added the new `dtmf` enum value to the `test_runs/items/test_info/anyOf[subschema #1]/oneOf[subschema #1: ResponseUnitTestModel]/chat_history/items/source_medium/anyOf[subschema #1: ChatSourceMedium]/` response property for the response status `200`
  - added the new `dtmf` enum value to the `test_runs/items/test_info/anyOf[subschema #1]/oneOf[subschema #1: ResponseUnitTestModel]/from_conversation_metadata/anyOf[subschema #1: TestFromConversationMetadata]/original_agent_reply/items/source_medium/anyOf[subschema #1: ChatSourceMedium]/` response property for the response status `200`
  - added the new `dtmf` enum value to the `test_runs/items/test_info/anyOf[subschema #1]/oneOf[subschema #2: ToolCallUnitTestModel]/chat_history/items/source_medium/anyOf[subschema #1: ChatSourceMedium]/` response property for the response status `200`
  - …3 more
- …earlier changes not shown

[Full history](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/changes/v1/convai/test-invocations/:test_invocation_id/get.md)

---

[API](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation.md) · [All operations](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/elevenlabs/elevenlabs-api-documentation/revisions/630c650dda66/schema)
