Integrations
Migrate from OpenAI
Migrate from the OpenAI Realtime API to Inworld's Realtime API.
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:
{
"providerData": {
"auto_tool_response": false
}
}Without this setting, do not send response.create after the tool result or you may start a duplicate response. See Tool calling for the full flow.
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
Use your routers with the Inworld Realtime API to let one voice agent handle different groups of users dynamically.
Custom Voices
Your realtime agents can use cloned or designed voices. Configure them with a session.update event.
Endpoints
| Transport | OpenAI | Inworld |
|---|---|---|
| WebSocket | wss://api.openai.com/v1/realtime?model=... | wss://api.inworld.ai/api/v1/realtime/session?key=<session-id>&protocol=realtime |
| WebRTC SDP | https://api.openai.com/v1/realtime/calls | https://api.inworld.ai/v1/realtime/calls |
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 full details, see the WebSocket API reference. Review the Realtime API release notes for client-visible compatibility changes.