Xentree Live brings real-time voice and avatar interaction to the Xentree platform.It is designed for immersive AI sessions with usage controls, transcript persistence, and personalization.Core capabilities#
start and end voice or avatar sessions
monitor remaining monthly live quota
update a user nickname for more natural interactions
store full transcript history
connect to realtime audio and avatar infrastructure
Authentication and scopes#
Most Live REST endpoints support both bearer and API key auth.Recommended API key scopes:live:read for quota and transcript reads
live:write for session start/end/heartbeat and nickname updates
REST endpoints#
Quota and profile#
Session lifecycle#
POST /api/live/session/start
POST /api/live/session/heartbeat
POST /api/live/session/end
Transcript storage#
POST /api/live/transcripts
GET /api/live/transcripts
GET /api/live/transcripts/{transcript_id}
POST /api/live/transcripts is intended for bearer (and internal service-key flow). For general server-to-server access, prefer documented hybrid endpoints first.Realtime architecture#
For browser-based realtime interactions, Xentree Live uses a dedicated socket endpoint:Socket endpoint: wss://orchstr.xentree.com
Representative event types include:Secure integration token lifecycle#
For enterprise embeds, use tenant-scoped integration grants via the Integration Tokens endpoints (for example POST /api/integration/grant).1.
Call POST /api/integration/grant with short TTL (for example 90-120 seconds).
2.
Attach the returned token as integration_token in embed bootstrapping.
3.
Validate using POST /api/integration/verify in backend middleware/gateway.
4.
Use POST /api/integration/rotate to issue a new token and revoke old token in one call.
5.
Use POST /api/integration/revoke for immediate emergency invalidation.
Revocation is persisted by jti in database for immediate invalidation.
Public verification material is available at GET /api/integration/jwks and GET /api/integration/fingerprint (query param: tenantId).
Endpoint-level rate limit headers are returned on grant/verify/rotate responses.
Example start request#
{
"session_type": "voice"
}
Example transcript payload#
{
"session_started_at": "2026-04-16T10:00:00Z",
"session_ended_at": "2026-04-16T10:05:00Z",
"transcripts": [
{
"role": "user",
"text": "Hello Xentree",
"timestamp": "2026-04-16T10:00:03Z"
},
{
"role": "ai",
"text": "Hi, how can I help you today?",
"timestamp": "2026-04-16T10:00:05Z"
}
]
}
Quota behavior#
Live usage is tracked in seconds and is evaluated against the user’s plan entitlements. If the quota is exceeded, the API can return a limit-related error and the client should gracefully end the session. Modified at 2026-04-29 23:54:20