Intelliverse

Conversational avatars

Real-time voice and avatar sessions over LiveKit, metered per minute from your credit balance.

How it works

Wire a real-time voice/avatar conversation into your app — the same self-hosted LiveKit stack that runs quizverse.world's AI tutors, generalized per App-ID. Mint a room token (session cookie or API key), connect with any LiveKit client SDK, and the platform meters minutes from your iv_credits balance. Pro and above.

Important

Honest status: token minting, room scoping, and metering are live; attaching a persona-configured AI agent (STT → LLM → TTS + viseme.v1 blendshape stream) to your rooms is being generalized from the Quizverse pipeline — today the agent side is provisioned per request via support.

Mint a room token

POST/api/apps/{app_id}/conversation/token
Parameters
NameTypeDescription
roomRequiredstringLogical room name — auto-scoped to your App-ID as app_APP_ID__<room>.
identityRequiredstringYour end-user identifier, echoed to other participants.
max_minutesOptionalnumberSession window. Credits for the full window are held at mint and settled to actual started minutes on end.
Shell
curl -X POST https://router.intelli-verse-x.ai/api/apps/APP_ID/conversation/token \
  -H "Authorization: Bearer $INTELLIVERSE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "room": "lobby", "identity": "user_42", "max_minutes": 10 }'
# → { "token": "...", "ws_url": "wss://livekit.intelli-verse-x.ai", "room": "app_APP_ID__lobby",
#     "session": { "id": "SESSION_ID", "credits_held": 1000, ... } }

Connect a client

JavaScript
// npm i livekit-client
import { Room } from "livekit-client";

const room = new Room();
await room.connect(ws_url, token);

room.on("dataReceived", (payload, participant, kind, topic) => {
  if (topic === "viseme.v1") driveAvatarBlendshapes(payload); // lip-sync frames
});

End a session

POST/api/apps/{app_id}/conversation/{session_id}/end
Shell
curl -X POST https://router.intelli-verse-x.ai/api/apps/APP_ID/conversation/SESSION_ID/end \
  -H "Authorization: Bearer $INTELLIVERSE_API_KEY"

Warning

Skip the end call and the hold settles for the full window at expiry — end sessions promptly to only pay for started minutes.

Metering

  • Standard quality — 100 credits per started minute.
  • Premium quality — 200 credits per started minute.
  • Credits for your session window are held at mint and settled to actual started minutes when the session ends.
Did this doc help you?
Help us improve these docs