Gemini 3.8 Live — Real-time audio
Live voice conversations, official prices and integration status
Gemini 3.8 Live
As of 2026-11-12, this model is not available for live sessions through APIMaster. The upstream WebSocket handshake returns 403; native Live forwarding and billing have not passed acceptance checks. Registered prices do not establish availability.
Use cases
Accepts text, audio, images and video; outputs text and audio. Suitable for voice support, language practice and live assistants with visual context. Live handles conversations; use TTS for narration and exact script reading.
Official prices
Google Standard list prices, checked on 2026-11-12. These are not current APIMaster sale prices.
| Modality | USD / million tokens |
|---|---|
| Text input | $0.75 |
| Text output (including thinking) | $4.50 |
| Audio input | $3.00 |
| Audio output | $12.00 |
| Image / video input | $1.00 |
Google direct reference example
This example connects directly to Google and requires a Google API key with Live access, not an APIMaster key. It does not imply that an APIMaster Live endpoint is currently available.
Install the SDK, set GEMINI_API_KEY in your server environment, then run the program. It saves a short spoken reply to reply.wav.
python -m pip install google-genai
python gemini_live_reference.py
import asyncio
import os
import wave
from google import genai
async def main():
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
async with client.aio.live.connect(
model="gemini-3.8-live",
config={"response_modalities": ["AUDIO"]},
) as session:
await session.send_client_content(
turns={"role": "user", "parts": [{"text": "Say hello briefly."}]},
turn_complete=True,
)
audio = bytearray()
async for message in session.receive():
content = message.server_content
if content and content.model_turn:
for part in content.model_turn.parts or []:
if part.inline_data and part.inline_data.data:
audio.extend(part.inline_data.data)
if not audio:
raise RuntimeError("The Live session returned no audio")
with wave.open("reply.wav", "wb") as output:
output.setnchannels(1)
output.setsampwidth(2)
output.setframerate(24000)
output.writeframes(audio)
asyncio.run(main())
Audio input and output
Microphone input uses 16 kHz mono signed 16-bit little-endian PCM; output uses 24 kHz PCM. Base64-encode audio and send chunks with the following message; preserve protocol field names.
{"realtimeInput":{"audio":{"mimeType":"audio/pcm;rate=16000","data":"BASE64_PCM16_AUDIO"}}}
Sessions and troubleshooting
Use the Live API WebSocket. Wait for setupComplete before sending input; turnComplete ends a turn. A handshake 403 means no connection was established, not a fingerprint mismatch. generateContent and Chat Completions do not replace a bidirectional Live session. Production acceptance must cover authentication, audio, interruption, tools, reconnects and modality-aware billing. Keep keys on the server, outside public pages and repositories.
Sources and verification date
2026-11-12 · Google: Gemini 3.8 Live · Google: Live API · Google: pricing
