# SLNG: the execution layer for voice - SLNG Documentation - [Overview](https://docs.slng.ai/concepts/whats-slng/overview.md) - [Regions](https://docs.slng.ai/concepts/whats-slng/regions.md) - [Overview](https://docs.slng.ai/concepts/execution-layer/overview.md) - [Where it sits](https://docs.slng.ai/concepts/execution-layer/where-it-sits.md) - [What it optimizes](https://docs.slng.ai/concepts/execution-layer/what-it-optimizes.md) - [Overview](https://docs.slng.ai/concepts/agents/overview.md) - [How Agents work?](https://docs.slng.ai/concepts/agents/where-they-run.md) - [Features](https://docs.slng.ai/concepts/agents/features.md) - [Overview](https://docs.slng.ai/slng-gateway.md) - [Speech to text](https://docs.slng.ai/concepts/models/speech-to-text.md) - [Text to speech](https://docs.slng.ai/concepts/models/text-to-speech.md) - [Unified API](https://docs.slng.ai/concepts/models/unified-api.md) - [Glossary](https://docs.slng.ai/concepts/glossary.md): Definitions of the terms used across the SLNG docs. - [Quickstart](https://docs.slng.ai/guides/get-started/quickstart.md) - [What's a project](https://docs.slng.ai/guides/get-started/create-a-project/whats-a-project.md) - [Create an agent](https://docs.slng.ai/guides/get-started/create-a-project/create-agent.md) - [Improve an existing agent](https://docs.slng.ai/guides/get-started/create-a-project/improve-agent.md) - [Use the API directly](https://docs.slng.ai/guides/get-started/create-a-project/api-only.md) - [Region availability](https://docs.slng.ai/guides/regions/regions-map.md) - [Using regions in the services](https://docs.slng.ai/guides/regions/using-regions-in-services.md): Pick a region when calling SLNG services. - [Noise Cancellation](https://docs.slng.ai/guides/execution-layer/stt/noise-cancellation.md) - [Context Router](https://docs.slng.ai/guides/execution-layer/llm/context-router.md) - [Regions](https://docs.slng.ai/guides/execution-layer/llm/regions.md): Context Router base URLs per region, and how caching is scoped to the region you call. - [Integration guide](https://docs.slng.ai/guides/execution-layer/llm/integration-guide.md): Call the Context Router from any OpenAI-compatible client: authentication, requests, streaming, caching, per-call variables, and BYOK configuration. - [TTS caching](https://docs.slng.ai/guides/execution-layer/tts/tts-caching.md) - [Pronunciation dictionaries](https://docs.slng.ai/guides/execution-layer/tts/pronunciation-dictionaries.md): Force a fixed spoken form for brand names, acronyms, and other terms your TTS model mispronounces. - [Listen](https://docs.slng.ai/guides/agents/configure/listen.md): Change the speech to text model and how your agent hears callers. - [Think](https://docs.slng.ai/guides/agents/configure/think.md): Set the system prompt, greeting, and language model, and tune how the agent responds. - [Agent behavior](https://docs.slng.ai/guides/agents/configure/agent-behavior.md): Describe your agent's behavior, tools, and voice. - [Speak](https://docs.slng.ai/guides/agents/configure/speak.md): Change the text to speech model and voice, and tune how quickly the agent starts talking. - [Reliability](https://docs.slng.ai/guides/agents/configure/reliability.md): Fallbacks, per-turn timeouts, and failure audio that keep a call graceful when a model step fails. - [Choose a tool](https://docs.slng.ai/guides/agents/tools-and-mcp/overview.md): Choose a tool source, decide what invokes it, and understand how it reaches an agent. - [Use built-in tools](https://docs.slng.ai/guides/agents/tools-and-mcp/built-in-tools.md): Add call control, runtime context, and preconfigured templates to an agent. - [Create a Send SMS tool](https://docs.slng.ai/guides/agents/tools-and-mcp/send-sms-tool.md): Connect Twilio, send a test message, and publish a Send SMS tool. - [Call an external API](https://docs.slng.ai/guides/agents/tools-and-mcp/api-request-tool.md): Create an API Request tool that sends one HTTPS request to an existing service. - [Write a custom code tool](https://docs.slng.ai/guides/agents/tools-and-mcp/code-tool.md): Run typed Python logic in an isolated tool environment. - [Connect an MCP server](https://docs.slng.ai/guides/agents/tools-and-mcp/connect-with-mcp.md): Authenticate an MCP server, discover its tools, and attach one to an agent. - [Use n8n for tools](https://docs.slng.ai/guides/agents/tools-and-mcp/n8n-for-tools.md): Turn an n8n workflow into a published tool attached to your voice agents. - [Attach a tool to an agent](https://docs.slng.ai/guides/agents/tools-and-mcp/attach-to-an-agent.md): Attach a tool without losing the agent's existing tool or MCP configuration. - [Run a tool on call events](https://docs.slng.ai/guides/agents/tools-and-mcp/run-on-call-events.md): Run a supported tool automatically at a specific point in the call lifecycle. - [Connect a phone number](https://docs.slng.ai/guides/agents/telephony/overview.md): How a carrier's phone numbers reach an agent, and which connection to create first. - [Receive calls on a number](https://docs.slng.ai/guides/agents/telephony/inbound.md): Create an inbound connection so calls that arrive on your number reach an agent. - [Place calls from an agent](https://docs.slng.ai/guides/agents/telephony/outbound.md): Create an outbound connection so an agent can dial out and transfer callers to a person. - [Dispatch outbound calls](https://docs.slng.ai/guides/agents/telephony/dispatch-calls.md): Start an outbound call from the dashboard or API, pass per-call values, or process a contact list. - [Test your agent](https://docs.slng.ai/guides/agents/production/test-agent.md): Try a managed agent live from the dashboard before you connect a channel: talk to it in the browser or have it call your phone. - [Embed in website](https://docs.slng.ai/guides/agents/production/embed-in-website.md): Add a browser voice session with your agent to a web page using LiveKit and a small backend proxy. - [Download configuration](https://docs.slng.ai/guides/agents/download-configuration.md): Download a managed agent's saved configuration as JSON, from the dashboard or the API. - [Debug a call](https://docs.slng.ai/guides/agents/debug-a-call.md): Inspect an agent's calls and find where a session went wrong. - [Which models are available?](https://docs.slng.ai/guides/models/which-models-are-available.md): Find the models you can call through SLNG. - [Your first request](https://docs.slng.ai/guides/models/your-first-request.md): Call a model over HTTP: pick the model ID, send the request, read the response. - [WebSockets vs HTTP](https://docs.slng.ai/guides/models/websockets-vs-http.md): Choose the right transport for your use case. - [Unified API](https://docs.slng.ai/guides/models/unified-api.md): Call any model with the same request format. - [Bring your own key](https://docs.slng.ai/guides/models/bring-your-own-key.md): Run a model on your own provider account while the request still flows through SLNG. - [LiveKit](https://docs.slng.ai/guides/integrate/livekit.md): Add SLNG hosted speech to text and text to speech, and the SLNG Context Router, to a LiveKit agent. - [Pipecat](https://docs.slng.ai/guides/integrate/pipecat.md): Add SLNG hosted speech to text and text to speech, and the SLNG Context Router, to a Pipecat pipeline. - [ElevenLabs](https://docs.slng.ai/guides/integrate/elevenlabs.md): Route your ElevenLabs agent's language model through the SLNG context router. Speech to text and text to speech stay on ElevenLabs. - [Vapi](https://docs.slng.ai/guides/integrate/vapi.md): Route your Vapi assistant's language model through the SLNG context router. Speech to text and text to speech stay on Vapi. - [Deepgram](https://docs.slng.ai/guides/integrate/deepgram.md): Route your Deepgram Voice Agent's language model through the SLNG context router. Speech to text and text to speech stay on Deepgram. - [Custom LLM](https://docs.slng.ai/guides/integrate/custom.md): Use the Context Router with an OpenAI-compatible client or agent integration. - [n8n](https://docs.slng.ai/guides/integrate/n8n.md): Use SLNG in your n8n workflows with the n8n-nodes-slng community node. - [Skills](https://docs.slng.ai/guides/integrate/skills.md): Add SLNG skills to your coding agent so it can call the SLNG API and migrate your projects. - [Usage and billing](https://docs.slng.ai/guides/usage-and-billing.md): Track spend, audio minutes, and requests across your account. - [Authentication](https://docs.slng.ai/api-reference/authentication.md): Authenticate every SLNG API request with your API key as a bearer token. - [Speech to text API](https://docs.slng.ai/api-reference/speech-to-text/overview.md): How the speech-to-text reference is organized: SLNG-hosted and provider-hosted models, each documented per protocol. - [Nova 3 (English) (HTTP)](https://docs.slng.ai/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-english-http.md): Transcribe English audio using SLNG-hosted Deepgram Nova 3. - [Nova 3 (English) (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-english-websocket.md): Stream real-time English transcripts from SLNG-hosted Deepgram Nova 3 over WebSocket with low-latency partials, finals, and speaker diarization. - [Nova 3 (Hindi) (HTTP)](https://docs.slng.ai/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-hindi-http.md): Transcribe Hindi audio using SLNG-hosted Deepgram Nova 3. - [Nova 3 (Hindi) (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-hindi-websocket.md): Stream real-time Hindi speech-to-text from SLNG-hosted Deepgram Nova 3 over WebSocket with low-latency partial and final transcripts and VAD. - [Nova 3 (Indonesian) (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-indonesian-websocket.md): Stream real-time Indonesian speech-to-text from SLNG-hosted Deepgram Nova 3 over WebSocket with low-latency partial and final transcripts and VAD. - [Nova 3 (Kannada) (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-kannada-websocket.md): Stream real-time Kannada speech-to-text from SLNG-hosted Deepgram Nova 3 over WebSocket with low-latency partial and final transcripts and VAD. - [Nova 3 (Marathi) (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-marathi-websocket.md): Stream real-time Marathi speech-to-text from SLNG-hosted Deepgram Nova 3 over WebSocket with low-latency partial and final transcripts and VAD. - [Nova 3 (Telugu) (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/slng/deepgram-nova-3/nova-3-telugu-websocket.md): Stream real-time Telugu speech-to-text from SLNG-hosted Deepgram Nova 3 over WebSocket with low-latency partial and final transcripts and VAD. - [Speechmatics Realtime v2 (Indonesian) (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/slng/speechmatics-realtime-v2/speechmatics-realtime-v2-indonesian-websocket.md): Real-time Indonesian speech-to-text from SLNG-hosted Speechmatics over WebSocket. Stream binary audio and receive partial and final transcripts with word timing, confidence, and optional diarization. - [Nova 3 (HTTP)](https://docs.slng.ai/api-reference/speech-to-text/deepgram/deepgram-nova-3/nova-3-http.md): Transcribe audio using Deepgram Nova 3 with VAD and speaker diarization. - [Nova 3 (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/deepgram/deepgram-nova-3/nova-3-websocket.md): Stream real-time speech-to-text transcripts from Deepgram Nova 3 over WebSocket with voice activity detection, speaker diarization, and partial results. - [Nova 3 Medical (HTTP)](https://docs.slng.ai/api-reference/speech-to-text/deepgram/deepgram-nova-3-medical/nova-3-medical-http.md): Transcribe medical audio using Deepgram Nova 3 Medical with specialized vocabulary. - [Nova 3 Medical (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/deepgram/deepgram-nova-3-medical/nova-3-medical-websocket.md): Stream real-time medical transcription from Deepgram Nova 3 Medical over WebSocket with healthcare-specific vocabulary, VAD, and speaker diarization. - [Gradium STT (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/gradium/gradium-stt/gradium-stt-default-websocket.md): Real-time multilingual speech-to-text via streaming WebSocket - [Reson8 STT v1 (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/reson8/reson8-stt-v1/reson8-stt-v1-websocket.md): Real-time speech-to-text transcription using Reson8 via WebSocket. Supports streaming audio with word-level timestamps, confidence scores, and partial results. - [Saaras v3 (HTTP)](https://docs.slng.ai/api-reference/speech-to-text/sarvam-ai/sarvam-ai-saaras/saaras-v3-http.md): Transcribe audio using Sarvam AI Saaras with domain-aware speech recognition for 23 languages and flexible output modes. - [Saaras v3 (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/sarvam-ai/sarvam-ai-saaras/saaras-v3-websocket.md): "Stream real-time speech-to-text transcripts from Sarvam AI Saaras v3 over WebSocket with voice activity detection across 23 Indian languages. Session configuration is provided via query parameters on the WebSocket upgrade URL: `language-code`, `mode`, `sample_rate`, `input_audio_codec`, `high_vad_s… - [Speech AI Real-time v5 (WebSocket)](https://docs.slng.ai/api-reference/speech-to-text/soniox/soniox-speech-ai-real-time-v5/speech-ai-real-time-v5-websocket.md): Stream real-time transcripts from Soniox Speech AI v5 over WebSocket with speaker diarization, language detection, and configurable endpoint detection. - [Create a chat completion](https://docs.slng.ai/api-reference/context-router/chat-completions.md): Route an OpenAI Chat Completions request. An agent ID and session ID are required, as headers (`X-Slng-Agent-Id`, `X-Slng-Session-Id`) or body fields (`slng_agent_id`, `slng_session_id`); the body field wins if both are sent. - [Create a response (OpenAI Responses protocol)](https://docs.slng.ai/api-reference/context-router/responses.md): Route an OpenAI Responses request. Uses `input` and `instructions`; returns an `output` array. Additional Responses fields pass through. - [Text to speech API](https://docs.slng.ai/api-reference/text-to-speech/overview.md): How the text-to-speech reference is organized: SLNG-hosted and provider-hosted models, each documented per protocol. - [Aura 2 (English) (HTTP)](https://docs.slng.ai/api-reference/text-to-speech/slng/deepgram-aura-2/aura-2-english-http.md): Synthesize English speech using SLNG-hosted Deepgram Aura 2. - [Aura 2 (English) (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/slng/deepgram-aura-2/aura-2-english-websocket.md): Stream low-latency conversational English text-to-speech from SLNG-hosted Deepgram Aura 2 over WebSocket, optimized for production voice agents. - [Fish TTS S2.1 Pro (HTTP)](https://docs.slng.ai/api-reference/text-to-speech/slng/fish-tts-2-1-pro/fish-tts-2-1-pro-http.md): Synthesize speech with SLNG-hosted Fish TTS 2.1 Pro in a single HTTP request. The response is binary audio in the format set by `format` (MP3 by default). - [Fish TTS S2.1 Pro (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/slng/fish-tts-2-1-pro/fish-tts-2-1-pro-websocket.md): Stream speech synthesis from SLNG-hosted Fish TTS 2.1 Pro over a native MessagePack WebSocket. Open the session with a start frame carrying voice and audio settings, send text frames as input arrives, then flush or stop to finish; the server streams back binary audio chunks and a finish frame when s… - [Cartesia Sonic 3 (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/cartesia/cartesia-sonic-3/cartesia-sonic-3-websocket.md): Stream low-latency speech synthesis from Cartesia Sonic 3 over WebSocket with a multilingual catalog of voices and context-aware controls. - [Cartesia Sonic 3.5 (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/cartesia/cartesia-sonic-3-5/cartesia-sonic-3-5-websocket.md): Stream low-latency speech synthesis from Cartesia Sonic 3.5 over WebSocket with a multilingual catalog of voices and context-aware controls. - [Aura 2 (HTTP)](https://docs.slng.ai/api-reference/text-to-speech/deepgram/deepgram-aura-2/aura-2-http.md): Synthesize speech using Deepgram Aura 2 for conversational voice agents. - [Aura 2 (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/deepgram/deepgram-aura-2/aura-2-websocket.md): Stream low-latency conversational text-to-speech from Deepgram Aura 2 over WebSocket as raw binary frames, optimized for ultra-low-latency voice agents. - [Fish Audio S2 Pro (HTTP)](https://docs.slng.ai/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-pro/fish-audio-tts-s2-pro-http.md): Synthesize speech with Fish Speech S2 Pro over one-shot HTTP. Returns binary audio in the requested format. MessagePack requests may include inline reference audio for voice cloning. - [Fish Audio S2 Pro (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-pro/fish-audio-tts-s2-pro-websocket.md): Stream speech synthesis from Fish Speech S2 Pro over a native MessagePack WebSocket. Send a start frame followed by text frames; receive binary audio chunks. - [Fish Audio S2.1 Pro (HTTP)](https://docs.slng.ai/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-1-pro/fish-audio-tts-s2-1-pro-http.md): Synthesize speech with Fish Speech S2.1 Pro over one-shot HTTP. Returns binary audio in the requested format. MessagePack requests may include inline reference audio for voice cloning. - [Fish Audio S2.1 Pro (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/fish-audio/fish-audio-tts-s2-1-pro/fish-audio-tts-s2-1-pro-websocket.md): Stream speech synthesis from Fish Speech S2.1 Pro over a native MessagePack WebSocket. Send a start frame followed by text frames; receive binary audio chunks. - [Gradium TTS (HTTP)](https://docs.slng.ai/api-reference/text-to-speech/gradium/gradium-tts/gradium-tts-default-http.md): Real-time multilingual text-to-speech with streaming WebSocket and one-shot HTTP synthesis - [Gradium TTS (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/gradium/gradium-tts/gradium-tts-default-websocket.md): Real-time multilingual text-to-speech with streaming WebSocket and one-shot HTTP synthesis - [Kugel 2 (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/kugelaudio/kugel-2/kugel-2-websocket.md): Stream high-quality speech synthesis from KugelAudio Kugel 2 over WebSocket with expressiveness controls and SLNG's unified TTS protocol. - [Murf Falcon (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/murf/murf-falcon/murf-falcon-websocket.md): Stream high-quality multilingual speech synthesis from Murf Falcon over WebSocket with selectable encodings, sample rates, and SLNG's unified TTS protocol. - [Bulbul v3 (HTTP)](https://docs.slng.ai/api-reference/text-to-speech/sarvam-ai/sarvam-ai-bulbul-v3/bulbul-v3-http.md): Synthesize speech using Sarvam AI Bulbul with high-quality multilingual TTS for Indian languages and 30+ speaker voices. - [Bulbul v3 (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/sarvam-ai/sarvam-ai-bulbul-v3/bulbul-v3-websocket.md): Stream multilingual Indian-language speech from Sarvam AI Bulbul v3 over WebSocket with 30+ speaker voices and SLNG's unified low-latency TTS protocol. - [Soniox TTS v1 (HTTP)](https://docs.slng.ai/api-reference/text-to-speech/soniox/soniox-tts-v1/soniox-tts-v1-http.md): Real-time text-to-speech with streaming WebSocket and one-shot HTTP synthesis - [Soniox TTS v1 (WebSocket)](https://docs.slng.ai/api-reference/text-to-speech/soniox/soniox-tts-v1/soniox-tts-v1-websocket.md): Stream real-time speech synthesis from Soniox TTS v1 over WebSocket with low-latency incremental audio output and SLNG's unified TTS protocol. - [Create pronunciation dictionary](https://docs.slng.ai/api-reference/text-to-speech/slng/pronunciation-dictionaries/create-pronunciation-dictionary-http.md): Create a reusable pronunciation dictionary for TTS rewrite rules. - [List pronunciation dictionaries](https://docs.slng.ai/api-reference/text-to-speech/slng/pronunciation-dictionaries/list-pronunciation-dictionaries-http.md): List pronunciation dictionaries for the authenticated organization. - [Get pronunciation dictionary](https://docs.slng.ai/api-reference/text-to-speech/slng/pronunciation-dictionaries/get-pronunciation-dictionary-http.md): Read one pronunciation dictionary by name from the authenticated organization. - [Delete pronunciation dictionary](https://docs.slng.ai/api-reference/text-to-speech/slng/pronunciation-dictionaries/delete-pronunciation-dictionary-http.md): Delete one pronunciation dictionary by name from the authenticated organization. - [List agents](https://docs.slng.ai/api-reference/agents/list-agents.md): List all voice agents for your organisation. - [Create agent](https://docs.slng.ai/api-reference/agents/create-agent.md): Create a new voice agent. - [Import agent](https://docs.slng.ai/api-reference/agents/import-agent.md): Create a new voice agent from an agent configuration document. - [Get agent](https://docs.slng.ai/api-reference/agents/get-agent.md): Get a single voice agent by ID. - [Update agent (partial)](https://docs.slng.ai/api-reference/agents/update-agent-partial.md): Partially update a voice agent. Shared tool and MCP attachments cannot be changed with PATCH; download the full config and use PUT instead. - [Replace agent](https://docs.slng.ai/api-reference/agents/replace-agent.md): Replace a voice agent, including its complete shared tool and MCP attachment lists. - [Delete agent](https://docs.slng.ai/api-reference/agents/delete-agent.md): Soft-delete a voice agent. - [Download agent config](https://docs.slng.ai/api-reference/agents/download-agent-config.md): Download the agent's current configuration as a canonical JSON config document. - [List SIP trunk options](https://docs.slng.ai/api-reference/agents/list-sip-trunk-options.md): List the organisation's inbound and outbound SIP trunks as assignment options for this agent. Each option reports whether it is currently selectable and, when it is not, the reason (for example, the trunk is inactive or already assigned to another agent). - [Duplicate agent](https://docs.slng.ai/api-reference/agents/duplicate-agent.md): Create a server-side copy of an existing voice agent. - [List agent versions](https://docs.slng.ai/api-reference/versions/list-agent-versions.md): List configuration versions for a voice agent (paginated, newest first). - [Get agent version](https://docs.slng.ai/api-reference/versions/get-agent-version.md): Get one version including its full config document. - [Update version label](https://docs.slng.ai/api-reference/versions/update-version-label.md): Set or clear a version's label. The label is the only mutable field on a version; the configuration itself is immutable. - [Download version config](https://docs.slng.ai/api-reference/versions/download-version-config.md): Download the config document recorded for this version as a JSON file attachment (`*-v{version_number}.agent.json`), in the same canonical format as the current-config download. The `ETag` header carries the config content hash; send it back in `If-None-Match` to receive `304 Not Modified`. - [Preview version restore](https://docs.slng.ai/api-reference/versions/preview-version-restore.md): Compute what restoring this version would change, without applying anything. - [Accept version restore](https://docs.slng.ai/api-reference/versions/accept-version-restore.md): Apply a previously previewed restore. The hashes bind the acceptance to the exact preview that was reviewed; if the agent, its resources, or the name policy changed since the preview, the request fails with a conflict and a new preview is required. A successful restore records a new version with sou… - [Dispatch call](https://docs.slng.ai/api-reference/calls/dispatch-call.md): Dispatch an outbound call for a voice agent. - [List calls](https://docs.slng.ai/api-reference/calls/list-calls.md): List calls for a voice agent (paginated). - [Export calls (CSV)](https://docs.slng.ai/api-reference/calls/export-calls-csv.md): Export calls for a voice agent as a CSV file download. Supports the same filters as the call list. The export is not paginated; all matching calls are streamed. - [Get call](https://docs.slng.ai/api-reference/calls/get-call.md): Get details of a specific call. - [Create web session](https://docs.slng.ai/api-reference/sessions/create-web-session.md): Create a browser session for a voice agent. - [Tools](https://docs.slng.ai/api-reference/agents-resources/tools.md): Endpoints and fields for authoring, testing, publishing, and upgrading shared tools. - [List Tools](https://docs.slng.ai/api-reference/list-tools.md): List your organisation's live tools. Each item carries its latest published version and a config_valid flag. Filter by name and page with limit and offset. - [Create Tool](https://docs.slng.ai/api-reference/create-tool.md): Create an organisation tool draft from one of eight tool types. Curated capability types are rejected, the code type needs the code-tools feature, and managed singleton types (send_sms, transfer_call, end_call) return the existing instance instead of a duplicate. Returns 201 with the new draft. - [Get Tool](https://docs.slng.ai/api-reference/get-tool.md): Return one tool visible to your organisation with its current publish gates. Custom Code responses include code_src, dependencies, declared secrets, and the introspected argument schema. Curated tools are returned with source set to curated and are read-only. A tool owned by another organisation ret… - [Delete Tool](https://docs.slng.ai/api-reference/delete-tool.md): Soft-delete an organisation tool. If the tool is still referenced by an agent or an active call, returns 409 with code TOOL_DELETE_BLOCKED and a blockers array listing what holds the reference. - [Update Tool](https://docs.slng.ai/api-reference/update-tool.md): Patch fields on an organisation tool draft. Curated tools are read-only and return 403. Typed (non-code) tools reject code_src, declared_secrets, and dependencies. The tool_type is immutable, and a name already used by another tool returns 409. - [Introspect Tool](https://docs.slng.ai/api-reference/introspect-tool.md): Run a Custom Code draft in a prepared sandbox to derive and validate its argument schema. Requires the code-tools feature. Returns 409 with code PREPARING while the sandbox is still starting, and can time out. - [Run Tool](https://docs.slng.ai/api-reference/run-tool.md): Test-run a prepared draft with sample input and confirmed side effects. Context-bound tool types return 400, curated tools return 403 (duplicate one first), and non-api_request tools must be built before running or return 409. An api_request run uses optimistic concurrency and returns 409 with code… - [Publish Tool](https://docs.slng.ai/api-reference/publish-tool.md): Run the publish gates for the draft and, when they all pass, create the next immutable version. If any gate fails, returns 409 with the same PublishResult body, published set to false, and the per-gate check results. - [Duplicate Tool](https://docs.slng.ai/api-reference/duplicate-tool.md): Copy the published snapshot or current draft of a visible tool into a new organisation-owned tool. Curated capability types cannot be duplicated. Returns 201 with the new tool. - [List Tool Versions](https://docs.slng.ai/api-reference/list-tool-versions.md): List the immutable published versions of a tool in ascending version order. Page with limit and offset. - [Get Tool Version](https://docs.slng.ai/api-reference/get-tool-version.md): Return one immutable published version of a tool by its version number. - [Preview Tool Attachment Upgrade](https://docs.slng.ai/api-reference/preview-tool-attachment-upgrade.md): Preview upgrading one agent attachment to a published tool version. Returns the parameter diff, any blocking issues, and the hashes needed to accept. If the sandbox is still installing dependencies, returns 202 with a Retry-After header and preparation_state set to preparing. - [Accept Tool Attachment Upgrade](https://docs.slng.ai/api-reference/accept-tool-attachment-upgrade.md): Apply a previewed upgrade to one agent attachment. Uses optimistic concurrency, so if any preview hash no longer matches it returns 409, and a stale attachment returns 409 with code TOOL_ATTACHMENT_STALE. - [MCP servers](https://docs.slng.ai/api-reference/agents-resources/mcp-servers.md): Endpoints and fields for MCP server configuration, authentication, and tool discovery. - [List MCP Servers](https://docs.slng.ai/api-reference/list-mcp-servers.md): Return the organisation's live (not soft-deleted) MCP servers, ordered by name then id. Each item reports the capability status, when capabilities were last observed, and the discovered tool count. - [Create MCP Server](https://docs.slng.ai/api-reference/create-mcp-server.md): Register an MCP server for the organisation and schedule an immediate capability probe. The url_template, auth, and headers are validated and every referenced Vault secret must already exist. A duplicate live name returns 409. - [Get MCP Server](https://docs.slng.ai/api-reference/get-mcp-server.md): Return the full MCP server record, including its most recently discovered capabilities and tool schemas. Secret values are never exposed. - [Delete MCP Server](https://docs.slng.ai/api-reference/delete-mcp-server.md): Soft-delete the MCP server. Returns 409 with code MCP_SERVER_IN_USE and a list of blockers when the server is still referenced by an active agent or a non-terminal call. - [Update MCP Server](https://docs.slng.ai/api-reference/update-mcp-server.md): Apply a partial update. The fields you send are merged over the stored configuration, then the merged url_template, auth, headers, and Vault secret references are re-validated. Changing connection behavior resets discovered capabilities and reschedules a probe. - [Connect MCP Server](https://docs.slng.ai/api-reference/connect-mcp-server.md): Open a live connection to the MCP server and refresh its stored capabilities and tool list. Returns a ConnectResult with the connection status, round-trip latency, reported server info, protocol version, discovered tools, an event log, and any error. Secret values are scrubbed from the result. - [List Vault](https://docs.slng.ai/api-reference/list-vault.md): List every Vault entry for the authenticated organisation, ordered by name. Secret values are masked (value null, has_value true); variable values are included for authorized readers. - [Create Vault Entry](https://docs.slng.ai/api-reference/create-vault-entry.md): Create a Vault entry. Set kind to `secret` for a write-once credential whose value is never read back, or `variable` for a value readable by authorized callers. The name must be unique within the organisation; a duplicate name returns 409. Records the caller as the creator. - [Get Vault Entry](https://docs.slng.ai/api-reference/get-vault-entry.md): Fetch a single Vault entry by name. Secret values are never returned; variable values are included for authorized readers. - [Delete Vault Entry](https://docs.slng.ai/api-reference/delete-vault-entry.md): Delete a Vault entry by name. The request is refused with 409 when active or call-pinned resources still reference the entry; remove those references or end the pinned calls first. - [Rotate Vault Entry](https://docs.slng.ai/api-reference/rotate-vault-entry.md): Overwrite the stored value of a Vault entry. For a secret this is the only way the value ever changes, and it is still never read back. Rotation locks the closure of active inbound agents that reference the entry, bumps its revision, and records who rotated it and when. To change only the descriptio… - [List Vault References](https://docs.slng.ai/api-reference/list-vault-references.md): List the resources that reference a Vault entry. Each item reports where the reference sits and whether it blocks deletion of the entry. - [Update Vault Description](https://docs.slng.ai/api-reference/update-vault-description.md): Update only the description of a Vault entry. This never touches the stored value and does not lock dependent resources. An empty or whitespace-only description is stored as null. To change the value, use the rotate endpoint instead. - [List client models](https://docs.slng.ai/api-reference/agents-resources/client-models/list.md): List the client models registered in your organisation. - [Create a client model](https://docs.slng.ai/api-reference/agents-resources/client-models/create.md): Register a custom model that runs on your own provider account. - [Get a client model](https://docs.slng.ai/api-reference/agents-resources/client-models/get.md): Return one client model owned by your organisation, including its fallback cascade. A model owned by another organisation returns 404. Credential values are never returned; the `has_api_key`, `has_vertex_credentials`, and `has_aws_credentials` flags report whether each secret is stored. - [Update a client model](https://docs.slng.ai/api-reference/agents-resources/client-models/update.md): Update one client model owned by your organisation. Send the fields you want to change (at least one is required); omitted fields keep their stored values. A model owned by another organisation returns 404. The write-only `api_key`, `vertex_credentials`, and `aws_credentials` fields overwrite the st… - [Delete a client model](https://docs.slng.ai/api-reference/agents-resources/client-models/delete.md): Delete one client model owned by your organisation and return status 204. A model owned by another organisation returns 404. - [Unified STT (HTTP)](https://docs.slng.ai/api-reference/unified-api/slng/unmute-stt-bridge/unmute-stt-bridge-http.md): Transcribe audio via SLNG's native WebSocket protocol bridge. The model_variant path parameter specifies the target STT model (e.g., deepgram/nova:3, slng/deepgram/nova:3-en). - [Unified STT (WebSocket)](https://docs.slng.ai/api-reference/unified-api/slng/unmute-stt-bridge/unmute-stt-bridge-websocket.md): Stream audio to any SLNG-supported STT model over the unified WebSocket protocol with init, audio, finalize, partial, and final transcript messages. - [Unified TTS (HTTP)](https://docs.slng.ai/api-reference/unified-api/slng/unmute-tts-bridge/unmute-tts-bridge-http.md): Synthesize speech via SLNG's native WebSocket protocol bridge. The model_variant path parameter specifies the target TTS model (e.g., deepgram/aura:2). - [Unified TTS (WebSocket)](https://docs.slng.ai/api-reference/unified-api/slng/unmute-tts-bridge/unmute-tts-bridge-websocket.md): Stream synthesized audio from any SLNG-supported TTS model over the unified WebSocket protocol with init, text, flush, and binary audio frames. - [List catalog models](https://docs.slng.ai/api-reference/catalog/list-catalog-models.md): List the models available in the SLNG catalog. Supports filtering by service type, provider, region, language, use case, capability, and protocol, plus full-text search and pagination. Authentication is optional — an API key personalizes pricing and region availability for your organisation; anonymo… - [Get a catalog model](https://docs.slng.ai/api-reference/catalog/get-a-catalog-model.md): Retrieve a single model from the SLNG catalog by its code. The code may contain slashes and colons (for example `slng/rime/arcana:3-en`). Authentication is optional — an API key personalizes pricing and region availability for your organisation. - [Get current account](https://docs.slng.ai/api-reference/account/me.md): Return the account, organization, and API key associated with the bearer token in the request. Use this to confirm which key is in use and which organization and plan tier it belongs to. - [Rate limits](https://docs.slng.ai/api-reference/rate-limits.md): How the API signals rate limits and how to handle them. - [Error codes](https://docs.slng.ai/api-reference/error-codes.md): The error shapes the API returns and what each status code means. - [All models](https://docs.slng.ai/models/catalog/all-models.md): Compare every speech model in the published SLNG catalog by capability, provider, hosting, language, and region. - [Text to speech](https://docs.slng.ai/models/catalog/text-to-speech.md): Compare text-to-speech models by provider, hosting, language coverage, region, and starting price. - [Speech to text](https://docs.slng.ai/models/catalog/speech-to-text.md): Compare speech-to-text models by provider, hosting, language coverage, region, and starting price. - [Large language models](https://docs.slng.ai/models/catalog/llm-models.md): Choose how to connect a large language model to your voice application. - [Models by region](https://docs.slng.ai/models/catalog/by-region.md): Find speech models by the geographic availability published in the model catalog. - [Models by language](https://docs.slng.ai/models/catalog/by-language.md): Find speech models by their published language coverage. - [Cartesia Sonic 3](https://docs.slng.ai/models/voices/cartesia-sonic-3.md): Browse Cartesia Sonic 3 voices on SLNG with audio samples — low-latency multilingual TTS across 40+ languages including English, Spanish, French, and Hindi. - [Deepgram Aura](https://docs.slng.ai/models/voices/deepgram-aura.md): Browse Deepgram Aura 2 voices on SLNG with audio samples — natural conversational TTS across English, Spanish, Dutch, French, German, Italian, and Japanese. - [Fish Audio](https://docs.slng.ai/models/voices/fish-audio.md): Browse Fish Audio S2.1 Pro and S2 Pro voices on SLNG with audio samples — expressive multilingual TTS referenced by voice-model ID. - [Gradium voices](https://docs.slng.ai/models/voices/gradium.md): Browse Gradium TTS voices on SLNG with audio samples — multilingual TTS across English, Spanish, French, German, and Portuguese. - [Kugel](https://docs.slng.ai/models/voices/kugel.md): Browse KugelAudio Kugel voices on SLNG with audio samples — expressive multilingual TTS across 25+ languages including English, Hindi, and Chinese. - [Murf Falcon](https://docs.slng.ai/models/voices/murf.md): Browse Murf Falcon voices on SLNG — real-time multilingual TTS over WebSocket with English, Spanish, French, German, Italian, Hindi, and Chinese. - [Rime Arcana voices](https://docs.slng.ai/models/voices/rime-arcana.md): Browse Rime Arcana v2 and v3 voices on SLNG with audio samples and characteristics — supports English, Spanish, French, German, Arabic, and Hindi. - [Sarvam Bulbul v3](https://docs.slng.ai/models/voices/sarvam-bulbul.md): Browse Sarvam Bulbul v3 voices on SLNG — multilingual TTS for 11 Indian languages including Hindi, Tamil, Telugu, Marathi, and Indian English. - [Soniox TTS v1](https://docs.slng.ai/models/voices/soniox.md): Browse Soniox TTS v1 voices on SLNG with audio samples — real-time low-latency text-to-speech with 60+ supported languages and streaming WebSocket synthesis. - [Overview](https://docs.slng.ai/unmute.md) - [Installation](https://docs.slng.ai/untitled-page.md) - [Overview](https://docs.slng.ai/integrations/sdks/overview.md): Ways to integrate SLNG into your stack: the CLI and SDKs, agent skills, framework plugins, and voice-platform bridges. - [CLI](https://docs.slng.ai/integrations/sdks/cli.md): Install the voiceai CLI and run text to speech, speech to text, and streaming from a terminal. - [JavaScript](https://docs.slng.ai/integrations/sdks/js.md): Install voiceai-sdk on npm and call text to speech, speech to text, and streaming from Node, Bun, or Deno. - [Python](https://docs.slng.ai/integrations/sdks/python.md): Install voiceai-sdk on PyPI and call text to speech, speech to text, and streaming with sync or async clients. - [Agent skill](https://docs.slng.ai/integrations/skills/agent-skill.md): Install the slng-ai/skills pack so a coding agent can call the SLNG API: speech to text, text to speech, and voice agents. - [Integrate skill](https://docs.slng.ai/integrations/skills/integrate-skill.md): Migration skills that move an existing LiveKit, Pipecat, or custom agent onto SLNG hosted speech models and the Context Router. - [LiveKit](https://docs.slng.ai/integrations/plugins/livekit.md): The livekit-plugins-slng Python package connects LiveKit Agents to SLNG speech to text and text to speech, with failover, warm standby connections, and low-latency turn finalization. - [Pipecat](https://docs.slng.ai/integrations/plugins/pipecat.md): The pipecat-slng Python package connects a Pipecat pipeline to any SLNG speech to text or text to speech model by swapping a single model string. - [n8n](https://docs.slng.ai/integrations/plugins/n8n.md): The n8n-nodes-slng community node runs SLNG text to speech, speech to text, and voice-agent calls inside n8n workflows, plus a trigger a voice agent can call mid-call. - [Changelog](https://docs.slng.ai/changelog.md): Product updates and release notes. ## OpenAPI Specs - [me.oas](/api-reference/account/me.oas.json) - [agents.oas](/api-reference/agents/agents.oas.yaml) - [client-models.oas](/api-reference/agents/client-models.oas.yaml) - [mcp.oas](/api-reference/agents/mcp.oas.yaml) - [tools.oas](/api-reference/agents/tools.oas.yaml) - [vault.oas](/api-reference/agents/vault.oas.yaml) - [batch.oas](/api-reference/batch/batch.oas.json) - [context-router.oas](/api-reference/context-router/context-router.oas.yaml) - [bridges-cognigy.oas](/api-reference/openapi/bridges-cognigy.oas.yaml) - [bridges-jambonz.oas](/api-reference/openapi/bridges-jambonz.oas.yaml) - [bridges-unmute.oas](/api-reference/openapi/bridges-unmute.oas.yaml) - [management-slng.oas](/api-reference/openapi/management-slng.oas.yaml) - [stt-deepgram.oas](/api-reference/openapi/stt-deepgram.oas.yaml) - [stt-sarvam.oas](/api-reference/openapi/stt-sarvam.oas.yaml) - [stt-slng.oas](/api-reference/openapi/stt-slng.oas.yaml) - [tts-deepgram.oas](/api-reference/openapi/tts-deepgram.oas.yaml) - [tts-fish.oas](/api-reference/openapi/tts-fish.oas.yaml) - [tts-gradium.oas](/api-reference/openapi/tts-gradium.oas.yaml) - [tts-pronunciation-dictionaries.oas](/api-reference/openapi/tts-pronunciation-dictionaries.oas.yaml) - [tts-sarvam.oas](/api-reference/openapi/tts-sarvam.oas.yaml) - [tts-slng.oas](/api-reference/openapi/tts-slng.oas.yaml) - [tts-soniox.oas](/api-reference/openapi/tts-soniox.oas.yaml) ## AsyncAPI Specs - [bridges-cognigy.asyncapi](/api-reference/asyncapi/bridges-cognigy.asyncapi.yaml) - [bridges-jambonz.asyncapi](/api-reference/asyncapi/bridges-jambonz.asyncapi.yaml) - [bridges-unmute.asyncapi](/api-reference/asyncapi/bridges-unmute.asyncapi.yaml) - [stt-deepgram.asyncapi](/api-reference/asyncapi/stt-deepgram.asyncapi.yaml) - [stt-gradium.asyncapi](/api-reference/asyncapi/stt-gradium.asyncapi.yaml) - [stt-reson8.asyncapi](/api-reference/asyncapi/stt-reson8.asyncapi.yaml) - [stt-sarvam.asyncapi](/api-reference/asyncapi/stt-sarvam.asyncapi.yaml) - [stt-slng.asyncapi](/api-reference/asyncapi/stt-slng.asyncapi.yaml) - [stt-soniox.asyncapi](/api-reference/asyncapi/stt-soniox.asyncapi.yaml) - [tts-cartesia.asyncapi](/api-reference/asyncapi/tts-cartesia.asyncapi.yaml) - [tts-deepgram.asyncapi](/api-reference/asyncapi/tts-deepgram.asyncapi.yaml) - [tts-fish.asyncapi](/api-reference/asyncapi/tts-fish.asyncapi.yaml) - [tts-gradium.asyncapi](/api-reference/asyncapi/tts-gradium.asyncapi.yaml) - [tts-kugelaudio.asyncapi](/api-reference/asyncapi/tts-kugelaudio.asyncapi.yaml) - [tts-murf.asyncapi](/api-reference/asyncapi/tts-murf.asyncapi.yaml) - [tts-sarvam.asyncapi](/api-reference/asyncapi/tts-sarvam.asyncapi.yaml) - [tts-slng.asyncapi](/api-reference/asyncapi/tts-slng.asyncapi.yaml) - [tts-soniox.asyncapi](/api-reference/asyncapi/tts-soniox.asyncapi.yaml)