Live voice
Full-duplex voice sessions with OpenAI GPT-Live over a WebSocket
openai/gpt-live-1 is a full-duplex voice model that listens and speaks at once, for voice agents and live assistants. Gateway relays the OpenAI Live protocol at wss://api-gateway.merge.dev/v1/live/sessions unchanged, so the OpenAI Live event reference applies as written.
Connect
Send your Gateway key on the handshake (so connect from your server), then send session.start with the model, which goes in that event, not the URL. Wait for session.started before sending audio.
Audio travels as base64 PCM in JSON text frames. To end a session, send session.close and read until session.closed, which carries the final usage.seconds.
Delegation
Client delegation is the default: your app receives session.delegation.created and answers with session.commentary.append or session.thinking.append. With "delegation": {"type": "responses", "responses": {"model": "..."}}, OpenAI runs the backend model and streams its events as response.event. Gateway checks that your organization and key may use that model at session.start and on any session.update that changes it.
Pricing
Sessions bill per second at the route’s input_per_second rate, with no rounding to a whole minute. The billed time is OpenAI’s usage.seconds, including silence and delegated work. If your client disconnects without session.close, Gateway closes the session upstream and still bills the final duration. Backend-model tokens under Responses delegation bill separately at that model’s rates.
Reference
At a limit, Gateway asks OpenAI to finalize (so you still get session.closed with final usage), then closes with 4408. A refused handshake (invalid key, exhausted budget, rate limit) returns an HTTP status; a refusal after the socket opens sends an error event, then closes with 4000 plus the HTTP status:
WebRTC, SIP telephony, sideband connections, session forking, and recording download aren’t available through Gateway.