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

# Obter ferramenta

GET https://api.elevenlabs.io/v1/convai/tools/{tool_id}

Obtém uma ferramenta disponível no espaço de trabalho.

Reference: https://elevenlabs.io/docs/api-reference/tools/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

- `tool_id` (string, required) — ID da ferramenta solicitada.

### Query parameters

- `environment` (string, optional, default: production) — Ambiente cujos valores são usados quando a URL do servidor MCP, os cabeçalhos ou a conexão de autenticação fazem referência a variáveis de ambiente. Corresponde ao ambiente em que uma conversa seria executada; o padrão é production.

## Response

### 200

Resposta bem-sucedida

- `id` (string, required)
- `tool_config` (ToolResponseModelToolConfig, required) — O tipo de ferramenta
- `access_info` (ResourceAccessInfo, required)
- `usage_stats` (ToolUsageStatsResponseModel, required)
- `response_mocks` (list of ToolResponseMockConfig-Output, optional, nullable) — Respostas simuladas com condições de parâmetros opcionais. Avaliadas de cima para baixo; a primeira correspondência prevalece.

## Errors

### 422 Unprocessable Entity Error

Erro de validação

- `detail` (list of ValidationError, optional)

## Types

### ToolResponseModelToolConfig

O tipo de ferramenta

- `type`: `client` (ClientToolConfig)
  - `description` (string, required) — Descrição de quando a ferramenta deve ser usada e do que ela faz.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuração para extrair valores das respostas de ferramentas e atribuí-los a variáveis dinâmicas
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuração para variáveis dinâmicas
  - `execution_mode` (enum, optional, default: immediate) — Determina quando e como a ferramenta é executada: 'immediate' executa a ferramenta imediatamente quando solicitada pelo LLM; 'post_tool_speech' aguarda o agente terminar de falar antes de executar; e 'async' executa a ferramenta em segundo plano, sem bloquear — ideal para operações demoradas.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — Se for true, a chamada desta ferramenta deverá bloquear a conversa até que o cliente responda, e essa resposta será passada ao LLM. Se for false, continuaremos a conversa sem esperar a resposta do cliente. Isso é útil para mostrar conteúdo a um usuário sem bloquear a conversa.
  - `interruption_mode` (enum, optional, default: allow) — Controla se o usuário pode interromper o agente durante esta chamada de ferramenta. 'allow' (padrão) permite que o usuário interrompa a qualquer momento, 'disable_during_tool' suprime interrupções apenas enquanto a ferramenta está em execução e 'disable_during_tool_and_turn' suprime interrupções enquanto a ferramenta é executada e durante a resposta do agente que a segue.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaProperty-Output, optional, nullable) — Schema para quaisquer parâmetros a serem enviados ao cliente
  - `pre_tool_speech` (enum, optional, default: auto) — Controla se o agente fala antes de esta ferramenta ser chamada. 'auto' (padrão) decide com base na latência recente da ferramenta, 'force' sempre faz o agente falar e 'off' desativa totalmente esse comportamento, independentemente da latência.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — O tempo máximo, em segundos, de espera pela conclusão da chamada da ferramenta. Deve ser entre 1 e 120 segundos (inclusive) ou -1 para aguardar indefinidamente a resposta do cliente (requer expects_response).
  - `tool_call_sound` (enum, optional, nullable) — Tipo de som predefinido para chamadas de ferramenta, reproduzido durante a execução da ferramenta. Se não for especificado, nenhum som de chamada de ferramenta será reproduzido.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina quando o som de chamada da ferramenta deve tocar. 'auto' toca apenas quando há fala antes da ferramenta; 'always' toca em todas as chamadas de ferramenta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla como os erros das ferramentas são processados antes de serem compartilhados com o agente. 'auto' determina o tratamento com base no tipo de ferramenta (resumido para integrações nativas, oculto para as demais), 'summarized' envia um resumo gerado por LLM, 'passthrough' envia o erro bruto e 'hide' não compartilha o erro com o agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — DESCONTINUADO: use `interruption_mode`. Se for true, o usuário não poderá interromper o agente enquanto esta ferramenta estiver em execução.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — DESCONTINUADO: use `pre_tool_speech`. Se for true, o agente falará antes da chamada da ferramenta.
- `type`: `mcp` (mcp)
- `type`: `system` (SystemToolConfig)
  - `name` (string, required)
  - `params` (ToolResponseModelToolConfigDiscriminatorMappingSystemParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuração para extrair valores das respostas de ferramentas e atribuí-los a variáveis dinâmicas
  - `description` (string, optional, default: ) — Descrição de quando a ferramenta deve ser usada e do que ela faz. Deixe em branco para usar a descrição padrão otimizada para o tipo específico de ferramenta.
  - `interruption_mode` (enum, optional, default: allow) — Controla se o usuário pode interromper o agente durante esta chamada de ferramenta. 'allow' (padrão) permite que o usuário interrompa a qualquer momento, 'disable_during_tool' suprime interrupções apenas enquanto a ferramenta está em execução e 'disable_during_tool_and_turn' suprime interrupções enquanto a ferramenta é executada e durante a resposta do agente que a segue.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Controla se o agente fala antes de esta ferramenta ser chamada. 'auto' (padrão) decide com base na latência recente da ferramenta, 'force' sempre faz o agente falar e 'off' desativa totalmente esse comportamento, independentemente da latência.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — O tempo máximo, em segundos, para aguardar a conclusão da chamada de ferramenta.
  - `tool_call_sound` (enum, optional, nullable) — Tipo de som predefinido para chamadas de ferramenta, reproduzido durante a execução da ferramenta. Se não for especificado, nenhum som de chamada de ferramenta será reproduzido.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina quando o som de chamada da ferramenta deve tocar. 'auto' toca apenas quando há fala antes da ferramenta; 'always' toca em todas as chamadas de ferramenta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla como os erros das ferramentas são processados antes de serem compartilhados com o agente. 'auto' determina o tratamento com base no tipo de ferramenta (resumido para integrações nativas, oculto para as demais), 'summarized' envia um resumo gerado por LLM, 'passthrough' envia o erro bruto e 'hide' não compartilha o erro com o agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — DESCONTINUADO: use `interruption_mode`. Se for true, o usuário não poderá interromper o agente enquanto esta ferramenta estiver em execução.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — DESCONTINUADO: use `pre_tool_speech`. Se for true, o agente falará antes da chamada da ferramenta.
- `type`: `webhook` (WebhookToolConfig)
  - `api_schema` (WebhookToolApiSchemaConfig-Output, required) — O esquema do webhook de saída, incluindo parâmetros e especificação de URL
  - `description` (string, required) — Descrição de quando a ferramenta deve ser usada e do que ela faz.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuração para extrair valores das respostas de ferramentas e atribuí-los a variáveis dinâmicas
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuração para variáveis dinâmicas
  - `execution_mode` (enum, optional, default: immediate) — Determina quando e como a ferramenta é executada: 'immediate' executa a ferramenta imediatamente quando solicitada pelo LLM; 'post_tool_speech' aguarda o agente terminar de falar antes de executar; e 'async' executa a ferramenta em segundo plano, sem bloquear — ideal para operações demoradas.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — Se deve seguir um redirecionamento do endpoint e retornar a resposta final. Um redirecionamento é seguido como um GET sem o corpo da solicitação; nenhuma configuração desta ferramenta (cabeçalhos, autenticação, certificado de cliente) é enviada ao destino do redirecionamento. Tanto o endpoint quanto o destino do redirecionamento devem usar HTTPS. Não é compatível com ferramentas de integração de API.
  - `follow_redirects_allowed_domains` (list of string, optional) — Domínios para os quais um redirecionamento pode apontar, por exemplo, 'test.example.com'. Obrigatório ao seguir redirecionamentos; um destino fora da lista será recusado.
  - `interruption_mode` (enum, optional, default: allow) — Controla se o usuário pode interromper o agente durante esta chamada de ferramenta. 'allow' (padrão) permite que o usuário interrompa a qualquer momento, 'disable_during_tool' suprime interrupções apenas enquanto a ferramenta está em execução e 'disable_during_tool_and_turn' suprime interrupções enquanto a ferramenta é executada e durante a resposta do agente que a segue.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Controla se o agente fala antes de esta ferramenta ser chamada. 'auto' (padrão) decide com base na latência recente da ferramenta, 'force' sempre faz o agente falar e 'off' desativa totalmente esse comportamento, independentemente da latência.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — O tempo máximo, em segundos, para aguardar a conclusão da chamada de ferramenta. Deve estar entre 5 e 300 segundos, inclusive.
  - `tool_call_sound` (enum, optional, nullable) — Tipo de som predefinido para chamadas de ferramenta, reproduzido durante a execução da ferramenta. Se não for especificado, nenhum som de chamada de ferramenta será reproduzido.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Determina quando o som de chamada da ferramenta deve tocar. 'auto' toca apenas quando há fala antes da ferramenta; 'always' toca em todas as chamadas de ferramenta.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Controla como os erros das ferramentas são processados antes de serem compartilhados com o agente. 'auto' determina o tratamento com base no tipo de ferramenta (resumido para integrações nativas, oculto para as demais), 'summarized' envia um resumo gerado por LLM, 'passthrough' envia o erro bruto e 'hide' não compartilha o erro com o agente.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — DESCONTINUADO: use `interruption_mode`. Se for true, o usuário não poderá interromper o agente enquanto esta ferramenta estiver em execução.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — DESCONTINUADO: use `pre_tool_speech`. Se for true, o agente falará antes da chamada da ferramenta.

### ResourceAccessInfo

- `is_creator` (boolean, required) — Indica se o usuário que faz a solicitação é o criador do agente
- `creator_name` (string, required) — Nome do criador do agente
- `creator_email` (string, required) — E-mail do criador do agente
- `role` (enum, required) — A função do usuário que faz a solicitação
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional, nullable) — O nível de acesso para usuários anônimos. Se for None, o recurso não será compartilhado publicamente.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional, nullable) — Por que o usuário solicitante tem acesso a este recurso. 'creator' = o chamador é o proprietário. 'explicit' = o chamador (ou um dos grupos do workspace dele) está listado em role_to_group_ids além do grupo everyone de todo o workspace. 'workspace_default' = o grupo everyone de todo o workspace está listado em role_to_group_ids (todos os membros não anônimos do workspace, incluindo administradores, veem este recurso). 'workspace_admin' = o chamador é administrador do workspace e a função de administrador é o *único* caminho de acesso; reservado para documentos que ninguém mais pode ver. Permite que a interface revele por que um visualizador com desvio de administrador vê um documento que não foi compartilhado explicitamente com ele.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### ToolUsageStatsResponseModel

- `avg_latency_secs` (double, required)
- `total_calls` (integer, optional, default: 0) — O número total de chamadas à ferramenta

### ToolResponseMockConfig-Output

- `mock_result` (string, required) — O valor retornado que o LLM vê quando este mock está ativo.
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — Se a lista estiver vazia, o mock sempre será ativado.
- `is_error` (boolean, optional, default: false) — Se for true, o resultado do mock será apresentado ao LLM como um erro da ferramenta, em vez de um resultado bem-sucedido.

### ValidationError

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

### DynamicVariableAssignment

Configuração para extrair valores das respostas de ferramentas e atribuí-los a variáveis dinâmicas.

- `dynamic_variable` (string, required) — O nome da variável dinâmica à qual atribuir o valor extraído
- `value_path` (string, required) — Caminho em notação de ponto para extrair o valor da origem, por exemplo, 'user.name' ou 'data.0.id'.
- `source` ("response", optional, default: response) — A origem da qual extrair o valor. No momento, apenas 'response' é compatível.
- `sanitize` (boolean, optional, default: false) — Se for true, o valor desta atribuição será removido da resposta da ferramenta antes de ser enviado ao LLM e à transcrição, mas ainda será processado para atribuição de variável.
- `preserve_native_type` (boolean, optional, default: false) — Se for true, valores não escalares (listas, objetos) extraídos da resposta da ferramenta serão armazenados em seu tipo nativo, em vez de serem convertidos em strings JSON. Ative esta opção para usar arrays extraídos diretamente como variáveis dinâmicas de lista.

### DynamicVariablesConfig

- `dynamic_variable_placeholders` (map from string to any, optional) — Um dicionário de marcadores de variáveis dinâmicas e seus valores.

### ObjectJsonSchemaProperty-Output

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Quando definido, todo o parâmetro é preenchido com esta variável dinâmica no tempo de execução. Mutuamente exclusivo com description (valor fornecido pelo LLM), constant_value e is_omitted.
- `constant_value` (map from string to any, optional, nullable) — Quando definido, todo o objeto usa este valor JSON constante no tempo de execução. Mutuamente exclusivo com description (objeto fornecido pelo LLM), dynamic_variable e is_omitted.
- `is_omitted` (boolean, optional, default: false) — Se for true, este parâmetro será completamente omitido da solicitação. Válido somente para parâmetros opcionais. Mutuamente exclusivo com description, dynamic_variable e constant_value.
- `type` ("object", optional, default: object)
- `required` (list of string, optional)
- `properties` (map from string to ObjectJsonSchemaPropertyOutput, optional)
- `required_constraints` (RequiredConstraints, optional, nullable) — Contêiner para restrições de composição anyOf/allOf aplicadas aos campos obrigatórios.

### ToolResponseModelToolConfigDiscriminatorMappingSystemParams

- `system_tool_type`: `end_call` (EndCallToolConfig)
- `system_tool_type`: `end_procedure` (EndProcedureToolConfig)
  - `procedures` (map from string to ToolResponseModelToolConfigDiscriminatorMappingSystemParamsDiscriminatorMappingEndProcedureProcedures, optional)
- `system_tool_type`: `knowledge_base` (KnowledgeBaseToolConfig)
  - `enabled_strategies` (list of enum, optional)
    - Allowed values: `cat`, `keyword`, `semantic`, `ls`
- `system_tool_type`: `knowledge_base_rag` (KnowledgeBaseRagToolConfig)
- `system_tool_type`: `language_detection` (LanguageDetectionToolConfig)
  - `only_at_conversation_start` (boolean, optional, default: false) — Se nenhuma troca de idioma ocorrer nos 2 primeiros turnos do usuário, as tentativas posteriores falharão e a conversa permanecerá no idioma atual. Se o idioma mudar durante esses turnos, mudanças posteriores continuarão disponíveis. Ative para reduzir a possibilidade de trocas incorretas.
- `system_tool_type`: `play_keypad_touch_tone` (PlayDTMFToolConfig)
  - `suppress_turn_after_dtmf` (boolean, optional, default: false) — Se for true, o agente não gerará mais fala após reproduzir tons DTMF. Isso evita que a fala do agente interfira em sistemas de IVR.
  - `use_out_of_band_dtmf` (boolean, optional, default: true) — Envie tons DTMF como eventos RTP fora de banda (RFC 4733), em vez de áudio em banda. Só é eficaz para números importados de troncos SIP.
- `system_tool_type`: `skip_turn` (SkipTurnToolConfig)
  - `wait_timeout_secs` (double, optional, default: -1) — Segundos de espera após skip_turn antes de o agente gerar uma verificação contextual. O temporizador "Encerrar conversa após silêncio" é pausado durante a espera. -1 desativa a espera: após skip_turn, o agente permanece em silêncio até que o chamador fale, e esse temporizador continua em execução. Aplica-se apenas a conversas por voz.
- `system_tool_type`: `start_procedure` (StartProcedureToolConfig)
  - `procedures` (map from string to ToolResponseModelToolConfigDiscriminatorMappingSystemParamsDiscriminatorMappingStartProcedureProcedures, optional)
- `system_tool_type`: `transfer_to_agent` (TransferToAgentToolConfig)
  - `transfers` (list of AgentTransfer-Output, required)
- `system_tool_type`: `transfer_to_number` (TransferToNumberToolConfig)
  - `transfers` (list of PhoneNumberTransfer, required)
  - `enable_client_message` (boolean, optional, default: true) — Se deve reproduzir uma mensagem para o cliente enquanto ele aguarda a transferência. O padrão é true para manter a compatibilidade com versões anteriores.
- `system_tool_type`: `voicemail_detection` (VoicemailDetectionToolConfig)
  - `voicemail_message` (string, optional, nullable) — Mensagem opcional para deixar na caixa postal quando ela for detectada. Se não for fornecida, a chamada será encerrada imediatamente ao detectar a caixa postal. Oferece suporte a variáveis dinâmicas (por exemplo, \{\{system\_\_time}}, \{\{system\_\_call\_duration\_secs}}, \{\{custom\_variable}}).

### WebhookToolApiSchemaConfig-Output

- `url` (string, required) — A URL para a qual o webhook será enviado. Pode incluir parâmetros de caminho, por exemplo, [https://example.com/agents/\{agent\_id}](https://example.com/agents/\{agent_id})
- `request_headers` (map from string to WebhookToolApiSchemaConfigOutputRequestHeaders, optional) — Cabeçalhos que devem ser incluídos na solicitação
- `method` (enum, optional, default: GET) — O método HTTP a usar para o webhook
  - Allowed values: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`
- `path_params_schema` (map from string to LiteralJsonSchemaProperty, optional) — Schema para parâmetros de caminho, se houver. As chaves devem corresponder aos placeholders na URL.
- `query_params_schema` (QueryParamsJsonSchema-Output, optional, nullable) — Schema para parâmetros de consulta, se houver. Eles serão adicionados ao final da URL como parâmetros de consulta. Observação: as propriedades em um parâmetro de consulta devem ser todas de tipos literais
- `request_body_schema` (ObjectJsonSchemaProperty-Output, optional, nullable) — Schema para os parâmetros do corpo, se houver. Usado para solicitações POST/PATCH/PUT. O schema deve ser um objeto que será enviado como corpo JSON
- `response_body_schema` (ObjectJsonSchemaProperty-Output, optional, nullable) — Schema que descreve a estrutura esperada do corpo da resposta. Apenas para documentação; não é exibido ao LLM.
- `response_filter` (ResponseFilter, optional, nullable) — Filtro opcional de lista de permissões aplicado à resposta antes que o LLM a veja, para que respostas grandes não poluam o contexto. O padrão é a resposta completa.
- `content_type` (enum, optional, default: application/json) — Tipo de conteúdo do corpo da solicitação. Aplica-se apenas a solicitações POST/PUT/PATCH.
  - Allowed values: `application/json`, `application/x-www-form-urlencoded`
- `auth_resolved_params` (list of string, optional) — Placeholders de URL resolvidos pela conexão de autenticação (por exemplo, segredos inseridos por UrlSecretAuthConnection), e não por path_params_schema.
- `auth_connection` (WebhookToolApiSchemaConfigOutputAuthConnection, optional, nullable) — Conexão de autenticação opcional a usar para autenticar neste webhook

### UnitTestToolCallParameter

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

### ValidationErrorLocItems

### ObjectJsonSchemaPropertyOutput

### RequiredConstraints

Contêiner para restrições de composição anyOf/allOf aplicadas aos campos obrigatórios.

- `any_of` (list of RequiredConstraint, optional)
- `all_of` (list of RequiredConstraint, optional)

### ToolResponseModelToolConfigDiscriminatorMappingSystemParamsDiscriminatorMappingEndProcedureProcedures

### ToolResponseModelToolConfigDiscriminatorMappingSystemParamsDiscriminatorMappingStartProcedureProcedures

### AgentTransfer-Output

- `condition` (string, required)
- `agent_id` (string, optional, nullable)
- `branch_id` (string, optional, nullable)
- `node_id` (string, optional, nullable)
- `delay_ms` (integer, optional, default: 0)
- `transfer_message` (string, optional, nullable)
- `enable_transferred_agent_first_message` (boolean, optional, default: false)
- `is_workflow_node_transfer` (boolean, optional, default: false)
- `preserve_client_tts_overrides` (boolean, optional, default: false) — Define se as substituições do cliente de TTS devem ser mantidas no agente transferido.
- `preserve_voice_settings` (boolean, optional, default: false) — Define se a voz base, o modelo TTS e as configurações de voz devem ser transferidos para o agente transferido.

### PhoneNumberTransfer

- `transfer_destination` (PhoneNumberTransferTransferDestination, required)
- `condition` (string, required)
- `custom_sip_headers` (list of PhoneNumberTransferCustomSipHeadersItems, optional) — Cabeçalhos SIP personalizados a serem incluídos ao transferir a chamada. Cada cabeçalho pode ser um valor estático ou uma referência a variável dinâmica.
- `transfer_type` (enum, optional, default: conference)
  - Allowed values: `blind`, `conference`, `sip_refer`
- `sip_refer_play_dialtone` (boolean, optional, default: true) — Quando True, um tom de chamada é reproduzido na perna original da chamada enquanto uma transferência SIP REFER é concluída. O tom é transmitido por RTP ao par SIP que executa o REFER, portanto desative esta opção se o sistema receptor (por exemplo, um SBC ou central de atendimento) não deve ouvi-lo. Quando desativada, a pessoa que ligou ouve silêncio até a transferência ser concluída. Apenas para transferências SIP REFER.
- `uui` (UUITransferConfig, optional, nullable) — Informações de Usuário para Usuário (RFC 7433) a serem anexadas a transferências SIP REFER. Transporta o contexto da chamada, como identificadores de CRM ou motivo de escalonamento, durante a transferência.
- `post_dial_digits` (PhoneNumberTransferPostDialDigits, optional, nullable) — Dígitos DTMF a enviar após a conexão da chamada, por exemplo, 'ww1234' para ramal. Pode ser um valor estático ou uma referência de variável dinâmica. Use 'w' para uma pausa de 0,5 s. Compatível apenas com transferências do Twilio.
- `phone_number` (string, optional, nullable, deprecated)

### WebhookToolApiSchemaConfigOutputRequestHeaders

### LiteralJsonSchemaProperty

Propriedade de schema para tipos JSON literais. IMPORTANTE: apenas UM dos seguintes campos pode ser definido: description (o LLM fornece o valor), dynamic_variable (valor de uma variável), is_system_provided (o sistema fornece o valor), constant_value (valor fixo) ou is_omitted (o parâmetro é omitido). Eles são mutuamente exclusivos.

- `type` (LiteralJsonSchemaPropertyType, required)
- `description` (string, optional, default: ) — A descrição da propriedade. Quando definida, o LLM fornecerá o valor com base nesta descrição. Mutuamente exclusiva com dynamic_variable, is_system_provided, constant_value e is_omitted.
- `enum` (list of string, optional, nullable) — List of allowed string values for string type parameters
- `is_system_provided` (boolean, optional, default: false) — Se for true, o valor será preenchido pelo sistema em tempo de execução. Usado por ferramentas de Webhook de integração de API para criação de templates. Mutuamente exclusivo com description, dynamic_variable, constant_value e is_omitted.
- `dynamic_variable` (string, optional, default: ) — O nome da variável dinâmica a ser usada para o valor desta propriedade. Mutuamente exclusivo com description, is_system_provided, constant_value e is_omitted.
- `allowed_values` (AllowedValues, optional, nullable) — Proteção de rejeição no servidor para um valor fornecido por um LLM: o runtime rejeita qualquer valor fora do conjunto permitido nomeado por este objeto, e o conjunto não é apresentado ao LLM como um enum. Compatível apenas quando a origem do valor é `description`; combiná-la com dynamic_variable, is_system_provided, constant_value ou is_omitted é rejeitado.
- `constant_value` (LiteralJsonSchemaPropertyConstantValue, optional, nullable, default: ) — Um valor constante para usar nesta propriedade. Mutuamente exclusivo com description, dynamic_variable, is_system_provided e is_omitted.
- `is_omitted` (boolean, optional, default: false) — Se for true, este parâmetro será completamente omitido da solicitação. Válido somente para parâmetros opcionais. Mutuamente exclusivo com description, dynamic_variable, is_system_provided e constant_value.
- `allowed_values_dynamic_variable` (string, optional, default: , deprecated) — DESCONTINUADO: use `allowed_values`. Quando definido, o LLM fornece o valor, mas o tempo de execução rejeita qualquer valor que não esteja na lista mantida por esta variável dinâmica (deve ser um array JSON, como ["ws_alpha", "ws_beta"]). Use para permitir que o LLM escolha de um conjunto verificado pelo servidor (por exemplo, os IDs aos quais o usuário atual tem permissão de acesso). Exige descrição; mutuamente exclusivo com dynamic_variable, is_system_provided, constant_value e is_omitted.

### QueryParamsJsonSchema-Output

- `properties` (map from string to LiteralJsonSchemaProperty, required)
- `required` (list of string, optional)

### ResponseFilter

Configuração para filtrar respostas de ferramentas antes que fiquem visíveis para o agente.

- `mode` (enum, optional, default: all) — Controla como as respostas das ferramentas são filtradas. 'all' retorna a resposta inteira, 'allow' retorna apenas os caminhos especificados e 'hide_all' oculta a resposta inteira.
  - Allowed values: `all`, `allow`, `hide_all`
- `filters` (list of string, optional) — Caminhos em notação de ponto a incluir quando o modo for 'allow', por exemplo, ['ticket.id', 'ticket.status'].
- `content_type` ("application/json", optional, default: application/json) — Tipo de conteúdo para filtragem de respostas. Apenas respostas 'application/json' são filtradas.

### WebhookToolApiSchemaConfigOutputAuthConnection

Conexão de autenticação opcional a usar para autenticar neste webhook

### UnitTestToolCallParameterEval

- `type`: `anything` (MatchAnythingParameterEvaluationStrategy)
- `type`: `exact` (ExactParameterEvaluationStrategy)
  - `expected_value` (string, required) — O valor exato da string ao qual o parâmetro deve corresponder.
- `type`: `llm` (LLMParameterEvaluationStrategy)
  - `description` (string, required) — Uma descrição da estratégia de avaliação a ser usada no teste.
- `type`: `regex` (RegexParameterEvaluationStrategy)
  - `pattern` (string, required) — Um padrão regex para comparar com a resposta do agente.

### ArrayJsonSchemaProperty-Output

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Quando definido, todo o parâmetro é preenchido com esta variável dinâmica no tempo de execução. Mutuamente exclusivo com description (valor fornecido pelo LLM), constant_value e is_omitted.
- `constant_value` (list of any, optional, nullable) — Quando definido, todo o array usa este valor constante no tempo de execução. Mutuamente exclusivo com description (array fornecido pelo LLM), dynamic_variable e is_omitted.
- `is_omitted` (boolean, optional, default: false) — Se for true, este parâmetro será completamente omitido da solicitação. Válido somente para parâmetros opcionais. Mutuamente exclusivo com description, dynamic_variable e constant_value.
- `type` ("array", optional, default: array)
- `items` (ArrayJsonSchemaPropertyOutputItems, optional, default: {"allowed_values_dynamic_variable":"","constant_value":"","description":"Array element","dynamic_variable":"","is_omitted":false,"is_system_provided":false,"type":"string"}) — Schema para elementos de array.

### RequiredConstraint

Um conjunto de campos que devem estar todos presentes para atender a esta restrição.

- `required` (list of string, required)

### ProcedureVersionRef

- `procedure_id` (string, required) — ID do procedimento
- `version_id` (string, required) — ID da versão do procedimento.

### ProcedureDraftRef

- `procedure_id` (string, required) — ID do procedimento
- `version_id` (any, optional)

### PhoneNumberTransferTransferDestination

- `type`: `phone` (PhoneNumberTransferDestination)
  - `phone_number` (string, required)
- `type`: `phone_dynamic_variable` (PhoneNumberDynamicVariableTransferDestination)
  - `phone_number` (string, required)
- `type`: `sip_uri` (SIPUriTransferDestination)
  - `sip_uri` (string, required)
- `type`: `sip_uri_dynamic_variable` (SIPUriDynamicVariableTransferDestination)
  - `sip_uri` (string, required)

### PhoneNumberTransferCustomSipHeadersItems

- `type`: `dynamic` (CustomSIPHeaderWithDynamicVariable)
  - `key` (string, required) — O nome do cabeçalho SIP (por exemplo, 'X-Customer-ID')
  - `value` (string, required) — O nome da variável dinâmica a ser resolvida
- `type`: `static` (CustomSIPHeader)
  - `key` (string, required) — O nome do cabeçalho SIP (por exemplo, 'X-Customer-ID')
  - `value` (string, required) — O valor do cabeçalho

### UUITransferConfig

Envelope de Informações de Usuário para Usuário para transferências SIP REFER (RFC 7433). Os payloads de saída são codificados em hexadecimal (a única codificação definida pela RFC 7433). O campo discriminador de protocolo permite que formatos por plataforma (Talkdesk, Genesys, ...) sejam definidos por configuração, em vez de sinalizadores de transferência dispersos. Outros campos (codificação ASCII, nome do cabeçalho, parâmetros de finalidade/conteúdo) podem ser adicionados aqui sem alterar o modelo de transferência.

- `data` (string, required) — Payload UUI a ser enviado em transferências SIP REFER. Compatível com variáveis dinâmicas inline e codificado em hexadecimal no momento da transferência.
- `protocol_discriminator` (string, optional, nullable) — Discriminador opcional de protocolo de um octeto (dois dígitos hexadecimais, por exemplo, '00'). Exigido por plataformas como Genesys Cloud, que, caso contrário, removem o primeiro octeto da carga útil. Deixe sem definir para plataformas como Talkdesk, que esperam uma carga útil hexadecimal sem delimitadores.
- `protocol_discriminator_mode` (enum, optional, default: prefix) — Como anexar protocol\_discriminator. 'prefix' adiciona o octeto antes do payload hexadecimal (User-to-User=XX\<hex>;encoding=hex). 'pd\_parameter' o envia como um parâmetro separado (User-to-User=\<hex>;pd=XX;encoding=hex). Ignorado quando protocol\_discriminator não está definido.
  - Allowed values: `prefix`, `pd_parameter`

### PhoneNumberTransferPostDialDigits

Dígitos DTMF a enviar após a conexão da chamada, por exemplo, 'ww1234' para ramal. Pode ser um valor estático ou uma referência de variável dinâmica. Use 'w' para uma pausa de 0,5 s. Compatível apenas com transferências do Twilio.

- `type`: `dynamic` (PostDialDigitsDynamicVariable)
  - `value` (string, required) — O nome da variável dinâmica a ser resolvida
- `type`: `static` (PostDialDigitsStatic)
  - `value` (string, required) — Dígitos DTMF a enviar após a conexão da chamada, por exemplo, 'ww1234' para ramal

### ConvAISecretLocator

Usado para referenciar um segredo do armazenamento de segredos do agente.

- `secret_id` (string, required)

### ConvAIDynamicVariable

Usado para referenciar uma variável dinâmica.

- `variable_name` (string, required)

### ConvAIEnvVarLocator

Usado para referenciar uma variável de ambiente pelo rótulo.

- `env_var_label` (string, required)

### LiteralJsonSchemaPropertyType

### AllowedValues

- `dynamic_variable` (string, required) — Nome de uma variável dinâmica que deve resultar em uma matriz JSON de valores permitidos, por exemplo, ["ws_alpha", "ws_beta"]. As variáveis do sistema funcionam apenas se resultarem em uma lista.

### LiteralJsonSchemaPropertyConstantValue

Um valor constante para usar nesta propriedade. Mutuamente exclusivo com description, dynamic_variable, is_system_provided e is_omitted.

### AuthConnectionLocator

Usado para referenciar uma conexão de autenticação do armazenamento de conexões de autenticação do espaço de trabalho.

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

Referencia uma variável de ambiente do tipo 'auth_connection' pelo rótulo. Em tempo de execução, é resolvida para a conexão de autenticação do ambiente atual, recorrendo ao ambiente padrão.

- `env_var_label` (string, required)

### ArrayJsonSchemaPropertyOutputItems

Schema para elementos de array.

## Examples

**Response**

```json
{
  "id": "string",
  "tool_config": {
    "type": "system",
    "name": "end_call",
    "params": {
      "system_tool_type": "end_call"
    },
    "description": ""
  },
  "access_info": {
    "is_creator": true,
    "creator_name": "John Doe",
    "creator_email": "john.doe@example.com",
    "role": "admin",
    "access_source": "creator"
  },
  "usage_stats": {
    "avg_latency_secs": 1.1,
    "total_calls": 0
  },
  "response_mocks": [
    {
      "mock_result": "string",
      "parameter_conditions": [
        {
          "eval": {
            "description": "string",
            "type": "string"
          },
          "path": "string"
        }
      ],
      "is_error": false
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/tools/tool_id"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/convai/tools/tool_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/tools/tool_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/tools/tool_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/tools/tool_id")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

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

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/tools/tool_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/tools/tool_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()
```