Beyond Presence
Hyper-realistic avatars sold two ways: speech-to-video (face only, plug into your LiveKit agent) and managed conversational video agents. Prices in EUR.
Overview
Best for: EU teams on LiveKit that want generous concurrency (10+) on an entry paid plan.
At a glance
Price is Scale $349/4,000 speech-to-video min; managed agent minutes cost double. Overage billed in EUR. Free sessions capped at 3 min, paid agent sessions unlimited. 1080p refers to stock avatars.
Your agent's audio (speech-to-video) or user mic (managed agent)
Your TTS or managed voice
Language support page exists; list not captured.
Not captured.
EU-based vendor; hosting regions not captured.
Not verified in this pass.
Features
- LiveKit plugin (Python and Node)
- managed agent option
- custom avatars
- 1080p stock avatars
Pricing
| What | Price | Unit |
|---|---|---|
| Free | $0 | per month |
| Starter | $49 (EUR 49) | per month |
| Growth | $149 (EUR 149) | per month |
| Scale | $349 (EUR 349) | per month |
| Enterprise | Custom |
USD plan price / included minutes: Scale $349/4,000 S2V min = $0.087 up to Starter $49/140 agent min = $0.35. Overage is quoted in EUR only.
Free tier: 40 speech-to-video minutes (or 20 agent minutes) per month, 1 concurrent, 3 minute session cap.
Source: beyondpresence.ai
Setup
- Get an API key and copy an avatar ID from Beyond Presence Studio.
- Start from the LiveKit Agents Python starter.
- pip install livekit-plugins-bey and set BEY_API_KEY, BEY_AVATAR_ID and LiveKit credentials.
- Start the avatar session before session.start().
Endpoint
LiveKit plugin (livekit-plugins-bey); REST: Create Speech-to-Video Session
Authentication
BEY_API_KEY
Quick start python
# pip install livekit-plugins-bey
# env: BEY_API_KEY, BEY_AVATAR_ID, LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET
import os
from livekit.plugins import bey
# inside your LiveKit agent entrypoint, after building `session`
# session = AgentSession(stt=..., llm=..., tts=...)
avatar = bey.AvatarSession(avatar_id=os.environ["BEY_AVATAR_ID"])
await avatar.start(session, room=ctx.room)
# then start your agent as usual
# await session.start(agent=MyAgent(), room=ctx.room)
Written from the current docs. Check the vendor's SDK version before you ship.
Warnings
Overage is in euros
Plans show USD monthly prices but per-minute overage only in EUR; your card will be charged with FX exposure.
Managed agent minutes cost double
Conversational agents use 100 credits/min versus 50 for speech-to-video, so the same plan gives half the minutes.
Usage-based billing is opt-in
Without it, sessions fail with 402 once included minutes are used; with it, there is no automatic stop. Monitor usage.
Idle billing undocumented
Docs do not say whether idle sessions count; assume wall-clock billing and close sessions promptly.
Plus 9 warnings that apply to all avatars and live video APIs. See category warnings.
Limits
- Concurrent sessions: 1 / 10 / 25 / 50 (Free/Starter/Growth/Scale); over the limit returns HTTP 429
- Out of minutes without usage-based billing returns HTTP 402
- Free sessions capped at 3 minutes; paid agent sessions unlimited length
Models and products
| Name | Status |
|---|---|
| Speech-to-Video | GA |
| Conversational Video Agents (managed) | GA |
Docs and sources
Docs
Sources used
- beyondpresence.ai/pricing
- docs.bey.dev/production/concurrency.md
- docs.bey.dev/get-started/quickstart/speech-to-video.md
Latency, model names, regions, compliance.