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

# Tools ophalen

GET https://api.elevenlabs.io/v1/convai/tools

Haal alle beschikbare tools in de workspace op.

Reference: https://elevenlabs.io/docs/api-reference/tools/list

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

### Query parameters

- `search` (string, optional, nullable) — Als dit wordt opgegeven, retourneert het endpoint alleen tools waarvan de naam met deze string begint.
- `page_size` (integer, optional, nullable) — Het maximale aantal documenten dat moet worden geretourneerd. Mag niet meer zijn dan 100; standaard is dit 30.
- `show_only_owned_documents` (boolean, optional, default: false, deprecated) — Als dit is ingesteld op true, retourneert het endpoint alleen tools waarvan jij de eigenaar bent, en niet tools die iemand anders heeft gedeeld. Verouderd: gebruik in plaats daarvan created_by_user_id.
- `created_by_user_id` (string, optional, nullable) — Filter tools op gebruikers-ID van de maker. Wanneer ingesteld, worden alleen tools geretourneerd die door deze gebruiker zijn gemaakt. Dit heeft voorrang op show_only_owned_documents. Gebruik '@me' om te verwijzen naar de geverifieerde gebruiker.
- `types` (list of enum, optional, nullable) — Als dit aanwezig is, retourneert het endpoint alleen tools van de opgegeven typen.
  - Allowed values: `webhook`, `client`, `api_integration_webhook`
- `sort_direction` (enum, optional) — De richting waarin je de resultaten sorteert
  - Allowed values: `asc`, `desc`
- `sort_by` (enum, optional, nullable) — Het veld waarop de resultaten worden gesorteerd
  - Allowed values: `name`, `created_at`
- `used_by_agent_id` (string, optional, nullable) — Filter op tools waarnaar wordt verwezen door de hoofdbranch van deze agent: tools die aan de agent zijn gekoppeld, tools op gemaakte workflowknooppunten en tools waarnaar procedures verwijzen.
- `cursor` (string, optional, nullable) — Gebruikt om de volgende pagina op te halen. De cursor wordt teruggegeven in de response.

## Response

### 200

Geslaagde response

- `tools` (list of ToolResponseModel, required)
- `has_more` (boolean, required)
- `next_cursor` (string, optional, nullable)

## Errors

### 422 Unprocessable Entity Error

Validatiefout

- `detail` (list of ValidationError, optional)

## Types

### ToolResponseModel

- `id` (string, required)
- `tool_config` (ToolResponseModelToolConfig, required) — Het type tool
- `access_info` (ResourceAccessInfo, required)
- `usage_stats` (ToolUsageStatsResponseModel, required)
- `response_mocks` (list of ToolResponseMockConfig-Output, optional, nullable) — Mockreacties met optionele parametervoorwaarden. Worden van boven naar beneden geëvalueerd; de eerste overeenkomst geldt.

### ValidationError

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

### ToolResponseModelToolConfig

Het type tool

- `type`: `client` (ClientToolConfig)
  - `description` (string, required) — Beschrijving van wanneer de tool moet worden gebruikt en wat deze doet.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuratie voor dynamische variabelen
  - `execution_mode` (enum, optional, default: immediate) — Bepaalt wanneer en hoe de tool wordt uitgevoerd: 'immediate' voert de tool direct uit wanneer de LLM hierom vraagt, 'post_tool_speech' wacht tot de agent is uitgesproken voordat de tool wordt uitgevoerd en 'async' voert de tool op de achtergrond uit zonder te blokkeren - het beste voor langlopende bewerkingen.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `expects_response` (boolean, optional, default: false) — Als true, moet het aanroepen van deze tool het gesprek blokkeren totdat de client reageert met een reactie die aan het LLM wordt doorgegeven. Als false, zetten we het gesprek voort zonder op een reactie van de client te wachten. Dit is nuttig om content aan een gebruiker te tonen zonder het gesprek te blokkeren.
  - `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `parameters` (ObjectJsonSchemaProperty-Output, optional, nullable) — Schema voor alle parameters die aan de client moeten worden doorgegeven
  - `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — De maximale wachttijd in seconden tot de toolcall is voltooid. Moet tussen 1 en 120 seconden liggen (inclusief), of -1 om onbeperkt op de reactie van de client te wachten (vereist expects_response).
  - `tool_call_sound` (enum, optional, nullable) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van een tool wordt afgespeeld. Als dit niet is opgegeven, wordt er geen tool-callgeluid afgespeeld.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld. 'auto' speelt alleen af als er spraak vóór de tool is, 'always' speelt af bij elke toolaanroep.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Bepaalt hoe toolfouten worden verwerkt voordat ze met de agent worden gedeeld. 'auto' bepaalt de afhandeling op basis van het tooltype (samengevat voor native integraties, verbergen voor andere), 'summarized' stuurt een door een LLM gegenereerde samenvatting, 'passthrough' stuurt de onbewerkte fout en 'hide' deelt de fout niet met de agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl deze tool wordt uitgevoerd.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, spreekt de agent vóór de toolaanroep.
- `type`: `mcp` (mcp)
- `type`: `system` (SystemToolConfig)
  - `name` (string, required)
  - `params` (ToolResponseModelToolConfigDiscriminatorMappingSystemParams, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen
  - `description` (string, optional, default: ) — Beschrijving van wanneer de tool moet worden gebruikt en wat deze doet. Laat leeg om de standaardbeschrijving te gebruiken, die is geoptimaliseerd voor het specifieke tooltype.
  - `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — De maximale wachttijd in seconden tot de toolcall is voltooid.
  - `tool_call_sound` (enum, optional, nullable) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van een tool wordt afgespeeld. Als dit niet is opgegeven, wordt er geen tool-callgeluid afgespeeld.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld. 'auto' speelt alleen af als er spraak vóór de tool is, 'always' speelt af bij elke toolaanroep.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Bepaalt hoe toolfouten worden verwerkt voordat ze met de agent worden gedeeld. 'auto' bepaalt de afhandeling op basis van het tooltype (samengevat voor native integraties, verbergen voor andere), 'summarized' stuurt een door een LLM gegenereerde samenvatting, 'passthrough' stuurt de onbewerkte fout en 'hide' deelt de fout niet met de agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl deze tool wordt uitgevoerd.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, spreekt de agent vóór de toolaanroep.
- `type`: `webhook` (WebhookToolConfig)
  - `api_schema` (WebhookToolApiSchemaConfig-Output, required) — Het schema voor de uitgaande webhook, inclusief parameters en URL-specificatie
  - `description` (string, required) — Beschrijving van wanneer de tool moet worden gebruikt en wat deze doet.
  - `name` (string, required)
  - `assignments` (list of DynamicVariableAssignment, optional) — Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen
  - `dynamic_variables` (DynamicVariablesConfig, optional) — Configuratie voor dynamische variabelen
  - `execution_mode` (enum, optional, default: immediate) — Bepaalt wanneer en hoe de tool wordt uitgevoerd: 'immediate' voert de tool direct uit wanneer de LLM hierom vraagt, 'post_tool_speech' wacht tot de agent is uitgesproken voordat de tool wordt uitgevoerd en 'async' voert de tool op de achtergrond uit zonder te blokkeren - het beste voor langlopende bewerkingen.
    - Allowed values: `immediate`, `post_tool_speech`, `async`
  - `follow_redirects` (boolean, optional, default: false) — Of een redirect vanaf het endpoint moet worden gevolgd en de uiteindelijke response moet worden teruggestuurd. Er wordt één redirect gevolgd, als een GET zonder de requestbody; niets dat voor deze tool is geconfigureerd (headers, authenticatie, clientcertificaat) wordt naar het redirectdoel gestuurd. Zowel het endpoint als het redirectdoel moet HTTPS gebruiken. Niet ondersteund voor API-integratietools.
  - `follow_redirects_allowed_domains` (list of string, optional) — Domeinen waarnaar een redirect kan verwijzen, bijvoorbeeld 'test.example.com'. Vereist bij het volgen van redirects; een doel buiten de lijst wordt geweigerd.
  - `interruption_mode` (enum, optional, default: allow) — Bepaalt of de gebruiker de agent tijdens deze toolaanroep kan onderbreken. 'allow' (standaard) staat de gebruiker toe om op elk moment te onderbreken, 'disable_during_tool' onderdrukt onderbrekingen alleen terwijl de tool actief is en 'disable_during_tool_and_turn' onderdrukt onderbrekingen terwijl de tool actief is en tijdens de daaropvolgende reactie van de agent.
    - Allowed values: `allow`, `disable_during_tool`, `disable_during_tool_and_turn`
  - `pre_tool_speech` (enum, optional, default: auto) — Bepaalt of de agent spreekt voordat deze tool wordt aangeroepen. 'auto' (standaard) beslist op basis van recente toollatency, 'force' laat de agent altijd spreken en 'off' schakelt dit volledig uit, ongeacht de latency.
    - Allowed values: `auto`, `force`, `off`
  - `response_timeout_secs` (integer, optional, default: 20) — De maximale wachttijd in seconden tot de toolcall is voltooid. Moet tussen 5 en 300 seconden liggen (inclusief).
  - `tool_call_sound` (enum, optional, nullable) — Vooraf gedefinieerd type tool-callgeluid dat tijdens het uitvoeren van een tool wordt afgespeeld. Als dit niet is opgegeven, wordt er geen tool-callgeluid afgespeeld.
    - Allowed values: `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
  - `tool_call_sound_behavior` (enum, optional, default: auto) — Bepaalt wanneer het geluid voor de toolaanroep moet worden afgespeeld. 'auto' speelt alleen af als er spraak vóór de tool is, 'always' speelt af bij elke toolaanroep.
    - Allowed values: `auto`, `always`
  - `tool_error_handling_mode` (enum, optional, default: auto) — Bepaalt hoe toolfouten worden verwerkt voordat ze met de agent worden gedeeld. 'auto' bepaalt de afhandeling op basis van het tooltype (samengevat voor native integraties, verbergen voor andere), 'summarized' stuurt een door een LLM gegenereerde samenvatting, 'passthrough' stuurt de onbewerkte fout en 'hide' deelt de fout niet met de agent.
    - Allowed values: `auto`, `summarized`, `passthrough`, `hide`
  - `disable_interruptions` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `interruption_mode`. Als dit true is, kan de gebruiker de agent niet onderbreken terwijl deze tool wordt uitgevoerd.
  - `force_pre_tool_speech` (boolean, optional, default: false, deprecated) — VEROUDERD: gebruik in plaats daarvan `pre_tool_speech`. Als dit waar is, spreekt de agent vóór de toolaanroep.

### ResourceAccessInfo

- `is_creator` (boolean, required) — Of de gebruiker die de request doet de maker van de agent is
- `creator_name` (string, required) — Naam van de maker van de agent
- `creator_email` (string, required) — E-mailadres van de maker van de agent
- `role` (enum, required) — De rol van de gebruiker die de request uitvoert
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional, nullable) — Het toegangsniveau voor anonieme gebruikers. Als dit None is, wordt de resource niet openbaar gedeeld.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional, nullable) — Waarom de aanvragende gebruiker toegang heeft tot deze resource. 'creator' = de aanroeper is de eigenaar. 'explicit' = de aanroeper (of een van diens workspacegroepen) staat in role_to_group_ids, naast de workspacebrede everyone-groep. 'workspace_default' = de workspacebrede everyone-groep staat in role_to_group_ids (elk niet-anoniem workspacelid, inclusief beheerders, ziet deze resource). 'workspace_admin' = de aanroeper is een workspacebeheerder en de beheerdersrol is de *enige* manier om toegang te krijgen; gereserveerd voor documenten die niemand anders kan zien. Hiermee kan de UI uitleggen waarom een kijker die beheerdersrechten omzeilt een document ziet dat niet expliciet met diegene is gedeeld.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### ToolUsageStatsResponseModel

- `avg_latency_secs` (double, required)
- `total_calls` (integer, optional, default: 0) — Het totale aantal oproepen naar de tool

### ToolResponseMockConfig-Output

- `mock_result` (string, required) — De retourwaarde die de LLM ziet wanneer deze mock actief is.
- `parameter_conditions` (list of UnitTestToolCallParameter, optional) — Als de lijst leeg is, wordt de mock altijd geactiveerd.
- `is_error` (boolean, optional, default: false) — Als true, wordt het mockresultaat aan het LLM weergegeven als een toolfout in plaats van als een geslaagd resultaat.

### ValidationErrorLocItems

### DynamicVariableAssignment

Configuratie voor het extraheren van waarden uit toolresponses en deze toewijzen aan dynamische variabelen.

- `dynamic_variable` (string, required) — De naam van de dynamische variabele waaraan de geëxtraheerde waarde wordt toegewezen
- `value_path` (string, required) — Pad in puntnotatie om de waarde uit de bron te extraheren (bijvoorbeeld 'user.name' of 'data.0.id')
- `source` ("response", optional, default: response) — De bron waaruit de waarde wordt geëxtraheerd. Momenteel wordt alleen 'response' ondersteund.
- `sanitize` (boolean, optional, default: false) — Als true, wordt de waarde van deze toewijzing uit de toolreactie verwijderd voordat deze naar het LLM en het transcript wordt verzonden, maar wordt deze nog wel verwerkt voor variabeletoewijzing.
- `preserve_native_type` (boolean, optional, default: false) — Als true, worden niet-scalaire waarden (lijsten, objecten) uit de toolreactie opgeslagen in hun oorspronkelijke type, in plaats van als JSON-string. Schakel dit in om geëxtraheerde arrays rechtstreeks als dynamische lijstvariabelen te gebruiken.

### DynamicVariablesConfig

- `dynamic_variable_placeholders` (map from string to any, optional) — Een woordenboek met tijdelijke aanduidingen voor dynamische variabelen en hun waarden

### ObjectJsonSchemaProperty-Output

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Wanneer ingesteld, wordt de volledige parameter tijdens runtime ingevuld vanuit deze dynamische variabele. Kan niet samen worden gebruikt met description (door de LLM aangeleverde waarde), constant_value en is_omitted.
- `constant_value` (map from string to any, optional, nullable) — Wanneer ingesteld, gebruikt het volledige object deze constante JSON-waarde tijdens runtime. Kan niet samen worden gebruikt met description (door de LLM aangeleverd object), dynamic_variable en is_omitted.
- `is_omitted` (boolean, optional, default: false) — Als true is, wordt deze parameter volledig uit de request weggelaten. Alleen geldig voor optionele parameters. Kan niet samen worden gebruikt met description, dynamic_variable en constant_value.
- `type` ("object", optional, default: object)
- `required` (list of string, optional)
- `properties` (map from string to ObjectJsonSchemaPropertyOutput, optional)
- `required_constraints` (RequiredConstraints, optional, nullable) — Wrapper voor anyOf/allOf-compositiebeperkingen die gelden voor verplichte velden.

### 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) — Als er in de eerste 2 gebruikersbeurten geen taalwissel plaatsvindt, mislukken latere pogingen en blijft het gesprek in de huidige taal. Als de taal tijdens die beurten wisselt, blijft later wisselen mogelijk. Schakel dit in om de kans op onjuiste taalwisselingen te verkleinen.
- `system_tool_type`: `play_keypad_touch_tone` (PlayDTMFToolConfig)
  - `suppress_turn_after_dtmf` (boolean, optional, default: false) — Als true, genereert de agent geen verdere spraak nadat DTMF-tonen zijn afgespeeld. Dit voorkomt dat de spraak van de agent IVR-systemen verstoort.
  - `use_out_of_band_dtmf` (boolean, optional, default: true) — Verstuur DTMF-tonen als out-of-band RTP-events (RFC 4733) in plaats van als in-band audio. Alleen effectief voor nummers die via een SIP trunk zijn geïmporteerd.
- `system_tool_type`: `skip_turn` (SkipTurnToolConfig)
  - `wait_timeout_secs` (double, optional, default: -1) — Seconden om na skip_turn te wachten voordat de agent een contextuele check-in genereert. De timer "Gesprek beëindigen na stilte" wordt tijdens het wachten gepauzeerd. -1 schakelt het wachten uit: na skip_turn blijft de agent stil totdat de beller spreekt, terwijl die timer blijft lopen. Alleen van toepassing op spraakgesprekken.
- `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) — Of er een bericht voor de klant moet worden afgespeeld terwijl die op overdracht wacht. Standaard is dit true voor achterwaartse compatibiliteit.
- `system_tool_type`: `voicemail_detection` (VoicemailDetectionToolConfig)
  - `voicemail_message` (string, optional, nullable) — Optioneel bericht om achter te laten op de voicemail wanneer deze wordt gedetecteerd. Als dit niet wordt opgegeven, wordt het gesprek onmiddellijk beëindigd wanneer voicemail wordt gedetecteerd. Ondersteunt dynamische variabelen (bijv. \{\{system\_\_time}}, \{\{system\_\_call\_duration\_secs}}, \{\{custom\_variable}}).

### WebhookToolApiSchemaConfig-Output

- `url` (string, required) — De URL waarnaar de webhook wordt verzonden. Kan path parameters bevatten, bijvoorbeeld [https://example.com/agents/\{agent\_id}](https://example.com/agents/\{agent_id})
- `request_headers` (map from string to WebhookToolApiSchemaConfigOutputRequestHeaders, optional) — Headers die in de aanvraag moeten worden opgenomen
- `method` (enum, optional, default: GET) — De HTTP-methode die voor de webhook moet worden gebruikt
  - Allowed values: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`
- `path_params_schema` (map from string to LiteralJsonSchemaProperty, optional) — Schema voor eventuele padparameters. De sleutels moeten overeenkomen met de placeholders in de URL.
- `query_params_schema` (QueryParamsJsonSchema-Output, optional, nullable) — Schema voor eventuele queryparameters. Deze worden als queryparameters aan het einde van de URL toegevoegd. Let op: eigenschappen in een queryparameter moeten allemaal letterlijke typen zijn
- `request_body_schema` (ObjectJsonSchemaProperty-Output, optional, nullable) — Schema voor eventuele bodyparameters. Wordt gebruikt voor POST/PATCH/PUT-requests. Het schema moet een object zijn dat als JSON-body wordt verzonden
- `response_body_schema` (ObjectJsonSchemaProperty-Output, optional, nullable) — Schema dat de verwachte structuur van de responsebody beschrijft. Alleen voor documentatie; niet beschikbaar voor de LLM.
- `response_filter` (ResponseFilter, optional, nullable) — Optioneel allowlistfilter dat op het antwoord wordt toegepast voordat de LLM het ziet, zodat grote antwoorden de context niet vervuilen. Standaard wordt het volledige antwoord gebruikt.
- `content_type` (enum, optional, default: application/json) — Contenttype voor de requestbody. Alleen van toepassing op POST/PUT/PATCH-requests.
  - Allowed values: `application/json`, `application/x-www-form-urlencoded`
- `auth_resolved_params` (list of string, optional) — URL-placeholders die worden opgelost vanuit de auth connection (bijvoorbeeld geheimen die via UrlSecretAuthConnection worden ingevoegd) in plaats van vanuit path_params_schema.
- `auth_connection` (WebhookToolApiSchemaConfigOutputAuthConnection, optional, nullable) — Optionele authverbinding voor authenticatie bij deze webhook

### UnitTestToolCallParameter

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

### ObjectJsonSchemaPropertyOutput

### RequiredConstraints

Wrapper voor anyOf/allOf-compositiebeperkingen die gelden voor verplichte velden.

- `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) — Definieert of TTS-clientoverschrijvingen moeten worden overgedragen naar de doorverbonden agent.
- `preserve_voice_settings` (boolean, optional, default: false) — Definieert of de basisstem, het TTS-model en de steminstellingen moeten worden overgedragen naar de doorverbonden agent.

### PhoneNumberTransfer

- `transfer_destination` (PhoneNumberTransferTransferDestination, required)
- `condition` (string, required)
- `custom_sip_headers` (list of PhoneNumberTransferCustomSipHeadersItems, optional) — Aangepaste SIP-headers die moeten worden opgenomen bij het doorverbinden van het gesprek. Elke header kan een statische waarde of een verwijzing naar een dynamische variabele zijn.
- `transfer_type` (enum, optional, default: conference)
  - Allowed values: `blind`, `conference`, `sip_refer`
- `sip_refer_play_dialtone` (boolean, optional, default: true) — Wanneer True, wordt op het oorspronkelijke gesprekstraject een beltoon afgespeeld terwijl een SIP REFER-transfer wordt voltooid. De toon wordt via RTP doorgegeven aan de SIP-peer die de REFER uitvoert, dus schakel dit uit als het ontvangende systeem (bijvoorbeeld een SBC of contactcenter) deze niet mag horen. Wanneer dit is uitgeschakeld, hoort de beller stilte totdat de transfer is voltooid. Alleen voor SIP REFER-transfers.
- `uui` (UUITransferConfig, optional, nullable) — User-to-User Information (RFC 7433) om aan SIP REFER-transfers toe te voegen. Draagt oproepcontext, zoals CRM-identificatiecodes of de reden voor escalatie, over de transfergrens heen.
- `post_dial_digits` (PhoneNumberTransferPostDialDigits, optional, nullable) — DTMF-cijfers die moeten worden verzonden nadat de oproep is verbonden (bijvoorbeeld 'ww1234' voor een doorkiesnummer). Kan een statische waarde of een verwijzing naar een dynamische variabele zijn. Gebruik 'w' voor een pauze van 0,5 s. Alleen ondersteund voor Twilio-transfers.
- `phone_number` (string, optional, nullable, deprecated)

### WebhookToolApiSchemaConfigOutputRequestHeaders

### LiteralJsonSchemaProperty

Schema-eigenschap voor letterlijke JSON-typen. BELANGRIJK: slechts EEN van de volgende velden kan worden ingesteld: description (LLM levert waarde), dynamic_variable (waarde uit variabele), is_system_provided (systeem levert waarde), constant_value (vaste waarde) of is_omitted (parameter wordt weggelaten). Deze sluiten elkaar uit.

- `type` (LiteralJsonSchemaPropertyType, required)
- `description` (string, optional, default: ) — De beschrijving van de eigenschap. Wanneer deze is ingesteld, geeft de LLM de waarde op basis van deze beschrijving. Kan niet samen worden gebruikt met dynamic_variable, is_system_provided, constant_value en is_omitted.
- `enum` (list of string, optional, nullable) — List of allowed string values for string type parameters
- `is_system_provided` (boolean, optional, default: false) — Als true, wordt de waarde tijdens runtime door het systeem ingevuld. Wordt door API Integration Webhook-tools gebruikt voor templating. Kan niet tegelijk worden gebruikt met description, dynamic_variable, constant_value en is_omitted.
- `dynamic_variable` (string, optional, default: ) — De naam van de dynamische variabele die voor de waarde van deze eigenschap moet worden gebruikt. Kan niet worden gecombineerd met description, is_system_provided, constant_value en is_omitted.
- `allowed_values` (AllowedValues, optional, nullable) — Server-side afwijscontrole voor een door de LLM opgegeven waarde: de runtime wijst elke waarde buiten de toegestane set die dit object benoemt af, en de set wordt niet als enum aan de LLM getoond. Alleen ondersteund wanneer de waardebron `description` is; een combinatie met dynamic_variable, is_system_provided, constant_value of is_omitted wordt afgewezen.
- `constant_value` (LiteralJsonSchemaPropertyConstantValue, optional, nullable, default: ) — Een constante waarde voor deze eigenschap. Kan niet samen worden gebruikt met description, dynamic_variable, is_system_provided en is_omitted.
- `is_omitted` (boolean, optional, default: false) — Als true is, wordt deze parameter volledig uit de request weggelaten. Alleen geldig voor optionele parameters. Kan niet samen worden gebruikt met description, dynamic_variable, is_system_provided en constant_value.
- `allowed_values_dynamic_variable` (string, optional, default: , deprecated) — VEROUDERD: gebruik in plaats daarvan `allowed_values`. Wanneer ingesteld, levert de LLM de waarde, maar weigert de runtime elke waarde die niet voorkomt in de lijst van deze dynamische variabele (moet een JSON-array zijn zoals ["ws_alpha", "ws_beta"]). Gebruik dit om de LLM te laten kiezen uit een door de server geverifieerde set (bijv. de ID's waartoe de huidige gebruiker toegang heeft). Vereist description; kan niet samen met dynamic_variable, is_system_provided, constant_value en is_omitted worden gebruikt.

### QueryParamsJsonSchema-Output

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

### ResponseFilter

Configuratie voor het filteren van toolresponses voordat ze zichtbaar zijn voor de agent.

- `mode` (enum, optional, default: all) — Bepaalt hoe toolresponses worden gefilterd. 'all' retourneert de volledige response, 'allow' retourneert alleen opgegeven paden en 'hide_all' verbergt de volledige response.
  - Allowed values: `all`, `allow`, `hide_all`
- `filters` (list of string, optional) — Paden in puntnotatie die moeten worden opgenomen wanneer de modus 'allow' is (bijvoorbeeld ['ticket.id', 'ticket.status']).
- `content_type` ("application/json", optional, default: application/json) — Contenttype voor het filteren van responses. Alleen responses van het type 'application/json' worden gefilterd.

### WebhookToolApiSchemaConfigOutputAuthConnection

Optionele authverbinding voor authenticatie bij deze webhook

### UnitTestToolCallParameterEval

- `type`: `anything` (MatchAnythingParameterEvaluationStrategy)
- `type`: `exact` (ExactParameterEvaluationStrategy)
  - `expected_value` (string, required) — De exacte tekenreekswaarde waarmee de parameter moet overeenkomen.
- `type`: `llm` (LLMParameterEvaluationStrategy)
  - `description` (string, required) — Een beschrijving van de evaluatiestrategie voor de test.
- `type`: `regex` (RegexParameterEvaluationStrategy)
  - `pattern` (string, required) — Een regex-patroon waarmee het antwoord van de agent wordt vergeleken.

### ArrayJsonSchemaProperty-Output

- `description` (string, optional, default: )
- `dynamic_variable` (string, optional, default: ) — Wanneer ingesteld, wordt de volledige parameter tijdens runtime ingevuld vanuit deze dynamische variabele. Kan niet samen worden gebruikt met description (door de LLM aangeleverde waarde), constant_value en is_omitted.
- `constant_value` (list of any, optional, nullable) — Wanneer ingesteld, gebruikt de volledige array deze constante waarde tijdens runtime. Kan niet samen worden gebruikt met description (door de LLM aangeleverde array), dynamic_variable en is_omitted.
- `is_omitted` (boolean, optional, default: false) — Als true is, wordt deze parameter volledig uit de request weggelaten. Alleen geldig voor optionele parameters. Kan niet samen worden gebruikt met description, dynamic_variable en 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 voor arrayelementen.

### RequiredConstraint

Een set velden die allemaal aanwezig moeten zijn om aan deze beperking te voldoen.

- `required` (list of string, required)

### ProcedureVersionRef

- `procedure_id` (string, required) — Procedure-ID
- `version_id` (string, required) — Versie-ID van de procedureversie.

### ProcedureDraftRef

- `procedure_id` (string, required) — Procedure-ID
- `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) — De naam van de SIP-header (bijvoorbeeld 'X-Customer-ID')
  - `value` (string, required) — De naam van de dynamische variabele die moet worden opgelost
- `type`: `static` (CustomSIPHeader)
  - `key` (string, required) — De naam van de SIP-header (bijvoorbeeld 'X-Customer-ID')
  - `value` (string, required) — De headerwaarde

### UUITransferConfig

User-to-User Information-envelop voor SIP REFER-transfers (RFC 7433). Uitgaande payloads zijn hex-gecodeerd (de enige codering die RFC 7433 definieert). Met de protocol-discriminatoras kunnen formaten per platform (Talkdesk, Genesys, ...) via configuratie worden uitgedrukt in plaats van via verspreide transferflags. Verdere assen (ASCII-codering, headernaam, doel-/inhoudsparameters) kunnen hier worden toegevoegd zonder het transfermodel aan te passen.

- `data` (string, required) — UUI-payload om te versturen bij SIP REFER-transfers. Ondersteunt inline dynamische variabelen en wordt tijdens de transfer hex-gecodeerd.
- `protocol_discriminator` (string, optional, nullable) — Optionele protocolonderscheider van één octet (twee hexadecimale cijfers, bijv. '00'). Vereist door platforms zoals Genesys Cloud, die anders het eerste octet van de payload verwijderen. Laat niet ingesteld voor platforms zoals Talkdesk die een kale hexadecimale payload verwachten.
- `protocol_discriminator_mode` (enum, optional, default: prefix) — Hoe protocol\_discriminator moet worden toegevoegd. 'prefix' plaatst het octet vóór de hex-payload (User-to-User=XX\<hex>;encoding=hex). 'pd\_parameter' verstuurt het als afzonderlijke parameter (User-to-User=\<hex>;pd=XX;encoding=hex). Wordt genegeerd wanneer protocol\_discriminator niet is ingesteld.
  - Allowed values: `prefix`, `pd_parameter`

### PhoneNumberTransferPostDialDigits

DTMF-cijfers die moeten worden verzonden nadat de oproep is verbonden (bijvoorbeeld 'ww1234' voor een doorkiesnummer). Kan een statische waarde of een verwijzing naar een dynamische variabele zijn. Gebruik 'w' voor een pauze van 0,5 s. Alleen ondersteund voor Twilio-transfers.

- `type`: `dynamic` (PostDialDigitsDynamicVariable)
  - `value` (string, required) — De naam van de dynamische variabele die moet worden opgelost
- `type`: `static` (PostDialDigitsStatic)
  - `value` (string, required) — DTMF-cijfers die moeten worden verzonden nadat de oproep is verbonden (bijvoorbeeld 'ww1234' voor een doorkiesnummer)

### ConvAISecretLocator

Gebruikt om naar een geheim uit de secret store van de agent te verwijzen.

- `secret_id` (string, required)

### ConvAIDynamicVariable

Gebruikt om naar een dynamische variabele te verwijzen.

- `variable_name` (string, required)

### ConvAIEnvVarLocator

Gebruikt om via een label naar een omgevingsvariabele te verwijzen.

- `env_var_label` (string, required)

### LiteralJsonSchemaPropertyType

### AllowedValues

- `dynamic_variable` (string, required) — Naam van een dynamische variabele die moet worden opgelost naar een JSON-array met toegestane waarden, bijv. ["ws_alpha", "ws_beta"]. Systeemvariabelen werken alleen als ze worden opgelost naar een lijst.

### LiteralJsonSchemaPropertyConstantValue

Een constante waarde voor deze eigenschap. Kan niet samen worden gebruikt met description, dynamic_variable, is_system_provided en is_omitted.

### AuthConnectionLocator

Gebruikt om naar een auth connection uit de auth connection-store van de workspace te verwijzen.

- `auth_connection_id` (string, required)

### EnvironmentAuthConnectionLocator

Verwijst op label naar een omgevingsvariabele van het type 'auth_connection'. Tijdens runtime wordt deze omgezet naar de auth connection voor de huidige omgeving, met terugval op de standaardomgeving.

- `env_var_label` (string, required)

### ArrayJsonSchemaPropertyOutputItems

Schema voor arrayelementen.

## Examples

**Response**

```json
{
  "tools": [
    {
      "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
        }
      ]
    }
  ],
  "has_more": true,
  "next_cursor": "string"
}
```

**SDK Code**

```python
import requests

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

response = requests.get(url)

print(response.json())
```

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

	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")

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")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

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

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

```csharp
using RestSharp;

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