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

# Speech Engine erstellen

POST https://api.elevenlabs.io/v1/speech-engine
Content-Type: application/json

Erstellen Sie eine neue Speech-Engine-Ressource.

Reference: https://elevenlabs.io/docs/api-reference/speech-engine/create

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

### Body (application/json)

This endpoint expects a CreateSpeechEngineRequest.

- `speech_engine` (SpeechEngineConfig, required) — WebSocket-Konfiguration der Speech Engine
- `name` (string, optional, default: Speech Engine) — Name der Sprach-Engine
- `asr` (ASRConversationalConfig, optional) — ASR-Konfiguration
- `tts` (TTSConversationalConfig-Input, optional) — TTS-Konfiguration
- `turn` (BaseTurnConfig, optional) — Konfiguration der Sprecherwechselerkennung
- `vad` (VADConfig, optional) — Konfiguration für Sprachaktivitätserkennung
- `conversation` (ConversationConfig-Input, optional) — Gesprächskonfiguration (Client-Ereignisse usw.)
- `privacy` (PrivacyConfig-Input, optional) — Datenschutzeinstellungen (Aufzeichnung, Aufbewahrung, Zero-Retention-Modus)
- `call_limits` (AgentCallLimits, optional) — Gleichzeitigkeits- und tägliche Unterhaltungslimits für diese Sprach-Engine
- `language` (string, optional, default: en) — Sprache für die Sprach-Engine
- `cascade_timeout_seconds` (double, optional, default: 4) — Zeit in Sekunden, die auf eine Antwort des vorgeschalteten Speech-Engine-Endpunkts gewartet wird, bevor der Versuch abgebrochen und wiederholt wird. Muss zwischen 2 und 15 Sekunden liegen.
- `tags` (list of string, optional) — Tags zur Kategorisierung
- `overrides` (SpeechEngineConversationInitiationClientDataConfig, optional) — Einstellungen überschreiben, die der Client beim Starten der Unterhaltung festlegen kann

## Response

### 201

Erfolgreiche Antwort

- `speech_engine_id` (string, required) — Die Ressourcen-ID der Speech Engine
- `name` (string, required) — Menschenlesbarer Name für die Speech Engine
- `speech_engine` (SpeechEngineConfig, required) — WebSocket-Verbindungseinstellungen für den vorgelagerten Transkriptserver
- `asr` (ASRConversationalConfig, required) — Konfiguration der automatischen Spracherkennung
- `tts` (TTSConversationalConfig-Output, required) — Ausgabekonfiguration für Text to Speech
- `turn` (BaseTurnConfig, required) — Konfiguration der Sprecherwechselerkennung
- `vad` (VADConfig, required) — Konfiguration für Sprachaktivitätserkennung
- `conversation` (ConversationConfig-Output, required) — Einstellungen auf Gesprächsebene, einschließlich Client-Ereignissen und Dauerlimits
- `privacy` (PrivacyConfig-Output, required) — Datenschutzeinstellungen für Aufzeichnung, Aufbewahrung und den Umgang mit personenbezogenen Daten
- `call_limits` (AgentCallLimits, required) — Gleichzeitigkeits- und tägliche Unterhaltungslimits für diese Sprach-Engine
- `language` (string, required) — Von der Sprach-Engine verwendeter ISO-Sprachcode (z. B. 'en')
- `cascade_timeout_seconds` (double, required) — Zeit in Sekunden, die auf eine Antwort des vorgeschalteten Speech-Engine-Endpunkts gewartet wird, bevor der Versuch abgebrochen und wiederholt wird. Muss zwischen 2 und 15 Sekunden liegen.
- `tags` (list of string, required) — Beliebige Tags zur Kategorisierung und Filterung
- `overrides` (SpeechEngineConversationInitiationClientDataConfig, required) — Einstellungen überschreiben, die der Client beim Starten der Unterhaltung festlegen kann
- `metadata` (AgentMetadataDBModel, required) — Zeitstempel für Erstellung und Aktualisierung mit Quellinformationen
- `access_info` (ResourceAccessInfo, optional, nullable) — Die Zugriffsinformationen der Sprach-Engine für den Nutzer

## Errors

### 422 Unprocessable Entity Error

Validierungsfehler

- `detail` (list of ValidationError, optional)

## Types

### SpeechEngineConfig

- `ws_url` (string, required) — Die WebSocket-URL für den Transkriptserver
- `request_headers` (map from string to SpeechEngineConfigRequestHeaders, optional) — Header, die in die WebSocket-Verbindungsanfrage aufgenommen werden sollen

### ASRConversationalConfig

- `quality` (enum, optional, default: high) — Die Qualität der Transkription
  - Allowed values: `high`
- `provider` (enum, optional, default: scribe_realtime) — Der Anbieter des Transkriptionsdienstes
  - Allowed values: `elevenlabs`, `scribe_realtime`, `scribe_v2_turbo`
- `user_input_audio_format` (enum, optional, default: pcm_16000) — Das Format des zu transkribierenden Audios
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `keywords` (list of string, optional) — Schlüsselwörter, deren Vorhersagewahrscheinlichkeit erhöht werden soll

### TTSConversationalConfig-Input

- `model_id` (enum, optional, default: eleven_v4_turbo) — Das für TTS zu verwendende Modell
  - Allowed values: `eleven_turbo_v2`, `eleven_turbo_v2_5`, `eleven_flash_v2`, `eleven_flash_v2_5`, `eleven_multilingual_v2`, `eleven_v3_conversational`, `eleven_v4`, `eleven_v4_turbo`
- `voice_id` (string, optional, default: cjVigY5qzO86Huf0OWal) — Die für TTS zu verwendende Stimmen-ID
- `supported_voices` (list of SupportedVoice, optional) — Zusätzlich unterstützte Stimmen für den Agenten
- `expressive_mode` (boolean, optional, default: true) — Wenn aktiviert, wird der Prompt für ausdrucksstarke Audiotags angewendet. Für Nicht-v3-Modelle wird er automatisch deaktiviert.
- `suggested_audio_tags` (list of SuggestedAudioTag, optional) — Vorgeschlagene Audio-Tags für ausdrucksstärkere Sprache (für die Modelle eleven_v3 und eleven_v3_conversational). Der Agent kann weiterhin andere, hier nicht aufgeführte Tags verwenden.
- `agent_output_audio_format` (enum, optional, default: pcm_16000) — Das für TTS zu verwendende Audioformat
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `stability` (double, optional, default: 0.5) — Die Stabilität der generierten Sprache
- `speed` (double, optional, default: 1) — Die Geschwindigkeit der generierten Sprache
- `similarity_boost` (double, optional, default: 0.8) — Der Ähnlichkeits-Boost für generierte Sprache
- `text_normalisation_type` (enum, optional, default: system_prompt) — Methode zum Umwandeln von Zahlen in Wörter vor der Umwandlung von Text in Sprache. Bei SYSTEM_PROMPT wird der System-Prompt um Normalisierungsanweisungen ergänzt. Bei ELEVENLABS wird der Text nach der Generierung normalisiert, was eine leicht erhöhte Latenz verursacht.
  - Allowed values: `system_prompt`, `elevenlabs`
- `pronunciation_dictionary_locators` (list of PydanticPronunciationDictionaryVersionLocator, optional) — Die Referenzen auf Aussprachewörterbücher
- `enable_phoneme_tags` (boolean, optional, default: true) — Aktivierung der Verarbeitung von SSML-Phonem-Tags für V3-Modelle. Wenn aktiviert, werden Phonem-Tags (inline und aus Aussprachewörterbüchern) vor dem Senden an das Modell in inline-IPA geparst.
- `audio_effects` (EffectsSpec-Input, optional, nullable) — Optionale TTS-Effektspezifikation: Filtervoreinstellung, Distanz (Proximity-EQ) und Umgebung (Convolution-Reverb).
- `optimize_streaming_latency` (enum, optional, deprecated) — Veraltet: Dieses Feld hat keine Wirkung und wird ignoriert.
  - Allowed values: `0`, `1`, `2`, `3`, `4`

### BaseTurnConfig

- `turn_timeout` (double, optional, default: 7) — Maximale Wartezeit auf die Antwort des Nutzers, bevor der Nutzer erneut angesprochen wird
- `initial_wait_time` (double, optional, nullable) — Wie lange der Agent wartet, bis der Benutzer die Unterhaltung beginnt, wenn die erste Nachricht leer ist. Wenn nicht festgelegt, wird der reguläre turn_timeout verwendet.
- `silence_end_call_timeout` (double, optional, default: -1) — Maximale Zeit seit der letzten Äußerung des Nutzers, bevor der Anruf beendet wird
- `turn_eagerness` (enum, optional, default: normal) — Steuert, wie schnell der Agent antwortet. Niedrig = weniger schnell (wartet länger), Standard = Standardgeschwindigkeit, Hoch = schneller (antwortet früher)
  - Allowed values: `patient`, `normal`, `eager`
- `spelling_patience` (enum, optional, default: auto) — Steuert, ob der Agent geduldiger sein soll, wenn der Nutzer Zahlen und benannte Entitäten buchstabiert. Auto = modellbasiert, Off = nie zusätzlich warten
  - Allowed values: `auto`, `off`
- `speculative_turn` (boolean, optional, default: false) — Wenn aktiviert, beginnt die Generierung von LLM-Antworten während Stille, bevor die volle Turn-Konfidenz erreicht ist. Dies reduziert die wahrgenommene Latenz, kann aber die LLM-Kosten erhöhen.
- `retranscribe_on_turn_timeout` (boolean, optional, default: false) — Wenn aktiviert und VAD keine Sprache erkennt, wird beim Turn-Timeout versucht, das angesammelte Audio erneut zu transkribieren. Deaktiviert die Abrechnung mit Stille-Rabatt, solange die Funktion für den aktiven Agenten oder Workflow-Knoten aktiviert ist.
- `turn_model` (enum, optional, default: turn_v3) — Zu verwendende Version des Turn-Detection-Modells.
  - Allowed values: `turn_v2`, `turn_v3`
- `interruption_ignore_terms` (list of string, optional) — Liste von Begriffen, die keine Unterbrechung auslösen sollen, wenn der Nutzer sie sagt (z. B. 'gotcha', 'understood'). Verwendet exakte Groß-/Kleinschreibungsunabhängige Übereinstimmung.
- `interruption_ignore_term_languages` (list of string, optional) — Sprachcodes, für die voreingestellte Kategorien ignorierter Begriffe aktiviert wurden. Sie werden explizit gespeichert, damit die Anzeige nicht aus Begriffsüberschneidungen abgeleitet wird.
- `merge_with_default_ignore_terms` (boolean, optional, default: false) — Wenn aktiviert, werden zusätzlich zu interruption_ignore_terms die kuratierten Standardbegriffe für interruption_ignore_term_languages verwendet.
- `transcribe_on_disabled_interruptions` (boolean, optional, default: false) — Wenn Unterbrechungen deaktiviert sind, wird das Gesagte des Benutzers dennoch transkribiert, damit es in den nächsten Turn übernommen werden kann. Wenn deaktiviert, wird Benutzersprache während eines nicht unterbrechbaren Turns ignoriert und löst keinen Turn aus.

### VADConfig

### ConversationConfig-Input

- `text_only` (boolean, optional, default: false) — Wenn aktiviert, wird Audio nicht verarbeitet und nur Text verwendet. Verwenden Sie dies, um Audiokosten zu vermeiden.
- `max_duration_seconds` (integer, optional, default: 600) — Die maximale Dauer einer Unterhaltung in Sekunden
- `client_events` (list of enum, optional) — Die Ereignisse, die an den Client gesendet werden
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `file_input` (FileInputConfig, optional) — Konfiguration für Dateieingaben (Bild-/PDF-Uploads) während Unterhaltungen.
- `monitoring_enabled` (boolean, optional, default: false) — Aktiviert die Echtzeitüberwachung von Gesprächen über WebSocket
- `monitoring_events` (list of enum, optional) — Die Ereignisse, die an Monitoring-Verbindungen gesendet werden.
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `dtmf_input_settings` (DTMFInputConfig, optional, nullable) — Erfassung von DTMF-Eingaben (Tastenfeld) während Telefonanrufen konfigurieren
- `background_sound` (BackgroundSoundConfig, optional) — Konfiguration für Hintergrundgeräusche während Unterhaltungen.
- `source_attribution` (boolean, optional, default: false) — Wenn aktiviert und Inhalte der Wissensbasis vorhanden sind, wird das LLM angewiesen anzugeben, welche Quellen es verwendet hat.

### PrivacyConfig-Input

- `record_voice` (boolean, optional, default: true) — Ob das Gespräch aufgezeichnet werden soll
- `retention_days` (integer, optional, default: -1) — Die Anzahl der Tage, für die das Gespräch gespeichert wird. -1 bedeutet, dass es keine Aufbewahrungsgrenze gibt.
- `delete_transcript_and_pii` (boolean, optional, default: false) — Ob das Transkript und PII gelöscht werden sollen.
- `delete_audio` (boolean, optional, default: false) — Ob das Audio gelöscht werden soll.
- `apply_to_existing_conversations` (boolean, optional, default: false) — Ob die Datenschutzeinstellungen auf bestehende Gespräche angewendet werden sollen.
- `zero_retention_mode` (boolean, optional, default: false) — Ob der Zero-Retention-Modus aktiviert werden soll – es werden keine PII-Daten gespeichert.
- `conversation_history_redaction` (ConversationHistoryRedactionConfig, optional) — Konfiguration für die Schwärzung personenbezogener Daten in der Unterhaltungshistorie

### AgentCallLimits

- `agent_concurrency_limit` (integer, optional, default: -1) — Die maximale Anzahl gleichzeitiger Unterhaltungen. -1 bedeutet, dass kein Maximum besteht.
- `daily_limit` (integer, optional, default: 100000) — Die maximale Anzahl von Unterhaltungen pro Tag
- `bursting_enabled` (boolean, optional, default: true) — Ob Bursting aktiviert werden soll. Wenn true, darf das Parallelitätslimit des Workspaces bis zum Dreifachen des Limits überschritten werden. Bei Überschreitung des Limits werden Aufrufe zum doppelten Preis berechnet.

### SpeechEngineConversationInitiationClientDataConfig

- `first_message` (boolean, optional, default: false) — Gibt an, ob die erste Nachricht vom Client überschrieben werden kann.

### TTSConversationalConfig-Output

- `model_id` (enum, optional, default: eleven_v4_turbo) — Das für TTS zu verwendende Modell
  - Allowed values: `eleven_turbo_v2`, `eleven_turbo_v2_5`, `eleven_flash_v2`, `eleven_flash_v2_5`, `eleven_multilingual_v2`, `eleven_v3_conversational`, `eleven_v4`, `eleven_v4_turbo`
- `voice_id` (string, optional, default: cjVigY5qzO86Huf0OWal) — Die für TTS zu verwendende Stimmen-ID
- `supported_voices` (list of SupportedVoice, optional) — Zusätzlich unterstützte Stimmen für den Agenten
- `expressive_mode` (boolean, optional, default: true) — Wenn aktiviert, wird der Prompt für ausdrucksstarke Audiotags angewendet. Für Nicht-v3-Modelle wird er automatisch deaktiviert.
- `suggested_audio_tags` (list of SuggestedAudioTag, optional) — Vorgeschlagene Audio-Tags für ausdrucksstärkere Sprache (für die Modelle eleven_v3 und eleven_v3_conversational). Der Agent kann weiterhin andere, hier nicht aufgeführte Tags verwenden.
- `agent_output_audio_format` (enum, optional, default: pcm_16000) — Das für TTS zu verwendende Audioformat
  - Allowed values: `pcm_8000`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_44100`, `pcm_48000`, `ulaw_8000`
- `stability` (double, optional, default: 0.5) — Die Stabilität der generierten Sprache
- `speed` (double, optional, default: 1) — Die Geschwindigkeit der generierten Sprache
- `similarity_boost` (double, optional, default: 0.8) — Der Ähnlichkeits-Boost für generierte Sprache
- `text_normalisation_type` (enum, optional, default: system_prompt) — Methode zum Umwandeln von Zahlen in Wörter vor der Umwandlung von Text in Sprache. Bei SYSTEM_PROMPT wird der System-Prompt um Normalisierungsanweisungen ergänzt. Bei ELEVENLABS wird der Text nach der Generierung normalisiert, was eine leicht erhöhte Latenz verursacht.
  - Allowed values: `system_prompt`, `elevenlabs`
- `pronunciation_dictionary_locators` (list of PydanticPronunciationDictionaryVersionLocator, optional) — Die Referenzen auf Aussprachewörterbücher
- `enable_phoneme_tags` (boolean, optional, default: true) — Aktivierung der Verarbeitung von SSML-Phonem-Tags für V3-Modelle. Wenn aktiviert, werden Phonem-Tags (inline und aus Aussprachewörterbüchern) vor dem Senden an das Modell in inline-IPA geparst.
- `audio_effects` (EffectsSpec-Output, optional, nullable) — Optionale TTS-Effektspezifikation: Filtervoreinstellung, Distanz (Proximity-EQ) und Umgebung (Convolution-Reverb).
- `optimize_streaming_latency` (enum, optional, deprecated) — Veraltet: Dieses Feld hat keine Wirkung und wird ignoriert.
  - Allowed values: `0`, `1`, `2`, `3`, `4`

### ConversationConfig-Output

- `text_only` (boolean, optional, default: false) — Wenn aktiviert, wird Audio nicht verarbeitet und nur Text verwendet. Verwenden Sie dies, um Audiokosten zu vermeiden.
- `max_duration_seconds` (integer, optional, default: 600) — Die maximale Dauer einer Unterhaltung in Sekunden
- `client_events` (list of enum, optional) — Die Ereignisse, die an den Client gesendet werden
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `file_input` (FileInputConfig, optional) — Konfiguration für Dateieingaben (Bild-/PDF-Uploads) während Unterhaltungen.
- `monitoring_enabled` (boolean, optional, default: false) — Aktiviert die Echtzeitüberwachung von Gesprächen über WebSocket
- `monitoring_events` (list of enum, optional) — Die Ereignisse, die an Monitoring-Verbindungen gesendet werden.
  - Allowed values: `conversation_initiation_metadata`, `asr_initiation_metadata`, `ping`, `audio`, `interruption`, `user_transcript`, `tentative_user_transcript`, `agent_response`, `agent_response_correction`, `client_tool_call`, `mcp_tool_call`, `mcp_connection_status`, `agent_tool_request`, `agent_tool_response`, `agent_tool_response_full_payload`, `agent_response_metadata`, `vad_score`, `agent_chat_response_part`, `client_error`, `guardrail_triggered`, `dtmf_request`, `agent_response_complete`, `context_usage`, `internal_turn_probability`, `internal_tentative_agent_response`
- `dtmf_input_settings` (DTMFInputConfig, optional, nullable) — Erfassung von DTMF-Eingaben (Tastenfeld) während Telefonanrufen konfigurieren
- `background_sound` (BackgroundSoundConfig, optional) — Konfiguration für Hintergrundgeräusche während Unterhaltungen.
- `source_attribution` (boolean, optional, default: false) — Wenn aktiviert und Inhalte der Wissensbasis vorhanden sind, wird das LLM angewiesen anzugeben, welche Quellen es verwendet hat.

### PrivacyConfig-Output

- `record_voice` (boolean, optional, default: true) — Ob das Gespräch aufgezeichnet werden soll
- `retention_days` (integer, optional, default: -1) — Die Anzahl der Tage, für die das Gespräch gespeichert wird. -1 bedeutet, dass es keine Aufbewahrungsgrenze gibt.
- `delete_transcript_and_pii` (boolean, optional, default: false) — Ob das Transkript und PII gelöscht werden sollen.
- `delete_audio` (boolean, optional, default: false) — Ob das Audio gelöscht werden soll.
- `apply_to_existing_conversations` (boolean, optional, default: false) — Ob die Datenschutzeinstellungen auf bestehende Gespräche angewendet werden sollen.
- `zero_retention_mode` (boolean, optional, default: false) — Ob der Zero-Retention-Modus aktiviert werden soll – es werden keine PII-Daten gespeichert.
- `conversation_history_redaction` (ConversationHistoryRedactionConfig, optional) — Konfiguration für die Schwärzung personenbezogener Daten in der Unterhaltungshistorie

### AgentMetadataDBModel

- `created_at_unix_secs` (integer, required)
- `updated_at_unix_secs` (integer, required)
- `created_from` (enum, optional, default: unknown)
  - Allowed values: `cli`, `ui`, `api`, `template`, `unknown`
- `last_updated_from` (enum, optional, default: unknown)
  - Allowed values: `cli`, `ui`, `api`, `template`, `unknown`

### ResourceAccessInfo

- `is_creator` (boolean, required) — Ob der Nutzer, der die Anfrage stellt, den Agenten erstellt hat.
- `creator_name` (string, required) — Name des Erstellers des Agenten
- `creator_email` (string, required) — E-Mail-Adresse des Erstellers des Agents
- `role` (enum, required) — Die Rolle des Benutzers, der die Anfrage stellt
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional, nullable) — Die Zugriffsebene für anonyme Nutzer. Bei None ist die Ressource nicht öffentlich freigegeben.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional, nullable) — Warum der anfragende Nutzer Zugriff auf diese Ressource hat. 'creator' = der Aufrufer ist der Eigentümer. 'explicit' = der Aufrufer (oder eine seiner Workspace-Gruppen) ist zusätzlich zur workspaceweiten Gruppe „everyone“ in role_to_group_ids aufgeführt. 'workspace_default' = die workspaceweite Gruppe „everyone“ ist in role_to_group_ids aufgeführt (jedes nicht anonyme Workspace-Mitglied, einschließlich Administratoren, sieht diese Ressource). 'workspace_admin' = der Aufrufer ist Workspace-Administrator und der Administratorzugang ist der *einzige* Zugriffsweg; reserviert für Dokumente, die sonst niemand sehen kann. Ermöglicht der Benutzeroberfläche offenzulegen, warum ein Betrachter mit Administrator-Bypass ein Dokument sieht, das nicht explizit mit ihm geteilt wurde.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### ValidationError

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

### SpeechEngineConfigRequestHeaders

### SupportedVoice

- `label` (string, required)
- `voice_id` (string, required)
- `description` (string, optional, nullable)
- `language` (string, optional, nullable)
- `model_family` (enum, optional, nullable)
  - Allowed values: `turbo`, `flash`, `multilingual`, `v3_conversational`, `v4`, `v4_turbo`
- `optimize_streaming_latency` (enum, optional, nullable)
  - Allowed values: `0`, `1`, `2`, `3`, `4`
- `stability` (double, optional, nullable)
- `speed` (double, optional, nullable)
- `similarity_boost` (double, optional, nullable)

### SuggestedAudioTag

- `tag` (string, required) — Zu verwendendes Audio-Tag (für beste Leistung 1–2 Wörter, z. B. „happy“, „excited“)
- `description` (string, optional, nullable) — Optionale Beschreibung, wann dieses Tag verwendet werden soll

### PydanticPronunciationDictionaryVersionLocator

Eine Referenz, damit andere Dokumente auf ein bestimmtes Wörterbuch und dessen Version verweisen können. Dies ist eine Pydantic-Version von PronunciationDictionaryVersionLocatorDBModel. Erforderlich, um die Kompatibilität mit den übrigen Agent-Datenmodellen sicherzustellen.

- `pronunciation_dictionary_id` (string, required) — Die ID des Aussprachewörterbuchs
- `version_id` (string, required, nullable) — Die ID der Version des Aussprachewörterbuchs

### EffectsSpec-Input

Audioeffekte für generierte Sprache: ein Filter-Preset, wahrgenommene Distanz, eine Hallumgebung, ein Hintergrundgeräuschbett und Stereo-Panning. Lassen Sie alle Felder auf den Standardwerten, um unbearbeitetes Audio zu erhalten.

- `filter_preset_id` (string, optional, nullable) — ID eines Filter-Presets, das den Klang der Stimme verändert, etwa `phone` oder `old_radio`. Gültige IDs erhalten Sie mit `GET /v1/audio-effects/catalog`.
- `distance` (double, optional, default: 0) — Wie weit die sprechende Person vom Mikrofon entfernt klingt, von 0 (nah, unverändert) bis 1 (weit). Höhere Werte dämpfen tiefe und hohe Frequenzen und verschieben bei festgelegter Umgebung die Balance von der trockenen Stimme zum Hall.
- `environment_id` (string, optional, nullable) — ID einer Hallumgebung, die die Stimme in einem Raum platziert, etwa `small_room` oder `hall`. Gültige IDs erhalten Sie mit `GET /v1/audio-effects/catalog`. Hall wird in Stereo gerendert und fügt nach Ende der Sprache einen Nachhall von bis zu mehreren Sekunden hinzu.
- `background_noise_id` (string, optional, nullable) — ID eines unter die Stimme gelegten Hintergrundgeräuschbetts in Schleife, etwa `cafe` oder `keyboard`. Gültige IDs erhalten Sie mit `GET /v1/audio-effects/catalog`.
- `send_level` (double, optional, default: 1) — Wie viel der Stimme in den Hall fließt, von 0 (nichts) bis 1 (vollständig). Gilt nur, wenn `environment_id` festgelegt ist; 0 deaktiviert den Hall.
- `pan` (double, optional, default: 0) — Stereoposition der Stimme: von -1 (ganz links) über 0 (Mitte) bis 1 (ganz rechts). Nur die Stimme wird im Stereopanorama positioniert; Hall und Hintergrundgeräusche bleiben mittig.

### FileInputConfig

- `enabled` (boolean, optional, default: true) — Wenn aktiviert, können Nutzer im Chat Bilder, PDFs oder Textdateien anhängen, sofern das LLM multimodale Eingaben unterstützt.
- `max_files_in_memory` (integer, optional, default: 10) — Anzahl der zuletzt verwendeten Dateien, die während einer Unterhaltung im Speicher bleiben. Ältere Dateien werden zusammengefasst und ihr Speicher wird freigegeben.
- `max_files_per_conversation` (integer, optional, default: 10) — Gesamtzahl der Dateien, die ein Nutzer in einer Unterhaltung hochladen kann. Uploads werden pro Datei abgerechnet. Verwenden Sie -1 für kein Limit oder einen Wert >= max_files_in_memory.

### DTMFInputConfig

Konfiguration für die Erfassung von DTMF-Eingaben (Tastenfeld) während Telefonanrufen.

- `dtmf_input_timeout` (double, optional, default: 2) — Timeout in Sekunden für das Warten auf weitere DTMF-Ziffern
- `hash_terminator` (boolean, optional, default: true) — Wenn true, wird die DTMF-Eingabe durch Drücken von # sofort abgeschlossen.
- `redact_input` (boolean, optional, default: false) — Wenn true, werden die DTMF-Eingaben des Anrufers im Transkript, Gesprächsprotokoll und in der Analyse durch eine Schwärzungsmarkierung ersetzt. Ziffern, die der Agent wiederholt oder an ein Tool übergibt, sind nicht betroffen.

### BackgroundSoundConfig

- `source_type` (enum, optional, nullable) — Der Typ der Hintergrundgeräuschquelle.
  - Allowed values: `preset`
- `source_id` (enum, optional, nullable) — Kennung der Klangquelle.
  - Allowed values: `office2`, `office1`, `restaurant`, `city`, `typing`, `elevator1`, `elevator2`, `elevator3`, `elevator4`
- `volume` (double, optional, default: 0.15) — Lautstärke des Hintergrundsounds (0,01 bis 1,0).
- `crossfade_loop` (boolean, optional, default: true) — Wendet am Schleifenübergang eine Überblendung an, um hörbare Knackgeräusche bei der Wiederholung zu vermeiden.

### ConversationHistoryRedactionConfig

- `enabled` (boolean, optional, default: false) — Gibt an, ob die Schwärzung des Unterhaltungsverlaufs aktiviert ist.
- `entities` (list of enum, optional) — Die Entitäten, die aus dem Gesprächstranskript, Audio und der Analyse geschwärzt werden sollen. Verwenden Sie Typen der obersten Ebene wie „name“, „email_address“ oder Punktnotation für bestimmte Untertypen wie „name.full_name“.
  - Allowed values: `name`, `name.name_given`, `name.name_family`, `name.name_other`, `email_address`, `contact_number`, `dob`, `age`, `religious_belief`, `political_opinion`, `sexual_orientation`, `ethnicity_race`, `marital_status`, `occupation`, `physical_attribute`, `language`, `username`, `password`, `url`, `organization`, `financial_id`, `financial_id.payment_card`, `financial_id.payment_card.payment_card_number`, `financial_id.payment_card.payment_card_expiration_date`, `financial_id.payment_card.payment_card_cvv`, `financial_id.bank_account`, `financial_id.bank_account.bank_account_number`, `financial_id.bank_account.bank_routing_number`, `financial_id.bank_account.swift_bic_code`, `financial_id.financial_id_other`, `location`, `location.location_address`, `location.location_city`, `location.location_postal_code`, `location.location_coordinate`, `location.location_state`, `location.location_country`, `location.location_other`, `date`, `date_interval`, `unique_id`, `unique_id.government_issued_id`, `unique_id.account_number`, `unique_id.vehicle_id`, `unique_id.healthcare_number`, `unique_id.healthcare_number.medical_record_number`, `unique_id.healthcare_number.health_plan_beneficiary_number`, `unique_id.device_id`, `unique_id.unique_id_other`, `medical`, `medical.medical_condition`, `medical.medication`, `medical.medical_procedure`, `medical.medical_measurement`, `medical.medical_other`
- `excluded_data_collection_ids` (list of string, optional) — IDs von Datenerfassungselementen, deren extrahierte Werte nicht geschwärzt werden. Ihre Begründungen werden weiterhin geschwärzt.

### EffectsSpec-Output

Audioeffekte für generierte Sprache: ein Filter-Preset, wahrgenommene Distanz, eine Hallumgebung, ein Hintergrundgeräuschbett und Stereo-Panning. Lassen Sie alle Felder auf den Standardwerten, um unbearbeitetes Audio zu erhalten.

- `filter_preset_id` (string, required, nullable) — ID eines Filter-Presets, das den Klang der Stimme verändert, etwa `phone` oder `old_radio`. Gültige IDs erhalten Sie mit `GET /v1/audio-effects/catalog`.
- `distance` (double, required, default: 0) — Wie weit die sprechende Person vom Mikrofon entfernt klingt, von 0 (nah, unverändert) bis 1 (weit). Höhere Werte dämpfen tiefe und hohe Frequenzen und verschieben bei festgelegter Umgebung die Balance von der trockenen Stimme zum Hall.
- `environment_id` (string, required, nullable) — ID einer Hallumgebung, die die Stimme in einem Raum platziert, etwa `small_room` oder `hall`. Gültige IDs erhalten Sie mit `GET /v1/audio-effects/catalog`. Hall wird in Stereo gerendert und fügt nach Ende der Sprache einen Nachhall von bis zu mehreren Sekunden hinzu.
- `background_noise_id` (string, required, nullable) — ID eines unter die Stimme gelegten Hintergrundgeräuschbetts in Schleife, etwa `cafe` oder `keyboard`. Gültige IDs erhalten Sie mit `GET /v1/audio-effects/catalog`.
- `send_level` (double, required, default: 1) — Wie viel der Stimme in den Hall fließt, von 0 (nichts) bis 1 (vollständig). Gilt nur, wenn `environment_id` festgelegt ist; 0 deaktiviert den Hall.
- `pan` (double, required, default: 0) — Stereoposition der Stimme: von -1 (ganz links) über 0 (Mitte) bis 1 (ganz rechts). Nur die Stimme wird im Stereopanorama positioniert; Hall und Hintergrundgeräusche bleiben mittig.

### ValidationErrorLocItems

### ConvAISecretLocator

Wird verwendet, um auf ein Secret aus dem Secret-Speicher des Agenten zu verweisen.

- `secret_id` (string, required)

### ConvAIDynamicVariable

Wird verwendet, um auf eine dynamische Variable zu verweisen.

- `variable_name` (string, required)

## Examples

**Request**

```json
{
  "speech_engine": {
    "ws_url": "string"
  }
}
```

**Response**

```json
{
  "speech_engine_id": "seng_3701k3ttaq12ewp8b7qv5rfyszkz",
  "name": "My Speech Engine",
  "speech_engine": {
    "ws_url": "wss://example.com/transcript",
    "request_headers": {}
  },
  "asr": {
    "quality": "high",
    "provider": "elevenlabs",
    "user_input_audio_format": "pcm_16000",
    "keywords": []
  },
  "tts": {
    "model_id": "eleven_flash_v2",
    "voice_id": "cjVigY5qzO86Huf0OWal",
    "agent_output_audio_format": "pcm_16000",
    "stability": 0.5,
    "speed": 1,
    "similarity_boost": 0.8,
    "optimize_streaming_latency": 3
  },
  "turn": {
    "turn_timeout": 7,
    "silence_end_call_timeout": -1,
    "turn_eagerness": "normal",
    "mode": "turn"
  },
  "vad": {
    "background_voice_detection": false
  },
  "conversation": {
    "max_duration_seconds": 600,
    "client_events": [
      "audio",
      "interruption",
      "agent_response",
      "user_transcript"
    ]
  },
  "privacy": {
    "record_voice": true,
    "retention_days": -1,
    "delete_transcript_and_pii": false,
    "delete_audio": false,
    "apply_to_existing_conversations": false,
    "zero_retention_mode": false
  },
  "call_limits": {
    "agent_concurrency_limit": -1,
    "daily_limit": 100000,
    "bursting_enabled": true
  },
  "language": "en",
  "cascade_timeout_seconds": 4,
  "tags": [
    "production",
    "v1"
  ],
  "overrides": {
    "first_message": false
  },
  "metadata": {
    "created_at_unix_secs": 1714000000,
    "updated_at_unix_secs": 1714000000,
    "created_from": "api",
    "last_updated_from": "api"
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/speech-engine"

payload = { "speech_engine": { "ws_url": "string" } }
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/speech-engine';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"speech_engine":{"ws_url":"string"}}'
};

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"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/speech-engine"

	payload := strings.NewReader("{\n  \"speech_engine\": {\n    \"ws_url\": \"string\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	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/speech-engine")

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

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"speech_engine\": {\n    \"ws_url\": \"string\"\n  }\n}"

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.post("https://api.elevenlabs.io/v1/speech-engine")
  .header("Content-Type", "application/json")
  .body("{\n  \"speech_engine\": {\n    \"ws_url\": \"string\"\n  }\n}")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.elevenlabs.io/v1/speech-engine', [
  'body' => '{
  "speech_engine": {
    "ws_url": "string"
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/speech-engine");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"speech_engine\": {\n    \"ws_url\": \"string\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = ["speech_engine": ["ws_url": "string"]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/speech-engine")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

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()
```