Skip to main content
If you’re already using the OpenAI Realtime API, you can switch to Inworld with minimal code changes. Inworld supports the OpenAI Realtime API’s core session and event shapes.

What stays the same

  • Event types: session.update, conversation.item.create, response.create, streaming deltas, etc.
  • Session config: instructions, audio.input, audio.output, tools, etc.
  • OpenAI-defined client and server event shapes
  • Stream audio in and receive streaming audio out with interruption-handling enabled out-of-the-box

What changes

Tool continuation

Inworld automatically starts a follow-up response after a function_call_output by default. OpenAI clients normally send response.create themselves. Preserve that client-controlled behavior by setting:
Without this setting, do not send response.create after the tool output or you may start a duplicate response.

Inworld extensions

Inworld adds optional configuration under providerData and extension events for features such as back-channel responses and turn suggestions. These additions do not change the OpenAI-defined core event shapes.

Router

With the Inworld Realtime API you can leverage your routers to have a single voice agent dynamically handle many different user cohorts.

Custom Voices

Cloned or designed voices are usable by your realtime agents and are configurable with a session.update event.

Endpoints

Session setup

You need a session ID from your Inworld app before connecting. Pass it as the key query parameter for WebSocket.

Full reference

For event schemas and exhaustive details, see the WebSocket API reference. Review the Realtime API release notes for client-visible compatibility changes.