Skip to main content
POST
/
api
/
ai
/
rtProxy
/
lemonslice
/
chat
Stream a LemonSlice avatar voice turn
curl --request POST \
  --url https://pria.praxislxp.com/api/ai/rtProxy/lemonslice/chat \
  --header 'Content-Type: application/json' \
  --header 'x-access-token: <api-key>' \
  --data '
{
  "input": "What is on my schedule today?",
  "message": "<string>",
  "messages": [
    {
      "role": "user",
      "content": "<string>"
    }
  ],
  "requestArgs": {},
  "token": "<string>"
}
'
{
  "type": "segment",
  "kind": "speak",
  "text": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.praxis-ai.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-access-token
string
header
required

JWT token passed in x-access-token header

Body

application/json
input
string

Final user utterance for this turn. Either input or message is required.

Example:

"What is on my schedule today?"

message
string

Alias for input (legacy). One of the two must be a non-empty string.

messages
object[]

Optional OpenAI-style conversation history for the turn. When omitted the server constructs [{role:'user', content: input}].

requestArgs
object

Optional realtime context (selectedCourse, assistantId, userISODate, userTimezone, etc.). Merged into the user object before context build.

token
string

Optional auth JWT (alternative to Authorization / x-access-token headers). Used by streaming clients that cannot easily set custom headers.

Response

NDJSON stream — one JSON object per line. Begins with zero or more segment lines and terminates with exactly one end line.

One NDJSON segment line emitted while the LLM streams. Boundary-flushed at tool calls so the avatar can narrate before/after each tool invocation.

type
enum<string>
Available options:
segment
kind
enum<string>
Available options:
speak
text
string

Narration text for this segment.