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
| Field | Type | Description |
|---|---|---|
session | object | Minimal public session facts |
launch | string | Asymmetrically signed opaque bootstrap — do not parse |
session fields
| Field | Type | Description |
|---|---|---|
id | string | Session id |
experienceId | string | Experience being run |
experienceRevisionId | string | Published revision id |
expiresAt | string | ISO 8601 expiry |
locale | string | BCP 47 locale |
mode | string | conversation | presenter |
capabilities | object | Boolean 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.