postMessage — the JSON you pass in, and the payloads that come back to your subscriber. Use it when you need a field’s exact name or shape. Two naming notes: institution in any payload is the API’s word for a Digital Twin, and course_id / course_name on a conversation are simply that conversation’s id and name (the field names are historical).
Post Request Object
post is accepted as a legacy alias for message.post.Post Response Object
Assistants List Request
Assistants List Response Object
Conversations List Request
Conversations List Response Object
Favorites List Request
Favorites List Response Object
Convo Ready Event
Theconvo.ready event is sent proactively by the Digital Twin after the user logs in. It notifies the embedding application whether real-time voice (speech-to-speech) mode is authorized for the current user. This event is not a response to a command — it is sent automatically.
Authorization depends on the Digital Twin’s real-time voice settings and whether the user has the required role. The event can arrive more than once — after sign-in, when the user’s permissions reload, and once the privacy policy is accepted — so act on the latest one.
This event is also intercepted by the SDK itself to set the
pria.isConvoReady() flag and optionally trigger convoMode auto-start. Subscribers receive it after the SDK processes it.Convo Live Event
Theconvo.live event is sent once per conversation, when that conversation can actually accept
text through convo.post. It is not a response to a command.
convo.ready and convo.live answer different questions: the first says the user is allowed
to start a voice conversation, the second says a conversation is running and ready to be spoken
into. A page that starts a conversation and immediately posts into it should wait for this one.
Convo Ended Event
Theconvo.ended event is sent once when a voice conversation ends — the user hung up inside the
panel, or the connection closed. It is not sent when the provider reconnects on its own, and it is
not a response to a command.
Start Convo Request
Start Convo Response
Convo Post Request
Sends text into a conversation that is already running.role defaults to user (the learner
speaking) and respond defaults to true.
Convo Post Response
delivered confirms the twin accepted the text. replied says whether it answered — some
providers cannot take context without answering, and ElevenLabs cannot answer a system message
on demand, so the two are reported separately.
On Anam and Cartesia twins, a role: "system" post with respond: true is acknowledged when the
twin’s turn ends. replied is true when the twin produced a spoken reply, and false when the
model produced nothing for that instruction; the final convo.transcript message for that turn
then carries reason: "empty" and an empty text. A turn that fails also reports
replied: false, with reason: "error" on its transcript.
pria-error with the reason in content — no conversation running
(Convo is not started (STS)), the twin not allowing page instructions or the sender not being
the embedding page (Access Unauthorized (401)), an empty or over-long message
(Invalid Request (400)), or a provider that cannot honour the request.