Session Launch

SessionLaunchResponse schema reference.

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.