# Inworld AI > Inworld AI provides APIs for building voice AI applications: text-to-speech (TTS), speech-to-text (STT), realtime speech-to-speech, and LLM routing across providers. - Base URL: `https://api.inworld.ai` - Authentication: API key via `Authorization: Basic ` header. Get your key at [platform.inworld.ai](https://platform.inworld.ai). - All endpoints accept and return JSON unless otherwise noted. Audio endpoints return binary PCM/WAV/MP3. - For full content of all documentation pages, see [llms-full.txt](https://docs.inworld.ai/llms-full.txt). ## Get Started - [Hello Inworld](https://docs.inworld.ai/introduction.md): Overview of Inworld products and quickstart links - [TTS Quickstart](https://docs.inworld.ai/quickstart-tts.md): Make your first TTS API call - [STT Quickstart](https://docs.inworld.ai/stt/quickstart.md): Send audio and get a transcript back - [Realtime API Quickstart](https://docs.inworld.ai/realtime/quickstart-websocket.md): Build a voice agent with WebSocket streaming - [Router Quickstart](https://docs.inworld.ai/router/quickstart.md): Create your first LLM Router request ## Text-to-Speech (TTS) - [Intro to TTS](https://docs.inworld.ai/tts/tts.md): Convert text to speech using Inworld's TTS API with low-latency streaming and voice cloning - [TTS Models](https://docs.inworld.ai/tts/tts-models.md): Compare TTS models (TTS-1.5 Turbo, Flash) by latency, quality, and supported languages - [Generating Audio](https://docs.inworld.ai/tts/capabilities/generating-audio.md): Choose voices, languages, and audio formats (MP3, PCM, WAV) for TTS output - [Synthesize Speech](https://docs.inworld.ai/tts/synthesize-speech.md): Send text to the TTS REST API and receive a complete audio file in one response - [Streaming Synthesis](https://docs.inworld.ai/tts/synthesize-speech-streaming.md): Stream TTS audio chunks over HTTP for low-latency playback as they are generated - [WebSocket Synthesis](https://docs.inworld.ai/tts/synthesize-speech-websocket.md): Stream TTS over WebSocket for lowest-latency, bidirectional audio generation - [Voice Cloning](https://docs.inworld.ai/tts/voice-cloning.md): Clone any voice from an audio sample using the Inworld API - [Voice Design](https://docs.inworld.ai/tts/voice-design.md): Generate a custom voice from a text prompt describing the desired vocal style - [Voice Tags](https://docs.inworld.ai/tts/capabilities/voice-tags.md): Filter and search voices by metadata tags like gender, accent, and age - [Pause Controls](https://docs.inworld.ai/tts/capabilities/pause-controls.md): Add pauses to TTS output with SSML break tags - [Custom Pronunciation](https://docs.inworld.ai/tts/capabilities/custom-pronunciation.md): Control word pronunciation with inline IPA phoneme notation in TTS input - [Timestamps](https://docs.inworld.ai/tts/capabilities/timestamps.md): Get word- and character-level timing data from TTS for captions and lipsync - [Integrations](https://docs.inworld.ai/tts/integrations.md): Use Inworld TTS with LiveKit, Twilio, Pipecat, and other voice platforms ## Speech-to-Text (STT) - [STT Overview](https://docs.inworld.ai/stt/overview.md): Transcribe audio to text with Inworld's Speech-to-Text API (multi-provider, single endpoint) - [STT Quickstart](https://docs.inworld.ai/stt/quickstart.md): Get started with speech transcription - [Voice Profiles](https://docs.inworld.ai/stt/voice-profiles.md): Identify speaker characteristics (age, gender, accent) alongside transcription ## Realtime API - [Realtime Overview](https://docs.inworld.ai/realtime/overview.md): Build voice agents with low-latency speech-to-speech over WebSocket or WebRTC - [WebSocket Quickstart](https://docs.inworld.ai/realtime/quickstart-websocket.md): Build a voice agent with mic input and audio playback over WebSocket in minutes - [WebRTC Quickstart](https://docs.inworld.ai/realtime/quickstart-webrtc.md): Build a browser-based voice agent using WebRTC with automatic echo cancellation - [WebSocket Connection](https://docs.inworld.ai/realtime/connect/websocket.md): Connect to the Realtime API over WebSocket and stream bidirectional audio/text events - [WebRTC Connection](https://docs.inworld.ai/realtime/connect/webrtc.md): Connect via WebRTC for browser-native low-latency audio with JSON events on the data channel - [Using Realtime Models](https://docs.inworld.ai/realtime/usage/using-realtime-models.md): Set LLM model, voice, audio format, and tool use for Realtime API sessions - [Managing Conversations](https://docs.inworld.ai/realtime/usage/managing-conversations.md): Manage conversation history, context window, and turn-taking in Realtime sessions - [OpenAI Migration](https://docs.inworld.ai/realtime/openai-migration.md): Switch from OpenAI's Realtime API to Inworld with minimal code changes ## LLM Router - [Router Introduction](https://docs.inworld.ai/router/introduction.md): Route LLM requests across providers (OpenAI, Anthropic, Google) with fallbacks and cost optimization - [Router Quickstart](https://docs.inworld.ai/router/quickstart.md): Make your first LLM Router API call and route a chat completion request - [Core Concepts](https://docs.inworld.ai/router/core-concepts/overview.md): Understand routers, routes, and variants — the building blocks of request routing - [Provider Routing](https://docs.inworld.ai/router/capabilities/provider-routing.md): Failover between providers (e.g., Azure OpenAI → OpenAI) for the same model - [Conditional Routing](https://docs.inworld.ai/router/capabilities/conditional-routing.md): Route requests to different models based on CEL expressions and request metadata - [Traffic Splitting](https://docs.inworld.ai/router/capabilities/traffic-splitting.md): A/B test models by splitting traffic across variants with percentage-based weights - [Caching](https://docs.inworld.ai/router/capabilities/caching.md): Reduce LLM costs by caching repeated system prompts and context across requests - [Text Chat](https://docs.inworld.ai/router/capabilities/text-chat.md): Send chat completion requests through the Router with OpenAI-compatible format - [Web search](https://docs.inworld.ai/router/capabilities/web-search.md): Ground LLM responses with real-time web search results via the Router API - [Prompt Compression](https://docs.inworld.ai/router/capabilities/prompt-compression.md): Reduce token usage by compressing long messages before sending them to the LLM - [LLM + TTS](https://docs.inworld.ai/router/guides/llm-plus-tts.md): Chain LLM text generation and TTS audio output in a single API call - [OpenAI Compatibility](https://docs.inworld.ai/router/openai-compatibility.md): Use Inworld Router as a drop-in replacement for the OpenAI SDK (change base URL only) - [Anthropic Compatibility](https://docs.inworld.ai/router/anthropic-compatibility.md): Use Inworld Router with the Anthropic SDK and Claude models via base URL swap - [Request-Level Routing](https://docs.inworld.ai/router/capabilities/request-level.md): Specify model and provider per-request without creating a router config - [Claude Code](https://docs.inworld.ai/router/guides/claude-code.md): Configure Claude Code to route API requests through Inworld Router - [Data Integrations](https://docs.inworld.ai/router/data-integrations/overview.md): Export Router metrics to your analytics platform (BigQuery, Mixpanel, etc.) ## API Reference - [API Introduction](https://docs.inworld.ai/api-reference/introduction.md): Authentication, base URLs, and conventions - [Rate Limits](https://docs.inworld.ai/resources/rate-limits.md): API rate limiting policies - [Synthesize Speech](https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech.md): POST /v1/tts/synthesize - [Streaming Synthesis](https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-stream.md): POST /v1/tts/synthesize:stream - [WebSocket TTS](https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/synthesize-speech-websocket.md): WebSocket /v1/tts/synthesize:websocket - [List TTS Voices](https://docs.inworld.ai/api-reference/ttsAPI/texttospeech/list-voices.md): GET /v1/tts/voices - [Clone Voice](https://docs.inworld.ai/api-reference/voiceAPI/voiceservice/clone-voice.md): POST /v1/voices/clone - [Design Voice](https://docs.inworld.ai/api-reference/voiceAPI/voiceservice/design-voice.md): POST /v1/voices/design - [Publish Voice](https://docs.inworld.ai/api-reference/voiceAPI/voiceservice/publish-voice.md): POST /v1/voices/publish - [List Voices](https://docs.inworld.ai/api-reference/voiceAPI/voiceservice/list-voices.md): GET /v1/voices - [Get Voice](https://docs.inworld.ai/api-reference/voiceAPI/voiceservice/get-voice.md): GET /v1/voices/{id} - [Update Voice](https://docs.inworld.ai/api-reference/voiceAPI/voiceservice/update-voice.md): PATCH /v1/voices/{id} - [Delete Voice](https://docs.inworld.ai/api-reference/voiceAPI/voiceservice/delete-voice.md): DELETE /v1/voices/{id} - [Transcribe](https://docs.inworld.ai/api-reference/sttAPI/speechtotext/transcribe.md): POST /v1/stt/transcribe - [Transcribe WebSocket](https://docs.inworld.ai/api-reference/sttAPI/speechtotext/transcribe-stream-websocket.md): WebSocket /v1/stt/transcribe:stream - [Realtime WebSocket](https://docs.inworld.ai/api-reference/realtimeAPI/realtime/realtime-websocket.md): WebSocket /v1/realtime - [Realtime WebRTC](https://docs.inworld.ai/api-reference/realtimeAPI/realtime/realtime-webrtc.md): POST /v1/realtime/webrtc - [Chat Completions](https://docs.inworld.ai/api-reference/routerAPI/chat-completions.md): POST /v1/chat/completions - [Create Router](https://docs.inworld.ai/api-reference/routerAPI/routerservice/create-router.md): POST /v1/routers - [List Routers](https://docs.inworld.ai/api-reference/routerAPI/routerservice/list-routers.md): GET /v1/routers - [Get Router](https://docs.inworld.ai/api-reference/routerAPI/routerservice/get-router.md): GET /v1/routers/{id} - [Update Router](https://docs.inworld.ai/api-reference/routerAPI/routerservice/update-router.md): PATCH /v1/routers/{id} - [Delete Router](https://docs.inworld.ai/api-reference/routerAPI/routerservice/delete-router.md): DELETE /v1/routers/{id} - [List Models](https://docs.inworld.ai/api-reference/modelsAPI/modelservice/list-models.md): GET /v1/models ## Optional - [TTS Best Practices: Generating Speech](https://docs.inworld.ai/tts/best-practices/generating-speech.md): Optimize TTS output quality with input formatting, voice selection, and parameter tuning - [TTS Best Practices: Latency](https://docs.inworld.ai/tts/best-practices/latency.md): Reduce time-to-first-byte and end-to-end latency in TTS streaming pipelines - [TTS Best Practices: Prompting for TTS](https://docs.inworld.ai/tts/best-practices/prompting-for-tts.md): Structure LLM output for TTS input to improve naturalness and reduce artifacts - [TTS Best Practices: Voice Cloning](https://docs.inworld.ai/tts/best-practices/voice-cloning.md): Record and prepare audio samples for accurate, high-fidelity voice clones - [TTS Best Practices: Voice Design](https://docs.inworld.ai/tts/best-practices/voice-design.md): Write effective text prompts to generate consistent, high-quality custom voices - [On-Premises TTS](https://docs.inworld.ai/tts/on-premises.md): Deploy Inworld TTS on your own infrastructure for data sovereignty and compliance - [On-Premises Benchmarking](https://docs.inworld.ai/tts/on-premises-benchmarking.md): Load test your on-prem TTS deployment and measure throughput and latency - [TTS Playground](https://docs.inworld.ai/tts/tts-playground.md): Test voices and models interactively in the browser before writing code - [Long Text Input](https://docs.inworld.ai/tts/capabilities/long-text-input.md): Convert long text (2,000+ characters) to speech by auto-chunking and stitching audio - [Zero Data Retention](https://docs.inworld.ai/tts/resources/zero-data-retention.md): Enterprise-grade data privacy with SOC 2, HIPAA, and GDPR compliance - [ElevenLabs Migration](https://docs.inworld.ai/tts/resources/elevenlabs-migration.md): Migrate ElevenLabs voice clones to Inworld TTS with the open-source batch migration tool - [OpenRouter Migration](https://docs.inworld.ai/router/migration/openrouter-to-inworld.md): Switch from OpenRouter to Inworld Router with a base URL and header change - [Anthropic Migration](https://docs.inworld.ai/router/migration/anthropic-to-inworld.md): Switch from direct Anthropic API calls to Inworld Router for failover and observability - [Billing](https://docs.inworld.ai/portal/billing.md): Billing information - [Usage](https://docs.inworld.ai/portal/usage.md): Usage tracking and monitoring - [Support](https://docs.inworld.ai/tts/resources/support.md): Support and feedback channels - [Release Notes: TTS](https://docs.inworld.ai/release-notes/tts.md): TTS changelog