<!-- AvatarFactory Docs · https://avatarfactory.in/docs/guides/faq · Full map: https://avatarfactory.in/llms.txt -->

# FAQ

Straight answers on billing, latency, browser quirks, and plans — the questions developers actually ask before shipping.

## Billing

### What am I billed for?

You're billed for **how long the avatar speaks** — the duration of the audio it
generates — not for how long the session stays open. An idle open session
doesn't accrue speaking usage (though it still counts against your concurrency
limit).

### What if the user interrupts the avatar?

Audio the avatar has **already generated still counts**, even if the user
interrupts before it finishes playing. Metering is based on generated speech, so
the portion already produced is billed regardless of the interruption.

### Where do I see my usage?

On your **[Profile page → Usage tab](/profile)**.

### How do I avoid surprise bills?

Avoid loops that make the avatar speak repeatedly, and don't retry reconnects in
a tight loop. End sessions you don't need to free up concurrency. See
[Limits & Quotas](/docs/guides/limits).

## Latency

### Why is there a pause before the avatar responds?

Establishing the stream is a one-time cost per session: **~5–7s on the first
connect** (the Rive avatar downloads and initializes) and **~2–3s** afterward
from cache. Once connected, in `call` mode the avatar starts responding
**~700–900ms** after the user stops speaking. See
[Production & Voice UX](/docs/guides/production-voice-ux) to budget each stage.

### How do I make it feel faster?

Reflect `isListening` / `isSpeaking` state immediately, show a connecting
affordance during setup, and render transcripts progressively. Perceived latency
is what users judge.

## Browser & platform

### The avatar works in Chrome but not Safari / iOS. Why?

Safari and iOS require audio playback to be unlocked by a **user gesture**. Start
the session from a real click or tap — not automatically on page load — or the
browser blocks the audio and the avatar appears mute.

### Do I need a backend?

For production, yes — you mint session tokens on your server so your secret key
never reaches the browser. For a zero-backend start, the quickstart uses the
public `"default"` avatar. See [Authentication](/docs/authentication).

### Which package do I install?

`@avatarfactory/react` for web, `@avatarfactory/react-native` for Expo mobile
apps. Both share the same components, hooks, and config.

## Plans & access

### Can I try it without signing up?

Yes. The [Quickstart](/docs/quickstart) runs against the public `"default"`
avatar with no signup. Publish your own avatar in the Platform when you're ready.

### What are the plan limits?

All plans currently allow **5 concurrent sessions**. See
[Limits & Quotas](/docs/guides/limits) for the full list of per-session limits.

> Didn't find your answer? Check
>   [Production & Voice UX](/docs/guides/production-voice-ux) for symptom-based
>   fixes, or reach out through your Platform account.
