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

# Create Session

> Learn how to create an ambient session and enrich it with detailed clinical context in the iOS SDK

<div className="quick-summary-wrapper">
  <div className="quick-summary-header">
    <span className="quick-summary-icon" aria-hidden="true" />

    <span className="quick-summary-title">Quick summary</span>
  </div>

  <div className="quick-summary-content">
    The `createSession(withSessionInfo:)` method creates a new ambient session and returns a `sessionId` that you use for all subsequent operations. Optionally provide session context like patient information, provider specialty, and note sections to improve note quality. The method handles the session creation asynchronously and returns a result that you can use to track success or handle errors. Store the `sessionId` securely as you'll need it for recording controls and content retrieval.
  </div>

  <div className="quick-summary-footer">
    <span className="quick-summary-footer-icon" aria-hidden="true" />

    <span className="quick-summary-footer-text">Last updated:</span>
    <span className="quick-summary-footer-date">June 2026</span>
  </div>
</div>

Before you can start recording audio and generating clinical notes, you must create an ambient session. This guide shows you how to create a session and provide clinical context that helps Suki generate more accurate notes.

**What will you learn?**

In this guide, you will learn how to:

* Create an ambient session using the `createSession(withSessionInfo:)` method
* Store the session ID returned from session creation for future operations

## Create an ambient session

To start capturing audio and generating notes, you must first create a session. The session acts as a container that holds all the audio data and context for a single patient encounter.

***

```mermaid actions={false} theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#FFF394','primaryTextColor':'#111827','primaryBorderColor':'#FFE148','lineColor':'#FFE148','secondaryColor':'#FFE148','tertiaryColor':'#FFFADE','mainBkg':'#FFF394','secondBkg':'#FFFADE','tertiaryBorderColor':'#FFE148','border1':'#FFE148','border2':'#FFE148','arrowheadColor':'#FFE148','fontFamily':'Inter, system-ui, sans-serif','fontSize':'14px','nodeBorder':'#FFE148','edgeLabelBackground':'#FFE148','clusterBkg':'#FFFADE','clusterBorder':'#FFE148','defaultLinkColor':'#FFE148','titleColor':'#111827','nodeTextColor':'#111827'}}}%%
flowchart LR
    A[Your App] -->|Call createSession| B[Mobile SDK]
    B -->|Request to API| C[Suki Backend]
    C -->|Return sessionId| B
    B -->|Return sessionId| A
    A -->|Store sessionId| D[Use for recording]
    
    style A fill:#FFF394,stroke:#FFE148,stroke-width:2px,color:#111827
    style B fill:#FFF394,stroke:#FFE148,stroke-width:2px,color:#111827
    style C fill:#FFF394,stroke:#FFE148,stroke-width:2px,color:#111827
    style D fill:#FFF394,stroke:#FFE148,stroke-width:2px,color:#111827
```

***

Call the `createSession(withSessionInfo:)` method to create a new session. When successful, this method returns a `sessionId` that you **must store** to use for recording and retrieving content later.

<CodeGroup>
  ```swift Swift theme={"theme":{"light":"github-dark","dark":"material-theme-darker"}}
  let createSession = [
      SukiAmbientConstant.kSessionId: <encounter-id>,
      SukiAmbientConstant.kIsMultilingual: isMultilingual
  ] as [String : AnyHashable]

  SukiAmbientCoreManager.shared.createSession(with: sessionContext, onCompletion: { result in
      switch result {
      case .success(let sessionResponse):
          // Store the sessionId from sessionResponse for future use
          let sessionId = sessionResponse.sessionId
          print("Session created successfully: \(sessionId)")
      case .failure(let error):
          print("Error creating session: \(error)")
      }
  })
  ```
</CodeGroup>

### Session info parameters

The `withSessionInfo` dictionary accepts the following optional parameters:

<ResponseField name="SukiAmbientConstant.kSessionId" type="string" required={false}>
  An optional unique identifier for the session. If you don't provide this, the SDK automatically generates a session ID for you. Use this if you want to use your own encounter ID or session identifier.
</ResponseField>

<ResponseField name="SukiAmbientConstant.kMultilingual" type="boolean" default="false" required={false}>
  Enables multilingual processing for the session. Set this to `true` if the conversation will be in languages other than English. The default value is `false` (English only). Once set, this cannot be changed for the session.
</ResponseField>

<Note>
  **Important**: Always store the `sessionId` returned from `createSession`. You'll need it to:

  * Start recording
  * Check session status
  * Retrieve generated content
  * Update session context
</Note>

## Next steps

<Icon icon="file-lines" iconType="solid" /> Refer to the [Provide clinical context](/mobile-sdk/ambient-guides/provide-clinical-context) guide to learn how to provide clinical context to the ambient session for better note quality in the iOS SDK.

<Icon icon="file-lines" iconType="solid" /> After you create a session and optionally set context, proceed to the [Recording controls](/mobile-sdk/ambient-guides/recording) guide to learn how to start recording and manage the recording lifecycle.
