> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vivix.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# session.updated

## Event fields

<ResponseField name="media_transport" type="string. The current video transport, when returned.">
  The current video transport, when returned.
</ResponseField>

<ResponseField name="media" type="object. Use the updated connection details when present. See [Sessions API](/streaming-avatar/api-references/sessions) for the transport-specific shape.">
  Use the updated connection details when present. See [Sessions API](/streaming-avatar/api-references/sessions) for the transport-specific shape.
</ResponseField>

Emitted after a requested `session.update` is applied. Returns the effective mutable session state.

<ResponseField name="event_id" type="string" required>
  The effective update request ID: the client event ID when supplied, otherwise generated by the server.
</ResponseField>

<ResponseField name="type" type="string" required>
  Event type. Must be `session.updated`.
</ResponseField>

<ResponseField name="session" type="object" required>
  Effective mutable session state after the update is applied.
</ResponseField>

<ResponseField name="session.mode" type="string" required>
  Effective session mode, one of `text_chat` or `video_avatar`.
</ResponseField>

<ResponseField name="session.active_avatar_id" type="string" required>
  Avatar whose instructions apply by default for later responses.
</ResponseField>

<ResponseField name="session.source_image_id" type="string | null" required>
  Effective source image for avatar video. Returns `null` in `text_chat` mode.
</ResponseField>

<ResponseExample>
  ```json session.updated theme={null}
  {
    "event_id": "evt_session_update_0001",
    "type": "session.updated",
    "session": {
      "mode": "video_avatar",
      "active_avatar_id": "host_a",
      "source_image_id": "side"
    }
  }
  ```
</ResponseExample>
