> ## Documentation Index
> Fetch the complete documentation index at: https://docs.inworld.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Intro to Realtime API (Speech-to-Speech)

Inworld's Realtime API (Speech-to-Speech) enables low-latency, speech-to-speech interactions with voice agents.

The API follows the OpenAI Realtime protocol, extended to enable additional customization.

<CardGroup cols={2}>
  <Card title="WebSocket Quickstart" icon="bolt" href="/realtime/quickstart-websocket">
    Build a voice agent with WebSocket, mic input, and audio playback.
  </Card>

  <Card title="WebRTC Quickstart" icon="phone" href="/realtime/quickstart-webrtc">
    Build a voice agent with browser-native WebRTC — no manual audio encoding.
  </Card>

  <Card title="API reference" icon="books" href="/api-reference/realtimeAPI/realtime/realtime-websocket">
    See the full event schemas for the Realtime API.
  </Card>

  <Card title="JS examples" icon="js" href="https://github.com/inworld-ai/inworld-api-examples/tree/main/realtime/js">
    JavaScript examples for the Realtime API.
  </Card>

  <Card title="Python examples" icon="python" href="https://github.com/inworld-ai/inworld-api-examples/tree/main/realtime/python">
    Python examples for the Realtime API.
  </Card>
</CardGroup>

<Note> Inworld's Realtime API is currently in [research preview](/tts/resources/support#what-do-experimental-preview-and-stable-mean). Please share any feedback with us in [Discord](https://discord.gg/inworld). </Note>

## Key Features

* **WebSocket and WebRTC transports**: Connect over [WebSocket](/realtime/connect/websocket) or [WebRTC](/realtime/connect/webrtc) with a standard event schema.
* **Automatic interruption-handling and turn-taking**: Your agent will manage conversations naturally and be resilient to user barge-in.
* **Conversational awareness**: With Realtime TTS-2, the model conditions on the audio of prior conversational turns. A line delivered after a joke lands differently than the same line delivered after bad news. The model hears the difference and adjusts how it speaks based on how it was spoken to.
* **Router support**: Utilize Realtime Router to enable a single agent to dynamically handle different user cohorts, or to facilitate A/B tests.
* **OpenAI compatibility**: Drop-in replacement for the OpenAI Realtime API with a simple [migration path](/realtime/openai-migration).

## Guides

<CardGroup cols={2}>
  <Card title="Using realtime models" icon="sliders" href="/realtime/usage/using-realtime-models">
    Configure sessions, send input, and orchestrate responses.
  </Card>

  <Card title="Managing conversations" icon="messages" href="/realtime/usage/managing-conversations">
    Session lifecycle and conversation events.
  </Card>

  <Card title="OpenAI migration" icon="right-left" href="/realtime/openai-migration">
    Step-by-step guide to switch from OpenAI to Inworld.
  </Card>
</CardGroup>

See the [API reference](/api-reference/realtimeAPI/realtime/realtime-websocket) for full event schemas.
