# Realtime Avatar — realtime AI avatar API and SDK

> Realtime AI avatar API and TypeScript SDK: create a live avatar from one portrait, run full-duplex voice or video calls over LiveKit, and call your own tools mid-conversation. Metered by the second, with scoped API keys and OpenAPI for AI agents.

## What you can build with it

- TypeScript, React and React Native SDKs for realtime avatar calls
- Full-duplex conversation: interrupt, backchannel, and semantic end-of-turn
- Tool calling — your handlers, your server, no hosted function registry
- Image-only avatar creation with platform-generated idle, listening and gesture states
- Per-session usage records: start time, billable seconds, and cost
- Private API keys with configurable permissions and spend limits

## Getting started

1. Create a sandbox key — free, no card, and it is a real key against the real platform rather than a recorded demo.
2. Mint a session from your own server: your endpoint decides who may call and what the character knows.
3. Render it with the `realtime-avatar` component in the browser or on React Native.

Quickstart: https://realtimeavatar.ai/docs/quickstart · as markdown: https://realtimeavatar.ai/docs/quickstart.md

## Pricing in one line

One meter: seconds on air, with the language model, the voice and the rendering all included in that rate. Creating a character is billed separately from talking to it: $3 per avatar beyond the number your plan includes, its generated resting loop included.

Full table: https://realtimeavatar.ai/pricing.md

## Frequently asked questions

### What is Realtime Avatar?

Realtime Avatar is a developer API and SDK for putting a live character into your product on a voice or video call. You create an avatar from a single portrait, mint the session from your own server, and the platform streams that character's voice and face in realtime while your own tools run inside the conversation.

### How fast is Realtime Avatar?

Two server-side targets: 300 ms to speech and 500 ms to the first video frame. These are the baselines we design and benchmark against, measured by a warm-socket battery against the deployed stack when we run it rather than on a schedule, and no build is gated on them — so read them as the shape of the system rather than a contractual SLA. Lips are clocked to the audio stream itself, so speech cannot drift out of sync over a long session.

### How much does Realtime Avatar cost? Is it the cheapest realtime avatar API?

Sandbox is free and includes 480 credits, once per account: 8 realtime minutes if you spend them all on air, or your first avatar plus about 2 minutes of calls. Paid plans start at $9 a month for Starter (120 minutes); Developer is $24 a month for 600 minutes. One credit is one second on air, and overage runs $0.08 to $0.095 a minute — roughly $4.80 to $5.70 an hour — depending on plan. The same credit balance also pays for generating portraits and idle clips, which are billed at the model vendor's own list price with no margin added.

### Can I bring my own LLM and voice?

An external language-model endpoint requires workspace approval and a host allowlist; it is not a self-service voice-provider switch. The platform still handles speech recognition, turn taking, speech synthesis and video. Sending text to a character is not live audio passthrough: the public SDK does not provide an input for arbitrary audio from your own text-to-speech service. Confirm the supported integration and its data flow before choosing a provider.

### Can I build interactive character stories or learning experiences?

Yes. Define an original or appropriately licensed character, its speaking style and the context your server supplies for each call. Your application owns the story, source material, permissions and consequences of a user's choices. A character-driven lesson or story is an application design, not a guarantee of historical accuracy, learning outcomes or professional advice. Start with the Studio to evaluate a character, then use the SDK to integrate the experience.

### How do I continue a character conversation across calls?

Keep the character's behavior in instructions and supply relevant prior context when your server starts the next call. Your application decides what to save, what the user can inspect or delete, and which parts of a story belong in the next interaction. A new session does not automatically inherit persistent relationship memory. Use the Calls and Tool calling documentation to connect context and optional transcript delivery without treating diagnostic logs as your application's memory store.

### Can the avatar call my tools or my API mid-conversation?

Yes. You grant the session tool access when you mint it, then register the tool manifest over the live connection once it is up, and the character calls your tools during the conversation. The platform never hosts your code and there is no function registry to upload to — handlers run in your client or on your own server. A tool has 2.5 seconds to return, which is a conversational floor rather than a tunable: anything slower should acknowledge inside the deadline and deliver the real answer on screen when it lands.

### Can you interrupt the avatar while it is speaking?

Yes — every call is full duplex and there is nothing to configure. Cutting in mid-sentence stops the character, and it can acknowledge being interrupted in character. A cough or an “mm-hm” does not derail it, and the end of your turn is judged by what you said rather than by how long you have been quiet, so pausing mid-thought does not hand the turn back early.

### How do I create an avatar?

Creation is image-only: post one frontal portrait as jpeg, png or webp up to 8 MB, and the platform generates every frame of video from it — a short idle loop that returns to the portrait so it cycles seamlessly, plus a listening reaction that plays once when you start speaking and response actions the character chooses during a call. The request returns in milliseconds while preprocessing continues in the background; a session minted before the loop is ready is refused with a clear error rather than opening a broken call.

### Which SDKs and agent resources are available?

The TypeScript SDK is realtime-avatar on public npm, with separate entry points for the browser, your server, React and React Native. There is deliberately no Python SDK — the live call is rendered by a browser or native client, so Python's half is plain HTTP, and most server-side documentation examples ship a Python tab beside the TypeScript one. For agents there is a published OpenAPI spec at /openapi.json, a markdown mirror of every documentation page, and /llms.txt.

### Does Realtime Avatar store conversation transcripts?

A signed transcript webhook optionally delivers the conversation to your application after a call. That delivery setting is separate from operational diagnostics: private session logs can contain conversation text and are subject to a 30-day storage lifecycle. Disabling the webhook does not establish zero retention. Request diagnostics, billing records and provider processing have separate retention rules; review the privacy policy before sending sensitive data.

### How is Realtime Avatar different from HeyGen's LiveAvatar?

Both expose realtime avatar APIs. Realtime Avatar is developer-first and metered by the second rather than sold in credit packs: you choose the model behind the call or drive every turn yourself, wire your own tools into the call, and every session returns its own record of start time, billable seconds and credits charged, so a bill can be reconciled or re-billed to your own end users. Detailed pricing comparisons are published on the Realtime Avatar blog.

## Machine-readable surfaces

- MCP server for coding agents: `npx -y realtime-avatar-mcp` (stdio, no build step) — reads
  the account so an agent never guesses an avatar id. https://realtimeavatar.ai/docs/mcp.md
- Agent guide: https://realtimeavatar.ai/llms.txt
- Every doc page inline: https://realtimeavatar.ai/llms-full.txt
- OpenAPI 3.1: https://realtimeavatar.ai/openapi.json
- Pricing: https://realtimeavatar.ai/pricing.md
- Any page as markdown at its own URL: send `Accept: text/markdown`.
- API auth, machine-readable (RFC 9728): https://realtimeavatar.ai/.well-known/oauth-protected-resource/api
