Switch from OpenAI Realtime to PyAI Omni
Keep the realtime mental model. Move phone-agent economics to PyAI.
Omni gives OpenAI-style realtime integration with a phone-agent-specific engine and a flat $0.05/min price. Use the native /v1/omni WebSocket or the OpenAI-compatible /v1/realtime alias, then add Trace, Recap, and managed Agents as calls move into production.
Why teams move from OpenAI Realtime
Flat minute pricing
Omni is $0.05/min all-in, so production phone calls are easy to model before they scale.
Built for telephony
Turn-taking, barge-in, and 8 kHz call audio are first-class instead of adapted from a general model API.
Production call layer
Trace, Recap, KB Context, and managed Agents sit on the same account and billing model.
Before and after
const ws = new WebSocket(
"wss://api.openai.com/v1/realtime?model=gpt-4o-realtime-preview",
["realtime", "openai-insecure-api-key." + openaiKey],
);const ws = new WebSocket(
"wss://api.pyai.com/v1/realtime?model=pyai-omni-realtime&agent_id=front_desk",
["pyai-key." + pyaiKey],
);
ws.onmessage = (e) => playAudioFrame(e.data);Migration checklist
Swap the connection
Change the base URL or WebSocket URL, pass a PyAI key, and keep the old client where the API shape is compatible.
Map models, voices, and formats
Use the table below to replace model ids, voice ids, response formats, sample rates, and auth headers without rewriting the product flow.
Replay customer traffic
Run real prompts, recordings, and phone-call samples through both systems. Compare latency, quality, completion rate, and all-in cost.
Launch with guardrails
Start on free credits or test keys, add usage alerts, then enable Trace, Recap, or managed Agents when calls need production review.
If the system you are leaving already uses OpenAI-compatible transcription, speech, or realtime APIs, start with the smallest compatible swap: base URL, key, model, and voice. The real test is whether PyAI improves cost, latency, and caller outcomes on your own traffic.
What maps to what
| OpenAI Realtime | PyAI |
|---|---|
wss://api.openai.com/v1/realtime | wss://api.pyai.com/v1/realtime?model=pyai-omni-realtime&agent_id=<id> |
Authorization: Bearer OPENAI_API_KEY | Subprotocol pyai-key.<key> or Authorization: Bearer pyai_live_... |
Model-specific audio/token pricing | $0.05/min all-in Omni pricing |
Session instructions | agent_id + your KB endpoint + tools |
Good to know
- For new integrations, use the native URL wss://api.pyai.com/v1/omni?agent_id=<id>&format=pcm16&rate=24000.
- format and rate are load-bearing on the native Omni URL.
- Trace can scan production calls at $0.05/min or as part of an enterprise package.
FAQ
Is the API identical?
Use the OpenAI-compatible realtime alias for migration, or the native Omni URL for new builds. Some event details differ, so verify with the docs before production.
Why switch if I already use OpenAI?
PyAI is narrower: phone-agent latency, telephony audio, predictable per-minute pricing, and call compliance tooling.
Move your realtime voice agent to $0.05/min.
Start free with $50 in credits and 10,000 Hear minutes every month.
No credit card - OpenAI-compatible - cancel anytime