Skip to content

Session Launch

SessionLaunchResponse

Both /v1/sessions and /v1/browser-sessions return this shape (201, Cache-Control: no-store, private). See /openapi/sessions.json for the machine-readable contract.

{
"session": {
  "id": "sess_…",
  "experienceId": "exp_…",
  "experienceRevisionId": "…",
  "expiresAt": "2026-08-11T12:30:00.000Z",
  "locale": "en-GB",
  "mode": "conversation",
  "status": "active",
  "capabilities": {
    "speech": { "input": true, "output": true, "externalAudio": false },
    "conversation": { "managed": true },
    "avatar": { "enabled": true },
    "tools": { "enabled": false }
  }
},
"launch": "eyJ…"
}

Top-level fields

FieldTypeDescription
sessionobjectMinimal public session facts
launchstringAsymmetrically signed opaque bootstrap — do not parse

session fields

FieldTypeDescription
idstringSession id
experienceIdstringExperience being run
experienceRevisionIdstringPublished revision id
expiresAtstringISO 8601 expiry
localestringBCP 47 locale
modestringconversation | presenter
capabilitiesobjectBoolean flags for avatar, speech I/O, tools, external audio

Runtime internals (transport, pipeline, renderer, sessionToken, characters) are not part of the public API — they live only inside opaque launch.