One API for every
speech-to-speech model.
VoiceOpenRouter sits between your app and the voice model vendors. Bring one vr-sk key, get WebRTC and OpenAI-Realtime-compatible WebSocket access to every model we route — metered, interruptible, and swappable without touching your client.
One endpoint, every model
Point a LiveKit room or an OpenAI-Realtime WebSocket client at VoiceOpenRouter and switch upstream models with a metadata field — no client rewrite.
Barge-in that keeps up
Server-side VAD cancels the upstream generation and flushes the playback buffer the moment the caller speaks, so interruptions feel like a phone call.
Prepaid, metered per second
Sessions pre-authorise against a prepaid wallet and bill on a 10-second heartbeat. A drained balance disconnects the call instead of accruing debt.
Keys you can govern
Issue vr-sk keys with spend ceilings, IP allowlists, and per-model permissions. Every issue and revoke lands in an audit trail.
A session is one request away
Ask the control plane for a session token, join the room it names, and speak. The router reads the model from the room metadata, loads the matching driver, and meters the call against your prepaid balance while it runs.
Prefer the OpenAI SDK? Point its Realtime client at our /v1/realtime endpoint with the same key.
POST /v1/voice/sessions
Authorization: Bearer vr-sk-...
{"model": "xai/grok-voice-latest"}
# -> { "token": "...", "room": "...",
# "model": "xai/grok-voice-latest" }
#
# Join that room with any LiveKit client and start talking.Ready to make your first call?
Create an account, generate a key, and top up a prepaid balance.