> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Obtener invocación de prueba

GET https://api.elevenlabs.io/v1/convai/test-invocations/{test_invocation_id}

Obtiene una ejecución de prueba por ID.

Reference: https://elevenlabs.io/docs/eleven-agents/api-reference/tests/test-invocations/get

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Request

### Path parameters

- `test_invocation_id` (string, required) — El ID de una ejecución de prueba. Se devuelve al ejecutar las pruebas.

## Response

### 200

Respuesta correcta.

- `id` (string, required)
- `test_runs` (list of UnitTestRunResponseModel, required)
- `agent_id` (string, optional)
- `branch_id` (string, optional)
- `version_id` (string, optional)
- `ran_against_draft` (boolean, optional, default: false)
- `created_at` (integer, optional)
- `folder_id` (string, optional)
- `repeat_count` (integer, optional, default: 1)
- `cancelled` (boolean, optional, default: false)
- `bucketing_status` (enum, optional) — None cuando repeat_count==1 (sin agrupación). De lo contrario, realiza un seguimiento del ciclo de vida de la agrupación.
  - Allowed values: `pending`, `completed`, `failed`
- `result_groups` (list of TestRunResultSummary, optional)

## Errors

### 422 Invocations Get Request Unprocessable Entity Error

Error de validación

- `detail` (list of ValidationError, optional)

## Types

### UnitTestRunResponseModel

- `test_run_id` (string, required)
- `test_invocation_id` (string, required)
- `agent_id` (string, required)
- `status` (enum, required)
  - Allowed values: `pending`, `passed`, `failed`, `cancelled`
- `test_id` (string, required)
- `test_info` (UnitTestRunResponseModelTestInfo, optional)
- `branch_id` (string, optional)
- `version_id` (string, optional)
- `ran_against_draft` (boolean, optional, default: false)
- `workflow_node_id` (string, optional)
- `agent_responses` (list of ConversationHistoryTranscriptCommonModelOutput, optional)
- `test_name` (string, optional, default: Unknown Test)
- `condition_result` (TestConditionResultCommonModel, optional)
- `last_updated_at_unix` (integer, optional)
- `metadata` (TestRunMetadata, optional)
- `root_folder_id` (string, optional)
- `root_folder_name` (string, optional)
- `environment` (string, optional)
- `credits_used` (integer, optional) — Créditos facturados por esta ejecución de prueba. None para las ejecuciones creadas antes del seguimiento de costes.
- `charging` (ConversationChargingCommonModel, optional) — Desglose final de facturación y uso del proveedor para esta ejecución de prueba.

### TestRunResultSummary

- `test_id` (string, required)
- `test_name` (string, required)
- `buckets` (list of TestRunResultBucket, required)
- `workflow_node_id` (string, optional)

### ValidationError

- `loc` (list of ValidationErrorLocItem, required)
- `msg` (string, required)
- `type` (string, required)

### UnitTestRunResponseModelTestInfo

- `type`: `llm`
  - `chat_history` (list of ConversationHistoryTranscriptCommonModelOutput, optional)
  - `conversation_initiation_source` (enum, optional, default: unknown) — Simula la prueba como si la conversación se hubiera originado en este canal.
    - Allowed values: `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`
  - `dynamic_variables` (map from string to any, optional) — Variables dinámicas que se sustituirán en la configuración del agente durante las pruebas
  - `environment` (string, optional) — El entorno con el que se resolverán los valores de variables específicos del entorno al ejecutar esta prueba (URL, encabezados, conexiones de autenticación). Si no se proporciona, el valor predeterminado es 'production'. En las pruebas de simulación, simulation_environment tiene prioridad si se establece.
  - `failure_examples` (list of AgentFailureResponseExample, optional) — Lista no vacía de respuestas de ejemplo que deben considerarse fallos
  - `from_conversation_metadata` (TestFromConversationMetadataOutput, optional) — Metadatos de la conversación a partir de la que se creó esta prueba, si corresponde.
  - `success_condition` (string, optional, default: ) — Un prompt que evalúa si la respuesta del agente es satisfactoria. Debe devolver True o False.
  - `success_examples` (list of AgentSuccessfulResponseExample, optional) — Lista no vacía de respuestas de ejemplo que deben considerarse correctas
- `type`: `simulation`
  - `chat_history` (list of ConversationHistoryTranscriptCommonModelOutput, optional)
  - `conversation_initiation_source` (enum, optional, default: unknown) — Simula la prueba como si la conversación se hubiera originado en este canal.
    - Allowed values: `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`
  - `dynamic_variables` (map from string to any, optional) — Variables dinámicas que se sustituirán en la configuración del agente durante las pruebas
  - `environment` (string, optional) — El entorno con el que se resolverán los valores de variables específicos del entorno al ejecutar esta prueba (URL, encabezados, conexiones de autenticación). Si no se proporciona, el valor predeterminado es 'production'. En las pruebas de simulación, simulation_environment tiene prioridad si se establece.
  - `evaluation_model` (enum, optional) — Modelo LLM que utilizar para evaluar los resultados de la simulación.
    - Allowed values: `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-6-astra`, `gpt-6-sol`, `gpt-6-luna`, `gpt-6.1-sol`, `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`, `gemini-3.8-flash`, `gemini-4-argon`, `claude-sonnet-4-5`, `claude-opus-4-6`, `claude-opus-4-7`, `claude-opus-4-8`, `claude-opus-5`, `claude-opus-5-5`, `claude-sonnet-4-6`, `claude-sonnet-5`, `claude-sonnet-5-5`, `claude-sonnet-4`, `claude-haiku-4-5`, `claude-haiku-5-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`, `glm-52`, `deepseek-v41-flash`, `nemotron-35-super-vl-nvfp4`, `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`
  - `from_conversation_metadata` (TestFromConversationMetadataOutput, optional) — Metadatos de la conversación a partir de la que se creó esta prueba, si corresponde.
  - `simulated_user_model` (enum, optional) — Modelo LLM para el usuario simulado.
    - Allowed values: `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-6-astra`, `gpt-6-sol`, `gpt-6-luna`, `gpt-6.1-sol`, `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`, `gemini-3.8-flash`, `gemini-4-argon`, `claude-sonnet-4-5`, `claude-opus-4-6`, `claude-opus-4-7`, `claude-opus-4-8`, `claude-opus-5`, `claude-opus-5-5`, `claude-sonnet-4-6`, `claude-sonnet-5`, `claude-sonnet-5-5`, `claude-sonnet-4`, `claude-haiku-4-5`, `claude-haiku-5-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`, `glm-52`, `deepseek-v41-flash`, `nemotron-35-super-vl-nvfp4`, `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`
  - `simulation_environment` (string, optional) — El entorno que se utilizará al ejecutar esta prueba de simulación. Si no se proporciona, el valor predeterminado es 'production'.
  - `simulation_max_turns` (integer, optional, default: 5) — Número máximo de turnos de conversación para las pruebas de simulación.
  - `simulation_scenario` (string, optional, default: ) — Descripción del escenario de simulación y del perfil de usuario para las pruebas de simulación.
  - `success_conditions` (list of string, optional) — Lista de prompts que evalúan si la simulación se ha realizado correctamente. Si se proporcionan, se evalúan todos los criterios y se combinan en un resultado final. Limitada al número máximo de criterios de evaluación.
  - `tool_mock_config` (SimulationToolMockBehaviorConfig, optional) — Configuración de las herramientas que simular y del comportamiento alternativo.
  - `tool_mock_overrides` (map from string to list of ToolResponseMockConfigOutput, optional) — Simulaciones de respuesta específicas de la prueba, indexadas por ID de herramienta. Se aplican antes que las simulaciones compartidas de la herramienta y solo dentro de esta prueba. Solo tienen efecto para herramientas simuladas (consulta tool_mock_config).
  - `success_condition` (string, optional, deprecated) — Criterio único de éxito heredado y obsoleto. Usa success_conditions en su lugar. Se requiere al menos uno de success_condition o success_conditions.
- `type`: `tool`
  - `chat_history` (list of ConversationHistoryTranscriptCommonModelOutput, optional)
  - `check_any_tool_matches` (boolean, optional) — Si se establece en True, esta prueba se superará si alguna llamada a herramienta devuelta por el LLM cumple los criterios. De lo contrario, fallará si el agente devuelve más de una herramienta.
  - `conversation_initiation_source` (enum, optional, default: unknown) — Simula la prueba como si la conversación se hubiera originado en este canal.
    - Allowed values: `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`
  - `dynamic_variables` (map from string to any, optional) — Variables dinámicas que se sustituirán en la configuración del agente durante las pruebas
  - `environment` (string, optional) — El entorno con el que se resolverán los valores de variables específicos del entorno al ejecutar esta prueba (URL, encabezados, conexiones de autenticación). Si no se proporciona, el valor predeterminado es 'production'. En las pruebas de simulación, simulation_environment tiene prioridad si se establece.
  - `from_conversation_metadata` (TestFromConversationMetadataOutput, optional) — Metadatos de la conversación a partir de la que se creó esta prueba, si corresponde.
  - `tool_call_parameters` (UnitTestToolCallEvaluationModelOutput, optional) — Cómo evaluar la llamada a la herramienta del agente, si la hay. Si está vacío, la llamada a la herramienta no se evalúa.

### ConversationHistoryTranscriptCommonModelOutput

- `role` (enum, required)
  - Allowed values: `user`, `agent`
- `time_in_call_secs` (integer, required)
- `agent_metadata` (AgentMetadata, optional)
- `message` (string, optional)
- `multivoice_message` (ConversationHistoryMultivoiceMessageModel, optional) — Representa un mensaje de un agente con varias voces.
- `tool_calls` (list of ConversationHistoryTranscriptToolCallCommonModelOutput, optional)
- `tool_results` (list of ConversationHistoryTranscriptCommonModelOutputToolResultsItem, optional)
- `feedback` (UserFeedback, optional)
- `llm_override` (string, optional)
- `producing_llm` (string, optional)
- `conversation_turn_metrics` (ConversationTurnMetrics, optional)
- `rag_retrieval_info` (RagRetrievalInfo, optional)
- `llm_usage` (LlmUsageOutput, optional)
- `interrupted` (boolean, optional, default: false)
- `ignored_as_backchannel` (boolean, optional, default: false)
- `platform_event` (enum, optional)
  - Allowed values: `user_turn_timeout`, `skip_turn_wait_elapsed`
- `original_message` (string, optional)
- `reasoning` (list of ConversationReasoningModel, optional)
- `source_medium` (enum, optional)
  - Allowed values: `audio`, `dtmf`, `text`, `image`, `file`
- `source_event_id` (integer, optional)
- `used_static_kb_document_ids` (list of string, optional)
- `user_identifier` (string, optional)
- `id` (string, optional)
- `triggered_guardrails` (list of TriggeredGuardrailCommonModel, optional)

### TestConditionResultCommonModel

- `result` (enum, required)
  - Allowed values: `success`, `failure`, `unknown`
- `rationale` (TestConditionRationaleCommonModel, optional) — Justificación estructurada de los resultados de las condiciones de prueba que contiene los motivos individuales de fallo o éxito.

### TestRunMetadata

- `workspace_id` (string, required)
- `test_name` (string, required)
- `ran_by_user_email` (string, required)
- `test_type` (enum, optional, default: llm)
  - Allowed values: `llm`, `tool_call`, `simulation`

### ConversationChargingCommonModel

- `dev_discount` (boolean, optional, default: false)
- `is_burst` (boolean, optional, default: false)
- `tier` (string, optional)
- `llm_usage` (LlmCategoryUsage, optional)
- `llm_price` (double, optional)
- `llm_charge` (integer, optional)
- `call_charge` (integer, optional)
- `platform_charge` (integer, optional)
- `platform_usage` (PlatformUsage, optional) — Desglose por categoría de ``platform_charge`` (el equivalente de ``llm_usage``).
- `platform_price` (double, optional)
- `free_minutes_consumed` (double, optional, default: 0)
- `free_llm_dollars_consumed` (double, optional, default: 0)
- `tts_usage` (ConversationTtsUsageModel, optional) — Uso agregado de TTS para una conversación (solo analítica, no facturación).
- `asr_usage` (ConversationAsrUsageModel, optional) — Uso agregado de ASR para una conversación (solo analítica, no facturación).
- `analysis` (AnalysisCharging, optional) — Coste de ejecutar el análisis posterior a la llamada en esta conversación. Está presente una vez que se ha ejecutado un análisis, se haya facturado o no.

### TestRunResultBucket

- `test_run_ids` (list of string, required)
- `title` (string, required) — Título breve de una línea para este grupo
- `reason` (string, required) — Resumen breve de por qué las ejecuciones de prueba de este grupo se aprobaron o fallaron
- `status` (enum, required)
  - Allowed values: `pending`, `passed`, `failed`, `cancelled`

### ValidationErrorLocItem

### AgentFailureResponseExample

- `response` (string, required)
- `type` ("failure", required)

### TestFromConversationMetadataOutput

- `conversation_id` (string, required)
- `agent_id` (string, required)
- `branch_id` (string, optional)
- `workflow_node_id` (string, optional)
- `original_agent_reply` (list of ConversationHistoryTranscriptCommonModelOutput, optional, default: [])

### AgentSuccessfulResponseExample

- `response` (string, required)
- `type` ("success", required)

### SimulationToolMockBehaviorConfig

Configuración del lado de la simulación/vista previa: las herramientas se identifican mediante ID y se resuelven a nombres en tiempo de ejecución.

- `mocking_strategy` (enum, optional, default: none) — Qué herramientas simular: 'all' simula todas las herramientas que se pueden simular; 'selected' simula solo las incluidas en mocked_tool_names/mocked_tool_ids; 'none' desactiva la simulación.
  - Allowed values: `all`, `selected`, `none`
- `fallback_strategy` (enum, optional, default: raise_error) — Comportamiento cuando ninguna simulación coincide con una llamada a una herramienta.
  - Allowed values: `call_real_tool`, `raise_error`
- `mocked_tool_ids` (list of string, optional) — ID de herramientas que se van a simular. Se resuelven como nombres de herramientas antes de pasarlos al orquestador.

### ToolResponseMockConfigOutput

- `mock_result` (string, required) — El valor de retorno que ve el LLM cuando esta simulación está activa.
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — Si la lista está vacía, el mock se activará siempre.
- `is_error` (boolean, optional, default: false) — Si es true, el resultado del mock se presenta al LLM como un error de herramienta en lugar de como un resultado correcto.

### UnitTestToolCallEvaluationModelOutput

- `parameters` (list of UnitTestToolCallParameter, optional) — Parámetros que evaluar para la llamada a herramienta del agente. Si está vacío, los parámetros de la llamada a herramienta no se evalúan.
- `referenced_tool` (ReferencedToolCommonModel, optional) — La herramienta con la que evaluar una llamada.
- `verify_absence` (boolean, optional, default: false) — Si se verifica que la herramienta NO se ha llamado.
- `workflow_node_transition` (UnitTestWorkflowNodeTransitionEvaluationNodeId, optional) — Configuración para probar transiciones entre nodos del workflow. Cuando se establece, la prueba verificará que el agente pase al nodo del workflow especificado.

### AgentMetadata

- `agent_id` (string, required)
- `branch_id` (string, optional)
- `workflow_node_id` (string, optional)
- `version_id` (string, optional)

### ConversationHistoryMultivoiceMessageModel

Representa un mensaje de un agente con varias voces.

- `parts` (list of ConversationHistoryMultivoiceMessagePartModel, required)

### ConversationHistoryTranscriptToolCallCommonModelOutput

- `request_id` (string, required)
- `tool_name` (string, required)
- `params_as_json` (string, required)
- `tool_has_been_called` (boolean, required)
- `type` (enum, optional)
  - Allowed values: `system`, `webhook`, `client`, `mcp`, `workflow`, `api_integration_webhook`, `api_integration_mcp`, `smb`
- `tool_id` (string, optional) — ID de la herramienta llamada. No se establece para herramientas sin ID, como las herramientas del sistema.
- `tool_details` (ConversationHistoryTranscriptToolCallCommonModelOutputToolDetails, optional)

### ConversationHistoryTranscriptCommonModelOutputToolResultsItem

### UserFeedback

- `score` (enum, required)
  - Allowed values: `like`, `dislike`
- `time_in_call_secs` (integer, required)

### ConversationTurnMetrics

- `metrics` (map from string to MetricRecord, optional)
- `convai_asr_provider` (string, optional)
- `convai_tts_model` (string, optional)
- `convai_tts_cascade` (string, optional)
- `voice_id` (string, optional)

### RagRetrievalInfo

- `chunks` (list of RagChunkMetadata, required)
- `embedding_model` (enum, required, default: e5_mistral_7b_instruct)
  - Allowed values: `e5_mistral_7b_instruct`, `multilingual_e5_large_instruct`
- `retrieval_query` (string, required)
- `rag_latency_secs` (double, required)
- `used_chunk_ids` (list of string, optional)

### LlmUsageOutput

- `model_usage` (map from string to LlmInputOutputTokensUsage, optional)

### ConversationReasoningModel

- `summary` (string, optional)
- `provider_redact` (boolean, optional, default: false)

### TriggeredGuardrailCommonModel

- `guardrail_type` (enum, required)
  - Allowed values: `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`
- `guardrail_name` (string, optional)

### TestConditionRationaleCommonModel

Justificación estructurada de los resultados de las condiciones de prueba que contiene los motivos individuales de fallo o éxito.

- `messages` (list of string, optional) — Lista de mensajes o motivos de evaluación de parámetros individuales
- `summary` (string, optional, default: ) — Resumen general del resultado de la evaluación.

### LlmCategoryUsage

- `irreversible_generation` (LlmUsageOutput, optional)
- `initiated_generation` (LlmUsageOutput, optional)

### PlatformUsage

Desglose por categoría de ``platform_charge`` (el equivalente de ``llm_usage``).

- `category_usage` (map from string to PlatformCategoryUsage, optional)

### ConversationTtsUsageModel

Uso agregado de TTS para una conversación (solo analítica, no facturación).

- `primary_tts_model` (string, optional)
- `total_audio_output_seconds` (double, optional, default: 0)
- `total_characters` (integer, optional, default: 0)
- `per_voice_usage` (list of ConversationVoiceUsageModel, optional)

### ConversationAsrUsageModel

Uso agregado de ASR para una conversación (solo analítica, no facturación).

- `asr_model` (string, optional)
- `total_transcription_calls` (integer, optional, default: 0)
- `total_audio_input_seconds` (double, optional, default: 0)

### AnalysisCharging

Coste de ejecutar el análisis posterior a la llamada en esta conversación. Está presente una vez que se ha ejecutado un análisis, se haya facturado o no.

- `total` (AnalysisRunningTotal, required) — Coste acumulado del LLM por ejecutar el análisis posterior a la llamada en esta conversación.
- `last_run` (AnalysisRunSnapshot, required) — Coste de LLM del análisis posterior a la llamada más reciente de esta conversación.

### UnitTestToolCallParameter

- `eval` (UnitTestToolCallParameterEval, required)
- `path` (string, required)

### ReferencedToolCommonModel

Referencia a una herramienta para la evaluación de pruebas unitarias.

- `id` (string, required) — El ID de la herramienta
- `type` (enum, required) — El tipo de herramienta
  - Allowed values: `system`, `webhook`, `client`, `workflow`, `api_integration_webhook`, `mcp`, `code`

### UnitTestWorkflowNodeTransitionEvaluationNodeId

- `agent_id` (string, required) — El ID del agente cuyo workflow contiene el nodo de destino.
- `target_node_id` (string, required) — El ID del nodo del workflow al que debe pasar el agente.
- `type` ("node_id", optional)

### ConversationHistoryMultivoiceMessagePartModel

Representa una parte de voz individual de un mensaje con varias voces.

- `text` (string, required)
- `voice_label` (string, optional)
- `time_in_call_secs` (integer, optional)

### ConversationHistoryTranscriptToolCallCommonModelOutputToolDetails

- `type`: `api_integration_webhook`
  - `credential_id` (string, required, default: )
  - `integration_connection_id` (string, required, default: )
  - `integration_id` (string, required, default: )
  - `webhook_details` (ConversationHistoryTranscriptToolCallWebhookDetails, required)
- `type`: `client`
  - `parameters` (string, required)
- `type`: `mcp`
  - `approval_policy` (string, required)
  - `integration_type` (string, required)
  - `mcp_server_id` (string, required)
  - `mcp_server_name` (string, required)
  - `mcp_tool_description` (string, optional, default: )
  - `mcp_tool_name` (string, optional, default: )
  - `parameters` (map from string to string, optional)
  - `requires_approval` (boolean, optional, default: false)
- `type`: `webhook`
  - `method` (string, required)
  - `url` (string, required)
  - `body` (string, optional)
  - `headers` (map from string to string, optional)
  - `path_params` (map from string to string, optional)
  - `query_params` (map from string to string, optional)

### ConversationHistoryTranscriptOtherToolsResultCommonModel

- `request_id` (string, required)
- `tool_name` (string, required)
- `result_value` (string, required)
- `is_error` (boolean, required)
- `tool_has_been_called` (boolean, required)
- `is_blocked` (boolean, optional, default: false)
- `tool_latency_secs` (double, optional, default: 0)
- `error_type` (string, optional, default: )
- `raw_error_message` (string, optional, default: )
- `dynamic_variable_updates` (list of DynamicVariableUpdateCommonModel, optional)
- `type` (enum, optional)
  - Allowed values: `client`, `webhook`, `mcp`, `code`

### ConversationHistoryTranscriptSystemToolResultCommonModelOutput

- `request_id` (string, required)
- `tool_name` (string, required)
- `result_value` (string, required)
- `is_error` (boolean, required)
- `tool_has_been_called` (boolean, required)
- `type` ("system", required)
- `is_blocked` (boolean, optional, default: false)
- `tool_latency_secs` (double, optional, default: 0)
- `error_type` (string, optional, default: )
- `raw_error_message` (string, optional, default: )
- `dynamic_variable_updates` (list of DynamicVariableUpdateCommonModel, optional)
- `result` (ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult, optional)

### ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelOutput

- `request_id` (string, required)
- `tool_name` (string, required)
- `result_value` (string, required)
- `is_error` (boolean, required)
- `is_blocked` (boolean, required, default: false)
- `tool_has_been_called` (boolean, required)
- `tool_latency_secs` (double, required, default: 0)
- `error_type` (string, required, default: )
- `raw_error_message` (string, required, default: )
- `dynamic_variable_updates` (list of DynamicVariableUpdateCommonModel, required)
- `type` ("api_integration_webhook", required)
- `integration_id` (string, required, default: )
- `credential_id` (string, required, default: )
- `integration_connection_id` (string, required, default: )

### ConversationHistoryTranscriptWorkflowToolsResultCommonModelOutput

- `request_id` (string, required)
- `tool_name` (string, required)
- `result_value` (string, required)
- `is_error` (boolean, required)
- `tool_has_been_called` (boolean, required)
- `type` ("workflow", required)
- `is_blocked` (boolean, optional, default: false)
- `tool_latency_secs` (double, optional, default: 0)
- `error_type` (string, optional, default: )
- `raw_error_message` (string, optional, default: )
- `dynamic_variable_updates` (list of DynamicVariableUpdateCommonModel, optional)
- `result` (WorkflowToolResponseModelOutput, optional) — Un modelo común para las respuestas de herramientas de workflow.

### MetricRecord

- `elapsed_time` (double, required)

### RagChunkMetadata

- `document_id` (string, required)
- `chunk_id` (string, required)
- `vector_distance` (double, required)

### LlmInputOutputTokensUsage

- `input` (LlmTokensCategoryUsage, optional)
- `input_cache_read` (LlmTokensCategoryUsage, optional)
- `input_cache_write` (LlmTokensCategoryUsage, optional)
- `output_total` (LlmTokensCategoryUsage, optional)

### PlatformCategoryUsage

Cargo acumulado para una única :class:`PlatformCategory`.

- `credits` (integer, optional, default: 0)
- `price` (double, optional, default: 0)
- `quantity` (double, optional, default: 0)

### ConversationVoiceUsageModel

- `voice_id` (string, required)
- `audio_output_seconds` (double, optional, default: 0)

### AnalysisRunningTotal

Coste acumulado del LLM por ejecutar el análisis posterior a la llamada en esta conversación.

- `price` (double, optional, default: 0)
- `charge` (integer, optional, default: 0)
- `runs` (integer, optional, default: 0)
- `price_per_feature` (map from string to double, optional)
- `charge_per_feature` (map from string to integer, optional)

### AnalysisRunSnapshot

Coste de LLM del análisis posterior a la llamada más reciente de esta conversación.

- `price` (double, optional, default: 0)
- `charge` (integer, optional, default: 0)
- `price_per_feature` (map from string to double, optional)
- `charge_per_feature` (map from string to integer, optional)

### UnitTestToolCallParameterEval

- `type`: `anything`
- `type`: `exact`
  - `expected_value` (string, required) — El valor de cadena exacto con el que debe coincidir el parámetro.
- `type`: `llm`
  - `description` (string, required) — Una descripción de la estrategia de evaluación que se utilizará para la prueba.
- `type`: `regex`
  - `pattern` (string, required) — Un patrón regex con el que comparar la respuesta del agente.

### ConversationHistoryTranscriptToolCallWebhookDetails

- `method` (string, required)
- `url` (string, required)
- `type` ("webhook", optional)
- `headers` (map from string to string, optional)
- `path_params` (map from string to string, optional)
- `query_params` (map from string to string, optional)
- `body` (string, optional)

### DynamicVariableUpdateCommonModel

Registra una actualización de variable dinámica ocurrida durante la ejecución de una herramienta.

- `variable_name` (string, required)
- `new_value` (string, required)
- `updated_at` (double, required)
- `tool_name` (string, required)
- `tool_request_id` (string, required)
- `old_value` (string, optional)

### ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult

- `result_type`: `dummy`
- `result_type`: `end_call_success`
  - `message` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `end_procedure_error`
  - `message` (string, required)
  - `status` (enum, required)
    - Allowed values: `not_found`, `invalid_id`
  - `procedure_id` (string, optional)
- `result_type`: `end_procedure_success`
  - `procedure_id` (string, required)
  - `procedure_name` (string, required)
  - `message` (string, optional, default: )
  - `status` ("success", optional)
- `result_type`: `knowledge_base_rag_success`
  - `chunk_count` (integer, optional, default: 0) — Número de fragmentos relevantes recuperados
  - `chunks` (list of KnowledgeBaseRagChunkModel, optional) — Fragmentos recuperados; se rellenan solo en el modo rag-result-in-tool-result
  - `message` (string, optional, default: Referenced knowledge base.) — Estado legible para humanos para el LLM sobre los resultados de búsqueda
  - `status` (enum, optional, default: success)
    - Allowed values: `success`, `no_documents`, `no_results`
- `result_type`: `knowledge_base_success`
  - `chunk_count` (integer, optional, default: 0)
  - `message` (string, optional, default: Referenced knowledge base.)
  - `status` (enum, optional, default: success)
    - Allowed values: `success`, `no_matching_documents`, `no_results`
- `result_type`: `language_detection_success`
  - `language` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `play_dtmf_error`
  - `error` (string, required)
  - `details` (string, optional)
  - `status` ("error", optional)
- `result_type`: `play_dtmf_success`
  - `dtmf_tones` (string, required)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `skip_turn_success`
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `start_procedure_error`
  - `message` (string, required)
  - `status` (enum, required)
    - Allowed values: `not_found`, `invalid_name`, `already_active`
  - `procedure_id` (string, optional)
- `result_type`: `start_procedure_success`
  - `procedure_id` (string, required)
  - `procedure_name` (string, required)
  - `message` (string, optional, default: Procedure is now started. Follow its instructions from the <active-procedures> section of your system prompt.)
  - `procedure_entry_workflow_node` (string, optional)
  - `procedure_return_workflow_node` (string, optional)
  - `status` ("success", optional)
- `result_type`: `testing_tool_result`
  - `reason` (string, optional, default: Skipping tool call in test mode)
  - `status` ("success", optional)
- `result_type`: `transfer_to_agent_error`
  - `error` (string, required)
  - `from_agent` (string, required)
  - `status` ("error", optional)
- `result_type`: `transfer_to_agent_success`
  - `condition` (string, required)
  - `from_agent` (string, required)
  - `to_agent` (string, required)
  - `branch_info` (TransferToAgentToolResultSuccessModelOutputBranchInfo, optional)
  - `delay_ms` (integer, optional, default: 0)
  - `enable_transferred_agent_first_message` (boolean, optional, default: false)
  - `preserve_client_tts_overrides` (boolean, optional, default: false)
  - `preserve_voice_settings` (boolean, optional, default: false)
  - `status` ("success", optional)
  - `to_node` (string, optional)
  - `transfer_message` (string, optional)
- `result_type`: `transfer_to_number_amazon_connect_success`
  - `client_message` (string, optional) — Mensaje que se comunica a quien llama antes de devolver la sesión a Amazon Connect.
  - `note` (string, optional) — Se establece cuando el agente repite una opción no válida y se utiliza la única configurada.
  - `reason` (string, optional) — Motivo por el que el agente escaló el caso, enviado a Amazon Connect con el resultado Escalate.
  - `status` ("success", optional)
- `result_type`: `transfer_to_number_error`
  - `error` (string, required)
  - `details` (string, optional)
  - `status` ("error", optional)
- `result_type`: `transfer_to_number_exotel_success`
  - `transfer_number` (string, required)
  - `agent_message` (string, optional)
  - `note` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `transfer_to_number_sip_success`
  - `transfer_number` (string, required)
  - `note` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `transfer_to_number_twilio_success`
  - `agent_message` (string, required)
  - `conference_name` (string, required)
  - `transfer_number` (string, required)
  - `client_message` (string, optional)
  - `note` (string, optional)
  - `post_dial_digits` (string, optional)
  - `reason` (string, optional)
  - `status` ("success", optional)
- `result_type`: `voicemail_detection_success`
  - `reason` (string, optional)
  - `status` ("success", optional)
  - `voicemail_message` (string, optional)

### WorkflowToolResponseModelOutput

Un modelo común para las respuestas de herramientas de workflow.

- `steps` (list of WorkflowToolResponseModelOutputStepsItem, optional)

### LlmTokensCategoryUsage

- `tokens` (integer, optional, default: 0)
- `price` (double, optional, default: 0)

### KnowledgeBaseRagChunkModel

- `chunk_id` (string, required)
- `document_id` (string, required)
- `content` (string, required)

### TransferToAgentToolResultSuccessModelOutputBranchInfo

- `branch_reason`: `configured`
  - `branch_id` (string, required)
- `branch_reason`: `defaulting_to_main`
  - `branch_id` (string, required)
- `branch_reason`: `traffic_split`
  - `branch_id` (string, required)
  - `traffic_percentage` (double, required)

### WorkflowToolResponseModelOutputStepsItem

- `type`: `edge`
  - `edge_id` (string, required)
  - `step_latency_secs` (double, required)
  - `target_node_id` (string, required)
- `type`: `max_iterations_exceeded`
  - `max_iterations` (integer, required)
  - `step_latency_secs` (double, required)
- `type`: `nested_tools`
  - `is_successful` (boolean, required)
  - `node_id` (string, required)
  - `requests` (list of ConversationHistoryTranscriptToolCallCommonModelOutput, required)
  - `results` (list of WorkflowToolNestedToolsStepModelOutputResultsItem, required)
  - `step_latency_secs` (double, required)

### WorkflowToolNestedToolsStepModelOutputResultsItem

## Examples

**Response**

```json
{
  "id": "id",
  "test_runs": [
    {
      "test_run_id": "test_run_id",
      "test_invocation_id": "test_invocation_id",
      "agent_id": "agent_id",
      "status": "pending",
      "test_id": "test_id",
      "test_info": {
        "type": "llm"
      },
      "branch_id": "branch_id",
      "version_id": "version_id",
      "ran_against_draft": true,
      "workflow_node_id": "workflow_node_id",
      "agent_responses": [
        {
          "role": "user",
          "time_in_call_secs": 1
        }
      ],
      "test_name": "test_name",
      "condition_result": {
        "result": "success"
      },
      "last_updated_at_unix": 1,
      "metadata": {
        "workspace_id": "workspace_id",
        "test_name": "test_name",
        "ran_by_user_email": "ran_by_user_email"
      },
      "root_folder_id": "root_folder_id",
      "root_folder_name": "root_folder_name",
      "environment": "environment",
      "credits_used": 1
    }
  ],
  "agent_id": "agent_id",
  "branch_id": "branch_id",
  "version_id": "version_id",
  "ran_against_draft": true,
  "created_at": 1,
  "folder_id": "folder_id",
  "repeat_count": 1,
  "cancelled": true,
  "bucketing_status": "pending",
  "result_groups": [
    {
      "test_id": "test_id",
      "test_name": "test_name",
      "buckets": [
        {
          "test_run_ids": [
            "test_run_ids"
          ],
          "title": "title",
          "reason": "reason",
          "status": "pending"
        }
      ],
      "workflow_node_id": "workflow_node_id"
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/test-invocations/test_invocation_id"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/test-invocations/test_invocation_id';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/convai/test-invocations/test_invocation_id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/convai/test-invocations/test_invocation_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.elevenlabs.io/v1/convai/test-invocations/test_invocation_id")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.elevenlabs.io/v1/convai/test-invocations/test_invocation_id');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/test-invocations/test_invocation_id");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/convai/test-invocations/test_invocation_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```