Avatar Realtime opens a live streaming session where an avatar speaks in real time — useful for live agents, kiosks, and voice assistants with a face. You create a session, poll for the playback URL, and play it.
Avatar Realtime is agent-agnostic. Your application owns speech-to-text (STT) and the LLM — Avatar Realtime is only responsible for the face and voice. You stream text or audio to HeyGen, and HeyGen renders the avatar and publishes the video to an HLS stream. Because playback is plain HLS, there is no frontend dependency on LiveKit (or any other WebRTC stack): any HLS player can consume the output. This makes Avatar Realtime the right choice when you already have your own agent orchestration and just need to give it a talking face. If you want HeyGen to handle the full conversational loop — STT, LLM, and turn-taking — use Live Avatar instead.
Create a session
POST /v3/avatar-realtime — choose how to drive speech with the type field:
tts— speak a script (avatar_id,voice_id,text)audio— lip-sync to your own audio (avatar_id,audio)text_stream— stream text live, e.g. from an LLM (avatar_id,voice_id,text)
Response
Get the playback URL
GET /v3/avatar-realtime/{stream_id} — poll until the session is ready, then play the HLS url in any HLS player.
Response
Stream more text
Fortext_stream sessions, append text as it becomes available — the avatar keeps speaking on the open stream.
Limits
All three limits are adjustable — reach out to us to raise them.

